5 ms·
I think the reality is that programming is not as intellectually challenging as we'd like to think. Maybe we will encounter a hard problem occasionally if we're
by hbrn 4y ago
I think the reality is that programming is not as intellectually challenging as we'd like to think. Maybe we will encounter a hard problem occasionally if we're lucky, but most of them are already solved. As programmers, we just need to pick a solution with good tradeoffs. In fact, understanding the tradeoffs is usually the hardest part.
And yeah, the industry very immature: it is idealistic, hype-driven and full of cargo cults. Which makes perfect sense: when you convinced yourself that you are a great intellectual, but all you do is building REST APIs, this makes you uncomfortable. So the next natural thing to do is join a cult. Maybe even start preaching. This gives you a sense of superiority you've been looking for.
- mettamage 4y agoLearning how to program is intellectually challenging actually. Not fully understanding all primitive operations while they teach you to try to execute programs in your mind (rather than using a debugger) is madness. It was to me anyway. When you get past that point, yea, then I agree. The intellectual challenge for most programs is gone. Not for everyone though, I have a friend working for a HFT firm. The shit he encounters is hardcore.
- zozbot234 4y agoThe biggest obstacle is not grokking that programming is a formal system, just like math - that it is possible to understand programs in your mind in a well-defined way. Much intro-to-coding education tends to leave this unstated, and starting with supposedly "intuitive" but actually very complex, higher-level languages makes it even harder to point out. Imagine a world where all programming was done via heuristically-derived ChatGPT prompts spelling out what the system has to do in lawyer-like detail. That's what lots of non-coders have in mind when they think of what "coding" must be like. Of course that would be totally unworkable; coding only works because it's formal and 100% reliable.
- gbuk2013 4y ago> coding only works because it's formal and 100% reliable This is not true for distributed systems: clock skew that is unpredictably different on different devices and networks are inherently unreliable. Real word physics is messy. :)
- hbrn 4y ago> The biggest obstacle is not grokking that programming is a formal system, just like math I think there's danger in this mindset. Unlike math, programming is always directly tied to real-world problems. And those are defined by humans. Who, as we know, are not very good at being formal. In my experience, the biggest obstacle is actually not recognizing the informal part. Trying to stay in our own little world of formalities and treating the real world as a nuisance to our grand designs. Calling yourself a computer scientist might be pleasing to our egos, but at the end of the day most of us are software engineers. We are the conduit between formal and informal. There's no shame in that.
- zozbot234 4y ago> Unlike math, programming is always directly tied to real-world problems. Huh? You think that math is not tied to real-world problems? That it's not useful for modeling the real world? It's not like programming is doing something inherently different.
- spacemadness 4y agoThey didn’t say math is never tied. They said programming is always tied. Maybe that in itself is debatable but you’ve changed the argument.
- hinkley 4y agoApplying all of that knowledge is emotionally challenging though. On any given day I’m dealing with avoidant behavior. Every time I have to refactor code that shouldn’t have needed it at this point, I’m approaching something that has already been avoided once, by me or usually a few particular coworkers. Some of us saw a CS degree as a route to living in your own world of imagination and are disillusioned by finding out just how much that is wrong, or defensively cling to that illusion to the point of near fisticuffs if someone tries to burst that bubble.
- culi 4y ago> understanding the tradeoffs is usually the hardest part This feels especially true in the front-end. Whenever I try to learn new things I always try to find the online communities, the main books, the podcasts, etc. I try to find the people down to bikeshed about something most wouldn't care about. I feel like this learning strategy has been especially effective in the front-end world. If you start a new job, chances are you're gonna have a huge chunk of your stack be totally new just because of how many solutions there are for everything out there. I feel like the main value-add I bring a lot of times is just knowing what's out there and what the best tool for the job is. Most of the time I haven't actually used that tool The hard part is cutting through the bs and knowing what's hyped because of a certain interest group and what's hyped because it's an actual improvement. For that, I find you usually do need to have some hands on experience
- sage76 4y agoI agree. This is why I have a problem with questions like "what project you are most proud of" etc. I have never encountered an interesting project in industry. In academia, sure. Esp in research.
- arcturus17 4y ago> I think the reality is that programming is not as intellectually challenging as we'd like to think. It takes most people thousands of hours of practice to get good at it, and a lifetime to master it. I think most people of average intelligence can get to high levels of competence, but it's definitely not easy.