"AI is taking our jobs!" I seem to hear some variation of that every other week. Big claims that software developers are about to become obsolete, and that anyone can code using AI. If you've been mastering the craft of software for decades like I have, then the thought of all that skill being rendered obsolete can fill your heart with fear and dread. 

But stop! Before we freak out and give up, lets step away from the sensationalist marketing hype, and take an objective look.Is AI really going to kill programming as a career? Is learning to code now a waste of time? 

By far the sharpest answer I've ever heard for those questions came from Python creator Guido van Rossum, when Lex asked him that question on his podcast (link to original video). He doesn't se any threat at all. In fact, he uses GitHub co-pilot, and says it saves him a lot of typing. To him, it's a bit like copying, pasting and modifying code from StackOverflow, but better and faster.

I also have an AI coding assistant installed, and I've grown used to the code suggestions that it generates. However, here's a dose of cold hard reality:

  • Sometimes AI generated code is good, but it's routinely buggy, or wrong
  • AI code assistants don't actually understand the code. I've likened AI to a very sophisticated parrot. It's very good at repeating code/info that it's been trained on, or has seen before, and even remixing what it has seen. However, that's not the same as understanding the code. I routinely get code suggestions that shows that it doesn't understand the context of the code I'm looking at. Some suggestions clearly came from an open-source project whose code it was trained on
  • And all of this trouble is with small fragments of code. We're not even talking about building a large sophisticated project yet

The bottom line is this: AI coding assistants are impressive in what they can do, and they can speed up the development process, IF AND ONLY IF you already know how to program.

Otherwise, how are you going to know if the code you had AI write is correct? If it doesn't work, how would you know how to fix it? If it does appear to work, how will you know if it's good robust code, if you don't even know what good code looks like? And how can you connect up blocks of code into a sophisticated large scale program when you don't know how to design large systems?

To take it to the extreme, would you step into an aircraft if its autopilot software was written using AI by someone who doesn't know what good code looks like? I certainly wouldn't.

So no, AI assistants haven't taken our jobs, because you need to know how to write good code in order to use them effectively. If you want to make software that solves real-world problems, then learn to code, and learn it well. Learn what good code looks like, and learn how to use code to solve problems, and how to design large systems. And then, an AI code assistant becomes a great tool.

What about long-term? Will AI code generation ever get so good that it can write large scale software without needing human programmers? Time will tell. If Artificial General Intelligence (AGI) is ever achieved, then probably yes. Mind you, AGI isn't guaranteed, and if you've watched the movies, then it isn't necessarily something to look forward to, either.

If someone ever names their AI "skynet," then run!

In the meantime, go learn how to code, make awesome software, and live life to the full. The problem solving skills you build while learning to code will always come in handy elsewhere.