Hacker News new | ask | show | jobs
by rektide 1587 days ago
> How much effort, in the non-mathematical sense, are you willing to expend to discover if there is a lower minimum? Go over the hill to your left and you discover a minimum that is greater than the one you were just in. Go over the hill to the right and you find a lower minimum.

> This happens in just about anything you can imagine, but let’s consider IDEs. You start using an IDE and it makes one particular thing particularly easy, and it makes it so easy that you don’t go looking for something even easier. You can’t spend all of your time wondering if there’s a slightly better way of doing things.

This argument resonates fairly well with me. I generally view IDEs as low commitment, a rapid learning curve to completion, with very hard caps on what you are going to find. You'll understand what the tool gives you, and then you'll be done. There's some trading/collecting hooks to keep you feeling like you can improve, to collect all the best plugins to improve the base system, but you're still a consumer, hunting for solutions, and you never really gain intimacy, understanding, or general prowess, evaluating your gains from a position of general ignorance as to what you're really buying/using. Being an end-user is being stuck at some minimum, having milked the curve you're at, until someone else comes disrupts your world for you. You make no real gains on your own, develop no only superficial mastery, mastering of the pane-of-glass atop the environment you dwell in.

It's really really hard to make a stronger better pitch for the school of lifelong learning & struggle. Often IDEs are a great way to understand what is possible, what tools to expect, but once you have a baseline, getting back into the command line, the terminal, the console & re-learning the hard way how to re-enact many of the things your IDE does for you is really hard. The learning curve is super slow, it takes ages to get out of the bottom reaches & start to feel ok. But you're gaining mastery not just of the programming job, but of the operating system, of the shell, of the real genuine honest environment of computing. Your ability to understand & see what is happening is so much higher, has such a more real connection than the pane-of-glass interface. Your ability to evaluate & direct yourself grows & amplifies over time, only if you invest in yourself & think of yourself as someone seeking a truthful engagement.

In general, I feel like the world has a lot of "what is the use case"/"what is the business value" thinking, and there's kind of an aggressive anti-exploratory value system that hates geekiness, that hates learning, that despises the enrichment of humankind, that rejects possibility. To insist on fast immediate obvious worth is to miss the big picture, is toxic to healthy ecosystems & diversity's neandering, exploring many many many tentacles. I want to see a world culture that believes in honest, genuine interactions, not fancy indecypherable veneers of things. Papert's Constructivism/Constructionism is a spiritual boon, one essential to what humanity became, and we should cherish, protect, & grow this light. https://en.wikipedia.org/wiki/Constructionism_(learning_theo...

2 comments

I have studied computers from the ground up. At one point I could draw out most of the structure of a MIPS CPU. I have worked in Linux for years and think I know the shell very well. But none of that helps me deliver value to my employer. If an IDE or other high level tool can get the low level out of my way and get me more productive I'm much happier for it.
> getting back into the command line, the terminal, the console & re-learning the hard way how to re-enact many of the things your IDE does for you is really hard.

So, if the IDE gives us those tools, what is the exact benefit of "going back and learning the hard way"?

> To insist on fast immediate obvious worth is to miss the big picture, is toxic to healthy ecosystems & diversity's neandering

How much time do I have to spend in the good old hard learning command line to replicate, say, 5% of Intellij Idea's refactoring capabilities and code navigation?

> So, if the IDE gives us those tools, what is the exact benefit of "going back and learning the hard way"?

Becoming a person of unlimited potential. Being capable of understanding & tackling anything, understanding the world you live in, not living like a marrionette shadow puppet your life.

> How much time do I have to spend in the good old hard learning command line to replicate, say, 5% of Intellij Idea's refactoring capabilities and code navigation?

Two afternoons learning CodeMod would provide a lifetime of infinite capabilities, versus some very limited preset scripts. You would be vastly vastly vastly greater, for a tiny amount of dickering around on your own.

"Becoming a person of unlimited potential." that's a very prosaic way of essentially saying nothing.

