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
> 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"
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.
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
At the expense of what, though? That's 30 minutes not spent learning about the business, or talking to customers, or to your kids. Or watching the World
Cup. Or reading Hacker News.
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.
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.
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.
> 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.
> 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.
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.
It's worth learning to harvest with a scythe because it's cheap, good exercise, and has no mechanical parts to fail.
The issue isn't whether it's worth learning something in a personal development sense, it's whether it's worth going into massive student loan debt to pursue a career path that was once seen as a ticket to a comfy office job. LLMs probably won't replace top performing software engineers. Will they replace the mediocre cog-in-the-machine coders that most people become? In 5 years? 10 years? 20 years? That's what has college students worrying about whether it's "worth it".
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.
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".
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).
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.
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.
> 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.
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.
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?
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.
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??
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.
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.
> 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
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.
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.
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
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.
I mean, iteration and interaction builds your understanding which verifies and validates what you built. Relying on agents without formal validation is like saying a tree fell in the forest
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
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.
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.
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.
Note that every single person telling you to not learn to code currently knows how to code, often at an expert level, and is therefore capable of reasoning about code.
I learned to build such useless things as operating systems, databases and neural nets from scratch. That knowledge is foundational to my ability today to lead technical teams effectively, even in the era of copilot.
I would absolutely not hire an engineer who could not code. Don't get me wrong, I don't need code monkeys any more than I need assembly experts.
I need engineers who have experience building, tuning and maintaining complex software.
Someone who can't code can't crack open what they're working on and reason about it in a meaningful way. That's a huge liability. Also like... they just haven't ever done that work before. I don't even know if they're going to be capable of it.
I did some consulting a few years ago to convert startup codebases from Ruby on Rails to something that "would scale". Some of the projects I opened up were beyond comical. Millions and millions of dollars of investor capital burned torturing cut-rate junior engineers to get them to make a product-shaped solutions that could not be maintained, could not be scaled, could not be modified without everything breaking... entire teams of cheerful idiots who were replaceable with a single capable senior engineer who knew what they were actually doing. It was just tragic. Literal futures burned up as friction with reality, because neither the founder nor their engineers could write actual code to build clean, scalable systems without tripping over their own feet.
You're signing future engineers up to be those utterly lackluster juniors for the rest of their lives. Stay in school kids. Learn to code.
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.
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
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.
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.
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.
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.
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.
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.
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.
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
> 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"
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.
Abstractions are one thing, not putting any effort into learning is another. People worry about the latter.
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
At the expense of what, though? That's 30 minutes not spent learning about the business, or talking to customers, or to your kids. Or watching the World Cup. Or reading Hacker News.
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.
I can’t tell if you’re serious or not.
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)
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.
I think he’s wasting time.
Well good for him
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.
> 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.
The babysitting work would still be impossible if you didn't actually know how to code.
> 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.
> 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.
It's worth learning to harvest with a scythe because it's cheap, good exercise, and has no mechanical parts to fail.
The issue isn't whether it's worth learning something in a personal development sense, it's whether it's worth going into massive student loan debt to pursue a career path that was once seen as a ticket to a comfy office job. LLMs probably won't replace top performing software engineers. Will they replace the mediocre cog-in-the-machine coders that most people become? In 5 years? 10 years? 20 years? That's what has college students worrying about whether it's "worth it".
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.
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)
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).
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.
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.
learning lots of different games would achieve the same objective.
> 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.
> 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.
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.
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.
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?
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...
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.
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??
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.
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.
> 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
I agree 100%. I was just trying to say people can sort of get away with more, or justify it easier.
doesn't the recent bun controversy tell a different story?
exactly, it seems like people run away when a tool becomes heavily AI developed.
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.
Steve Jobs used to say that everyone should learn to program, because it teaches you how to think.
https://youtu.be/BRTOlPdyPYU
Coding is easy. It's the programming that's hard.
I'm glad I'm a programmer and not just a coder. Just like Hemingway was a writer and not just a stenographer or typist.
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.
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
<<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
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.
I mean, iteration and interaction builds your understanding which verifies and validates what you built. Relying on agents without formal validation is like saying a tree fell in the forest
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
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.
Who in the world has time to learn how to code? Who has that much copious free time when they're working two jobs?
> Who has that much copious free time when they're working two jobs?
Only two jobs? You'll need a better reason than that.
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.
There’s always value in the fundamentals you just might not get paid for them.
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.
Ah damn, sorry about that. I removed my footer "ads" in response to this feedback. Appreciate it.
Driving schools will shut down within the year because self driving cars will be prevalent
Learning the fundemntals but not syntax
it sounds like backing up any learning... not just coding
Note that every single person telling you to not learn to code currently knows how to code, often at an expert level, and is therefore capable of reasoning about code.
I learned to build such useless things as operating systems, databases and neural nets from scratch. That knowledge is foundational to my ability today to lead technical teams effectively, even in the era of copilot.
I would absolutely not hire an engineer who could not code. Don't get me wrong, I don't need code monkeys any more than I need assembly experts.
I need engineers who have experience building, tuning and maintaining complex software.
Someone who can't code can't crack open what they're working on and reason about it in a meaningful way. That's a huge liability. Also like... they just haven't ever done that work before. I don't even know if they're going to be capable of it.
I did some consulting a few years ago to convert startup codebases from Ruby on Rails to something that "would scale". Some of the projects I opened up were beyond comical. Millions and millions of dollars of investor capital burned torturing cut-rate junior engineers to get them to make a product-shaped solutions that could not be maintained, could not be scaled, could not be modified without everything breaking... entire teams of cheerful idiots who were replaceable with a single capable senior engineer who knew what they were actually doing. It was just tragic. Literal futures burned up as friction with reality, because neither the founder nor their engineers could write actual code to build clean, scalable systems without tripping over their own feet.
You're signing future engineers up to be those utterly lackluster juniors for the rest of their lives. Stay in school kids. Learn to code.
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.
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
Just because I have a car doesn't mean I should stop walking.
"Code is a beautiful form of creative expression, as rich as literature or music"
Um no, you've gone too far.
I'm no Mozart, but I find it really fucking weird when we act like woodworking is artful and creating software isn't.
Roller Coaster Tycoon was programmed in fucking assembly. That's a work of artistry right there.
i recommend you look at the demo scene for a counter argument.
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.
>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.
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.
I feel like no matter the model, it's going to be more powerful when used by a skilled software engineer vs a layperson.
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.
We most certainly are not at that point.
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.
Man, that makes coding tools, says you should learn to code lolz. I don't disagree. Just worth noting.
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.
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.
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.
I assume you don't ascribe to the thought that friction leads to growth. In this future of complete frictionless existence wont humanity stagnate?
I mean only people with billions of dollars can make competitors to anthropic because of necessary compute costs
that's the barrier to entry
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.
Lots of unsubstantiated claims here