4 ms·
I think the reason that many smart people don't stick with programming is because a fundamental part of the job is struggling with intellectually trivial incant
by scandox 10y ago
I think the reason that many smart people don't stick with programming is because a fundamental part of the job is struggling with intellectually trivial incantations specific to some configuration/OS/Language/Tooling.
I am a programmer and I have a lot of patience for that stuff. But I don't why I do, because objectively speaking it's crazy to spend hours ingesting this kind of ultra-specific, non-reuseable information.
- milkytron 10y ago>> I think the reason that many smart people don't stick with programming is because a fundamental part of the job is struggling with intellectually trivial incantations specific to some configuration/OS/Language/Tooling. Along with this, I believe there is a certain amount of curiosity required to continue pursuing programming after a certain point. At first it might be fun, teaching a computer to obey commands, but once a tough enough obstacle is met, does that person want to find the answer and do they take satisfaction once that obstacle is overcome? If the satisfaction doesn't surpass the stress it took to find the solution (for most problems, not all), it seems unlikely that the programmer would like to continue when the next problem appears (which is inevitable).
- twblalock 10y agoI agree. I'm a self-taught programmer, and I think the learning curve was reduced quite a bit because I had been using Linux on the desktop for years, and I was already familiar with the shell and many of the system concepts. My new-grad coworkers have more trouble with the build systems, version control systems, deploy systems, and servers than they do with writing code. I think it would be beneficial if more CS programs had a course focused real-world tooling as it is used in the workplace.
- throwaway13337 10y agoI imagine your work does web dev - node maybe? In which case, the tooling/deployment/dependencies are now the hardest part. All that cruft, wiring, and arcane commands/configurations piled like infinite turtles one on top of the other. I can't imagine just now jumping into web dev. It must be like archeology. You'd need to go one era-layer at a time to understand what and why things are this way. It wasn't like this in the bad old days - we created a monster.
- bbcbasic 10y agoI had an interview a few years back where they wanted to know not just what is was the state of the art (latest JQuery features etc.) but what was added and when historically! They wanted someone who was totally on the ball with the stacks going back in time (and with presumably a better memory for that stuff than me!)
- twblalock 10y agoI do backend software in Java. I hate web dev.
- mistermann 10y agoVery good point that you rarely hear mentioned, supporting all of this stuff is going to be an absolute nightmare. Companies thought supporting end-user created Access database apps were bad, wait until it's time to deal with these rube goldberg web apps people have created using hundreds of different toolsets.
- open-source-ux 10y ago"...incantations specific to some configuration/OS/Language/Tooling" This is one of the things that I struggle with, much more than actually learning the programming language. I'm embarrassed to admit it because it's part of the DNA of programming environments, and it feels like no-one will take you seriously if you don't love or master the command line to perform tasks in your environment. But I'll say it, I (mostly) hate the command line for the endless, excessive configuration/installation/tooling/updating tasks that are such an intrinsic (and unfriendly) part of "modern" programming setups. It also feels like there is zero interest in ever changing these things. Anyone else want to admit they struggle or dislike this state of affairs? Or am I the only one?
- nikdaheratik 10y agoI'm possibly the only one in my office who is comfortable on the command line. Most of this may be that we're in a Windows environment, but they all seem to use an IDE more than anything else. I feel like for web stuff at least, the command line is easier because you know exactly WTF it's doing instead of having it hidden behind layers of useless and arbitrary UI. But if the IDE or other tools is good enough for what you need to do, then I don't believe it makes a difference.
- ht85 10y agoWhich makes sense, because the methodology used in building applications is lead by people who invest all their time into developing. Simplicity costs you power, and most people crave power when they spend all their time doing something. That, and meeting requirements written by people who assume they're gods. I don't find the struggle intellectually trivial at all. Over time you learn many ways to deal with it, and sometimes even get it right on the first try. Those skills can be fundamentals about computing, architectures, programs, libraries or languages. Sometimes your knowledge of tooling, methodologies or coding styles get you there. After a while you can even apply some profiling to the author(s) something you're using, because "this kinda guy probably did this", "they always do that". To me reverse engineering things, on every level, is very interesting, and part of the path to being a great (practical) engineer. Not to mention, if there were a proven stack where everything clicked easily, and stuff just implemented itself, we'd have heard about it. There are integrated platforms where anyone can get something up with ease, but if they added all the features you'll eventually miss, you'd end up with something as complex as starting from scratch!