It all depends on what you want out of the system that you're using, for me personally the programming language, the IDE, the library that I incorporate, are all a means to an end, the goal to bring a unique idea into reality. I value the creation of new ideas more than the implementation itself and thus your suggestion is unsuitable for those of my kind.

I want to improve & grow, get better at computing.

This idea of being good enough, embracing mediocre capabilities for life & only focusing on shirt term output forever is exactly the local minima this post is warning against. Selling yourself a compromised future, being a passive consumer of technology, is anathema to the greater objectives of life & computing, in my view.

Selling yourself on comprimise, swearing you have served yourself, also seems hollow when one is deliberately snubbing trying to raise themselves to a perch where they are capable of evaluating. The anti-elite pitch is easy because it doesnt even have to get good enough to assess the merits & values of the school of lifelong learning & struggles. As for your precious output, it might be totally different & better if you had opted to invest in yourself & see technology as less than a lever you know how to crank.

We build on the shoulders of giants and there's nothing wrong with that. The terminal is just one abstraction down of an abstraction of an abstraction of an abstraction of an abstraction of an abstraction. Not very impressive.
Linux disagrees with you. A process is a core thing to the OS, not just "another abstraction". The terminal is an extremely shallow/direct interface to the OS, in a way distinctly more clear & certain than most other abstractions.

There's no better way to see real truth in computing. The shell exposes the base truths of the OS abstraction directly: processes, environment variables, stdio, signals, pipes. This is the fundamental toolkit of computing, and what higher-level abstractions we see (from language's stdlibs, to things like Kafka or SQS queues) are better understood in terms of the base computing fundamentals. The base unix tools define a clear set of capabilities we should be familiar with, & to call them just another abstraction, to focus on our own local platforms, ignores the base root that all computing so far eminates from.

This abstraction-relativism you present is highly dangerous. Arguing we shouldn't care about anything because there are abstractions everywhere ignores a realer truth, that some abstractions have been around & underpin nearly all systems & likely will continue to do so. We're only barely starting to play around with alternative conceptions, in projects like Fuschia. But this is a rare, novel, & just-emerging break from our common frameworks of computing. One that would behoove people to gain some competency in.

> Becoming a person of unlimited potential.

That's pure demagoguery. As is, really, the rest of your response.

> Two afternoons learning CodeMod would provide a lifetime of infinite capabilities

That's not the answer to the question. So, you've learned CodeMod scripts . How much timeyou will then have to spend to replicate 5% of IntelliJ's refactoring capabilities? And while you're struggling to replicate that, how many capabilities you're missing out on?

> As is, really, the rest of your response.

> So, you've learned CodeMod scripts . How much timeyou will then have to spend to replicate 5% of IntelliJ's refactoring capabilities?

I was assuming you'd get >50% of the IntelliJ's refactoring you might potentially use in those two afternoons.

And you can invent new ones whenever you feel like in a couple hours.

Your attitude is balls dude, personal & not informational. Chill out, step off, desist from being personally insulting in your rplies. You have no idea how easy it is to replace this precious valued thing you so adore. That's not a problem. But you're getting wrapped up about it & becoming uncivil. You simply don't know. Stop getting worse.

Meh. If you want "infinite capabilities and unlimited potential" you should learn the best tool for each job. Not the one that works ok all the time.
I agree, but one has to know the fundamentals to begin to evaluate their tools.

It's easy to just assume your tool works for you & it's the right pick, but precious few developers a) actually know computing well enough to assess the field of options, b) have any idea what they're buying.

It's heavyhanded bias that you've disregarded other options, and called whatever you think of as "best" and left everything else as "works ok all the time."

I see the small suite of built-ins as the "works ok", and not even "all of the time," just, for a couple small specific use cases. Learning about metaprogramming, ASTs, code-rewriting is a lifelong opportunity to get better, to understand what we really do when we write code at whole new levels, and those tools we truly, that truly fit the problems we actually have are the best tools.