Yes, you should still learn to code*

MP #18: Even with the new generations of AI tools that are coming out.

Note: As the author of a prominent introductory programming book, I admittedly come to this topic with some instinctively protective bias. However, if my book faded to insignificance tomorrow, I’d still argue these same points about the ongoing value of learning to code.

With the rapid evolution and hyping of the latest generation of “AI” tools, we’re seeing a resurgence of a question that comes up any time there’s a major development in the programming world:

Should I still bother learning how to code, if an AI can write better code than I can?

I think the answer is still a very clear “Yes", for most people who are asking the question.

The cries of despair

I’ve seen variations of this question over the last few weeks in all kinds of communities: tweets, toots, blog posts, LinkedIn posts, and more. Wherever people discuss life choices, this question is coming up. Here’s just one small example, in response to OpenAI’s announcement of GPT-4:

Screenshot of a reddit post, reading "Is AI a thread to programming as a whole? I heard GPT-4 is released and it can create websites. Is it worth still learning how to code for that specific reason?"

This is a natural reaction to what we’ve seen lately. If someone shows you a machine that can turn a napkin sketch into a functional website, it’s reasonable to wonder “Why would anyone ever pay me to build a website again?!” This is especially true if you’re new to the field. It’s even harder to process all of this if you’re not even in the field yet.

Should I bother learning?

The short answer is almost certainly “Yes”, with one major caveat. Many people think you can learn to write a little code, and immediately get a high paying remote job working from the comfort of your home. That was always, with rare exceptions, an appealing myth. It’s an idea we’re being sold by many content creators, but it’s also an idea that’s been fostered by many well-intentioned people. Programming is not as difficult as many people make it out to be, but the skills and experience needed to solve real-world problems isn’t as simple as some have argued either.

Why it’s still worth learning about programming.

There are a number of reasons why it’s still worth learning about programming, if that’s what you’re interested in:

  • AI tools are, to put it simply, programs. If you want to understand them, knowing how to program will give you a more accurate understanding of how they work, what they’re capable of, and what they’re probably not capable of.
  • Much of what AI tools generate needs to be validated. If you’re stuck accepting the output of AI tools at face value, you’ll be stuck dealing with their mistakes as well. If you can evaluate the appropriateness and correctness of their output, there’s probably going to be plenty of interesting work available to you.
  • There will almost certainly be fields where the impact of AI tools is limited. AI tools require a certain amount of good data in order to be relevant in any given field. If this data doesn’t exist yet, then it’s up to people to keep pushing that field. You’ll almost certainly start to use AI tools, but the work will still be there.
  • People will need help integrating AI tools into all kinds of fields. If you understand AI tools and how to use them and evaluate their output, you will almost certainly be able to find work helping others integrate them into their own work. Some of this integration will likely involve programming skills.

What’s not worth pursuing

The rapid development of AI tools is shining a light on one aspect of learning to code, which many people have been ignoring until they learn it the hard way. People who just learn a bit of syntax without really learning how to use code to solve real-world problems are unlikely to find meaningful work. If you’ve learned some syntax but haven’t learned to apply the ideas of programming, there’s a good chance an AI tool will generate more useful code than you can at this point.

This doesn’t mean you shouldn’t learn to code. Rather, it should clarify that your end goal should be understanding how to use code to solve a variety of problems. You should also expect to continue learning new things throughout your life as a programmer.


There has always been room for people who have a solid grounding in programming, and who continue to build on that understanding in the context of new developments in the field. I think that still holds true, even with the current and future iterations of today’s AI tools.

Learn what you love and what you’re interested in, with an eye towards how you’ll find meaningful employment on an ongoing basis in an ever-changing world. If that’s programming, or related to programming, then the presence of AI tools shouldn’t keep you from bothering to learn about code.

* Assuming you were already interested in learning.