Learning to code is still worthwhile

(stevekrouse.com)

80 points | by stevekrouse 2 hours ago

27 comments

  • gonzalohm 1 hour ago
    Learning anything is worthwhile. Just because you code in Python it doesn't mean that knowing how instructions are processed in a CPU or the memory is managed is useless.

    The excuse that we don't need to know how things work because AI will take care of it is going to bite a lot of people on their asses

    • embedding-shape 1 hour ago
      > The excuse that we don't need to know how things work because AI will take care of it is going to bite a lot of people on their asses

      Abstractions always led to this sort of behavior. So many of my web development peers screamed at me for being curious about what happens behind/further down then the stack we were learning, and this was decades ago. Seems it differs a lot per person, and what I've found out only later, depending on the situation; nowadays I'm comfortable with both approaches of "this is below the abstraction I actually care about" and "No, I have to dive deeper to actually understand properly the abstraction level I'm at right now"

      • wincy 47 minutes ago
        I’m a web dev but always curious. Which is why I figured out what was breaking the time calls (we’d switched from CENTOS to Red Hat which returned totally different v8 time strings from the underlying calls). You don’t need to know what’s going on underneath the mountain of code you rely on until suddenly you do.
      • coupdejarnac 1 hour ago
        Abstractions are one thing, not putting any effort into learning is another. People worry about the latter.
        • gonzalohm 55 minutes ago
          Exactly. I'm not saying that you should go back to code in assembly. But, come on, you can surely dedicate 30 minutes of your time to read how a CPU works... Just have curiosity would be my advice
  • ekidd 36 minutes ago
    As a professional programmer entering the final third of an enjoyable career, I would now place "learning to code" in the same category as "making a living as a poet." As in, it's truly enjoyable art and some people appreciate it, but you'd better plan for a day job.

    Senior people who already know how to code are doing OKish for now, from the data I've seen, but the job is increasingly babysitting models like they were junior contributors.

    • Animats 4 minutes ago
      > As a professional programmer entering the final third of an enjoyable career, I would now place "learning to code" in the same category as "making a living as a poet." As in, it's truly enjoyable art and some people appreciate it, but you'd better plan for a day job.

      Not wrong. Probably.

      I'm reminded of an old friend from long ago. She was an early music major at Harvard, and graduated with a MFA. She was very good. She read and wrote Latin and Greek, could compose and play music using medieval notations, and published a book on early needlepoint.

      She never obtained an academic appointment. She never found a job that needed those skills. She died alone a few years ago.

      That may be the fate of many programmers.

  • wasting_time 1 hour ago
    The era of LLMs is similar to when Magic was discovered in the 1400s.

    The layperson may be able to get ahold of a spellbook, but without Understanding it comes with high risk of turning your niece into a frog.

    Whereas Wizards can cast increasingly powerful spells that build on each other, and make Art.

    • NuclearPM 1 hour ago
      I can’t tell if you’re serious or not.
      • vunderba 2 minutes ago
        I think they're being silly, but it's a pretty common trope: comparing the weird, sometimes highly idiosyncratic syntactical constructs of programming languages to a series of magical incantations.

        Lev Grossman wrote an entire book that hinged on this idea of melding magic with technology.

        https://en.wikipedia.org/wiki/Daemon_(novel)

      • layman51 46 minutes ago
        I have actually thought something similar but more in terms of divination. There’s some people who might compare LLMs to something like Tarot or automatic writing (think Ouija) because there’s a sense of randomness with LLMs too.

        Both LLMs and divination methods also have the danger that someone could kind of drive themselves into madness with it. I don’t know too much about what how or why people can drive themselves crazy by chatting with an LLM, but with divination, I heard it can cause distress to ask the same questions about yourself many too frequently and also they ask about outcomes instead of methods.

      • codazoda 1 hour ago
        I think he’s wasting time.
  • OhSoHumble 1 hour ago
    > Code is a beautiful form of creative expression, as rich as literature or music

    Something I'm trying to do right now is to build something and avoid using LLMs to write any code. I still use it to consult. I'm writing a Dota2 tournament match aggregator in Elixir that takes tournament streams and chronologically orders them in a format that makes it easier to watch them sequentially since I find YouTube hard to use for ingesting series of videos.

    I'm building it because... I like programming. I like making things. I find that LLMs are making me intellectually lazy and making things with them feels unfulfilling. I want to build. It's human to want to build.

    • embedding-shape 1 hour ago
      > I want to build. It's human to want to build.

      Anything a human feels is human, regardless if it's to build or to not build :) Some people prefer some ways of building, others in other ways, it's all fine. I think lots of people forget that programming is a heavily creative endeavor in the end.

      If I wanted to be slightly controversial, I'd argue building a program is more like painting a painting than building a bridge, for better and worse.

  • adamddev1 1 hour ago
    Please correct me if I'm wrong, but aren't AI agents replacing the coding mostly being done on the outer layers of development? I mean, end user applications, apps, dashboards, business applications? On this "outer crust" people can maybe tolerate things with 99% accuracy, or bloated code. A vibe coded app can be argued to be "good enough." (Even then, look at the disaster that Microsoft apps have become post AI adoption.)

    But people are still staying away from LLMs on the critical compilers, frameworks, tools and libraries that people need to really rely on. No one wants to build on code that is 99% accurate or bloated. No one wants to use an AI coded web browser. To really build good building materials, you need to code it and know what you're doing. Where is anybody even getting close to phasing out coding in those critical areas?

    • exfalso 48 minutes ago
      There are ways to do it correctly. You just end up spending a lot of time conceptualizing and refining abstractions.

      To me the issue is more that conceptualizing requires a certain state of mind. Before llms it was 10% hard thinking 90% implementing. Implementation was actually sort of a reward, it felt so good just being in the zone and fleshing out ideas.

      Post llms I find myself walking up and down quite a lot, only doing the thinking. Now it's more like 40% thinking 60% reviewing plans/code. I haven't experienced flow state since. The thinking is fun but exhausting, the reviewing is just kind of annoying, especially as llms get into these weird failure modes. Before I could look at a bad piece of code and instantly tell what the author was thinking and why the thing doesn't work. Now I need to be a lot more careful because there is little code smell, but a lot of badly chosen abstractions.

      Just exhausting...

      • adamddev1 46 minutes ago
        That's why I say, just don't use LLMs.

        I think conceptualizing and refining the abstraction is the essence of the beauty of the craft and progress.

    • bad_haircut72 1 hour ago
      This type of comment retroactively assigns human written code a quality which it has never had. "No one wants to build on code that is 99% accurate or bloated" - my friend have you ever used Windows??
      • adamddev1 47 minutes ago
        Of course Windows is garbage. But this is the sort of defeatist argument that always shows up among both AI optimists and places where corruption is rampant. Corruption and incorrectness is established as an inescapable baseline, and then greater systematic corruption (like LLMs producing constantly sub-par code) is justified.
      • forgetfreeman 51 minutes ago
        While there are certainly more examples than either of us can count of shitty half-baked codebases claiming quality code has never existed is pretty wild. With humans it's at least something to be aspired to and occasionally even accomplished.
    • hollowturtle 46 minutes ago
      > On this "outer crust" people can tolerate things 99% accuracy, or bloated code

      Sorry what people would tolerate? Go look around and ask people, friends and family. They all hate slow bloated software, it costs us dunno how much in time and productivity. With the advent of LLMs it only got worse not better

      • adamddev1 44 minutes ago
        I agree 100%. I was just trying to say people can sort of get away with more, or justify it easier.
    • em-bee 1 hour ago
      doesn't the recent bun controversy tell a different story?
      • adamddev1 52 minutes ago
        exactly, it seems like people run away when a tool becomes heavily AI developed.
  • KashifNY 8 minutes ago
    With everyday bringing new developments in the world, a lot of skills that used to be in demand are being replaced with new age tools. This has been the case in many industries and its evolving. The last 6 years have reshaped the world as we know it very aggressively and the best we can do is flow and adapt to the new times
  • p1necone 1 hour ago
    Anecdotally, the people who I know who were not particularly good developers pre-llms still manage to produce bad code even using flagship models now.

    I think having solid knowledge/understanding of good architecture and general practices is still crucial, and it's easy to forget that the foundational knowledge and instinct you take for granted now actually took a lot of time and effort to learn when you were less experienced.

  • avaer 1 hour ago
    Those are not compelling arguments.

    If the best we've got for convincing people to learn to code is that it's like math notation (the most hated part of math for the uninitiated), or pretty like a violin (useless for a new grad), then coding is in serious trouble.

    IMO a better argument is it helps you "think like a computer". But if you wanted to learn that there are many video games I'd recommend mastering instead of learning to code. For most people "learn to code" is like telling programmers to "learn asm".

    (I've been coding ~30 years)

    • altruios 1 hour ago
      The most compelling reason to learn to code is exactly the same reason to read lots of books (fiction or otherwise). It exercises your brain. A brain that can easily sort, parse, and understand basic logic and control flow is more resistant to propaganda and influence. Which is the same benefit a lot of reading does, but for different avenues of thinking (more worldviews exposed to -> more critical thought of each of those views -> more critical thinking in general).
      • embedding-shape 1 hour ago
        But that in itself also isn't compelling to lots of people, why should they care about "exercising your brain"? I do it because it's fun, probably the most common reason I do anything, or because it feels nice. But probably exercising my brain for me is fun and makes me feel nice, this isn't true for everyone, sadly.
        • altruios 43 minutes ago
          Besides the reward of a more capable brain, the reduced effects/risks of dementia, the contrarian need to argue, the altruistic desire to help neighbors with difficult problems, the selfish urge to daydream... yeah, there are people for whom none of those are motivating factors.
      • em-bee 1 hour ago
        learning lots of different games would achieve the same objective.
    • rapidfl 50 minutes ago
      > For most people "learn to code" is like telling programmers to "learn asm".

      This is such a good way to put it.

      I could learn asm maybe in a college course. But no other incentive.

      No one wanted to read asm. Now no one wants to read thru code.

    • dd8601fn 52 minutes ago
      > If the best we've got for convincing people to learn to code is that it's like math notation (the most hated part of math [...]

      That's funny. I've told a mathy friend that I've sometimes wondered if I could have grown up without the whole, "... except I suck at math", and I think that's why.

      I don't struggle with the problem solving. I've watched people reinvent chunks of "difficult" math in code without realizing or caring that they've done it.

      I've started to think that math might actually be awful on purpose.

    • em-bee 1 hour ago
      i think video games are to abstract to connect them to learning to think like a computer.

      the most useful thing i learned about computers is to create logic gates by hand. nothing gave me a deeper insight into how a computer works than that. programming is the next step up. you can skip all the layers in between because you can extrapolate them. no need to learn assembler, but it may be worth reading about it, just to get an idea.

      understanding the layers from logic gates, to assembly, to programming, to games and now AI is kind of like reading about the OSI model to understand networking. it's one layer of abstraction on top of another.

      learning programming is worthwhile because it is the highest layer of abstraction that is shared by everything above it. despite there being hundreds of programming languages, the concepts are all the same. once you understand programming through learning one language you can apply that understanding to almost all other languages. on the other hand there are tens of thousands of games in hundreds of types. not to mention all the other applications. the tree of variation explodes at that level.

    • platevoltage 30 minutes ago
      Programmers should learn ASM, or at least have a surface level knowledge of it, the same way electrical engineers should know how a vacuum tube works.
  • preommr 1 hour ago
    The problem is that coding was sold as the pancea. If you were fired, "learn to code", if you're in prison, "learn to code", if you're in kindergarden, "learn to code".

    Even in this article, it's talking about how it's a good way to learn math and formal thinking. Yea, as an application. If you want to learn math, learn some basic fundamentals tied specifically to math, and then come apply it to code.

    Coding is like welding in that it's a useful skill, a craft unto itself, but also integral for modern day manufacturing that opens up a world of possibilities. You don't see welding being suggested as a form of excercise, or the ticket to being a multi-millionaire.

  • psadri 1 hour ago
    Learning to code = understanding a problem, breaking it down into small, manageable pieces, putting all the pieces back together. Debugging. Iterating towards better metrics, etc.

    All these are amazingly valuable skills/mindsets that can be highly portable to other "problem solving" domains.

  • librasteve 50 minutes ago
    <<And finally, programming is simply fun. It's a joy. My calling in life is to spread the joy of programming,>>

    must be a Raku coder -Ofun

  • holtkam2 1 hour ago
    If you want to fully understand / contribute to / fully leverage the most powerful technology humanity has ever devised (AI), you must learn to read and write code. That’s the only reason anyone should need.
  • hollowturtle 48 minutes ago
    The very fact we need to discuss that it's a sign that we lost and slop has won. Learning to code it's a journey that never ends, after almost 15+ years I feel like I still learn and that my code sucks, if I delegate everything to the slot machine I feel like I'm being retro actively turned into a junior, thanks but no thanks. I'll still use LLMs and Agents the best I can but coding is mine
    • platevoltage 34 minutes ago
      I have this mindset too. I use LLMs too, but strictly as a helper. nothing goes in my code that I don't understand, or that doesn't follow the style of the rest of the project. It's a great research tool, although I can already feel my documentation reading skills diminishing slightly.
  • seanclayton 40 minutes ago
    Who in the world has time to learn how to code? Who has that much copious free time when they're working two jobs?
    • Jtsummers 38 minutes ago
      > Who has that much copious free time when they're working two jobs?

      Only two jobs? You'll need a better reason than that.

  • MrLeap 1 hour ago
    To create things via AI without being able to comprehend the output is to trust completely in the agent(s). Operating that way is more optimistic than experience has taught me to be.
  • bix6 1 hour ago
    There’s always value in the fundamentals you just might not get paid for them.
  • ohadkr 30 minutes ago
    Learning the fundemntals but not syntax
  • Dumblydorr 53 minutes ago
    Thin post with more ads for their company than arguments.

    Many pursuits are worthwhile, yet almost no one does most pursuits. Coding is going to become a niche activity like portrait painting or making toys. It’s fun but there’s far cheaper easier ways to get a superior product.

    • stevekrouse 47 minutes ago
      Ah damn, sorry about that. I removed my footer "ads" in response to this feedback. Appreciate it.
    • MeetingsBrowser 51 minutes ago
      Driving schools will shut down within the year because self driving cars will be prevalent
  • hahooh 1 hour ago
    it sounds like backing up any learning... not just coding
  • bigstrat2003 19 minutes ago
    Even if you want to use an LLM (which you probably shouldn't, but it's your life), you best know how to program if you want to make anything good. They suck at programming, and need a human to guide them.
  • jdw64 1 hour ago
    Learning itself still has value. Just because my arms and legs are shorter than others doesn't mean I should cut them off. Just because an LLM can do most things better than I can doesn't mean I should stop learning. Also, whether the LLM's knowledge is suited for humans is a separate issue. This isn't limited to coding—all fields of study are ultimately humanity's process of understanding the world, and it's participating in that historical process that has been passed down from our ancestors. I think the idea that something has or doesn't have value just because an LLM exists is purely a capitalistic perspective. I sincerely question whether something that doesn't generate money in a capitalist sense is truly without value
    • specproc 1 hour ago
      Just because I have a car doesn't mean I should stop walking.
  • Rover222 1 hour ago
    "Code is a beautiful form of creative expression, as rich as literature or music"

    Um no, you've gone too far.

    • dd8601fn 44 minutes ago
      I'm no Mozart, but I find it really fucking weird when we act like woodworking is artful and creating software isn't.
    • em-bee 59 minutes ago
      i recommend you look at the demo scene for a counter argument.
  • sublinear 1 hour ago
    I don't entirely disagree, but I absolutely hate these blog posts. They always miss the point entirely. It's been enough years of this that it seems like a deliberate muddying of waters.

    "Knowing how to code" has always been poorly defined and full of silly arguments. Nobody employs code monkeys. What matters more is that you understand how things work. There's zero progress on that with AI. LLMs might even be negative progress on education.

    • appleappleapple 47 minutes ago
      >Nobody hires code monkeys.

      Respectfully disagree here. People have always hired code monkeys and arguably they will hire more of them as engineers become increasingly able to defer their judgment to LLMs. It might be true that the top level companies expect strong mental models of the code but in my experience many companies (especially startups) really just want the 0->1 ability and don’t care how you get there.

  • dyauspitr 1 hour ago
    Only because the US government is putting a bar on how intelligent of a model they are willing to allow and it seems like we are already at it. China won’t stop though so it’s going to be months to a year before we get models where learning to code makes no sense.
    • tcoff91 1 hour ago
      I feel like no matter the model, it's going to be more powerful when used by a skilled software engineer vs a layperson.
      • dyauspitr 1 hour ago
        For a little while. But we’re already at the point where a layperson can feed back errors into the LLM well enough for most apps for it to fix the problems and those are the errors it misses, it gets most of them on its own.
        • bigstrat2003 20 minutes ago
          We most certainly are not at that point.
    • platevoltage 57 minutes ago
      Learning to code will never not make sense. It will never make sense to me why software engineers are so eager to make the skills they've developed over years obsolete.
  • wgbowley 1 hour ago
    Man, that makes coding tools, says you should learn to code lolz. I don't disagree. Just worth noting.
  • somesortofthing 1 hour ago
    I think pieces like this miss the forest for the trees. Software is the bottleneck for a vast array of economic activities. Attention from intelligent people is most of the rest. Both are mostly-commoditized already and are just waiting around for technological diffusion and the closing of the RSI loop. Unless you're doing so as a hobby with no expectation of returns, I'm not sure what, if anything, is worth learning anymore.
    • abc_lisper 1 hour ago
      I don't know how one would build anything without knowing. If it was true, I would be building a competitor to Anthropic right now.
      • somesortofthing 38 minutes ago
        You build without knowing by delegating to a system that extrapolates what it knows about you and what you want, and is able to execute on that to deliver faster, better, and more completely than you ever could. You'll live as a ball of intent and values, observing in wonder as everything you desire springs up around you before you know you want it. You could choose not to live like this of course, but it would be like driving a DIY go-kart on the highway - you'll fall behind and get in others' way, and the rest of society will treat you accordingly.

        That's the optimistic case, anyway.

      • Madmallard 1 hour ago
        I mean only people with billions of dollars can make competitors to anthropic because of necessary compute costs

        that's the barrier to entry

        • davidpapermill 53 minutes ago
          Only people with billions of dollars can train foundation models, yes.

          But a competitor to Anthropic at the product level? With open source models, very little barrier.

    • PessimalDecimal 1 hour ago
      Lots of unsubstantiated claims here