Your Skills Will Always Matter
Thoughts and advice to beginner engineers in the noisy world of AI
I started programming when it was still a niche and unpopular thing. There was no video tutorials because Youtube did not exist yet. There was no StackOverflow, no Coursera or Udemy. And certainly nothing even remotely like GPT or Claude.
Everything had to be done through a long and often tedious work. If I ran into an issue, I had to either google it – hoping that someone on some god-abandoned forum have encountered it already – or manually search for it digging through the books. If I couldn't find a solution, I had to fix it myself, which in some cases was beyond my capabilities. I was a beginner after all.
Today, it's a completely different story. A beginner developer can find literally anything they need. Especially when it comes to popular programming languages like Python or JavaScript. There is a course or a YouTube tutorial for just about every topic you could imagine. Want to build a web app? Here are tons of videos on React, Vue, Angular or whatever framework you need. Want to build a backend API? Plenty of Rails, Django, Laravel tutorials – you name it. There is no shortage of learning resources. In fact, it is much harder to find anything worth attention in the vast cybertrash.
But there is another thing that is looming above the heads of beginner developers: artificial intelligence. I remember when Mark Zuckerberg once said,
In 15 years, we’ll be teaching programming just like reading and writing.
Now he is claiming that in a couple of years the majority of the code will be written by AI, we just have to wait for it to get good enough.
I can understand a beginner ambitious developer feeling uneasy, wondering whether he or she has chosen the right path. Heck, even I – someone who’s been in this industry for a long time – find myself questioning whether I'll be able to sustain my job or I'll end up sharing the fate of lamp-lighters and switchboard operators. Hearing that AI will get better with time poses a seditious question: why study programming and computer science at all, if AI will soon do it better than human?
There’s also Dario Amodei, CEO of Anthropic, who’s been saying similar things. In his recent interview to Council on Foreign Relations, he said,
In twelve months we maybe in a world where AI is writing essentially all of the code.
He did add though, that programmers would still need to specify the requirements and make the final decisions. I think what he tries to tell is that programmers will rely more and more on AI to generate the code and their role will shift more toward reviewing and verifying of the generated code rather than writing it from scratch. I can somewhat relate to that idea, but I still believe we’re more than a year away from that kind of reality.
I don't think they fully realize the great disservice they're doing with these kind of claims, which demotivate people to pursue the career in software development. And I don't see many people doing the opposite – encouraging young people to study programming and computer science. If you are one of these beginner developers, don't be fooled that machines would be able to do all the work by themselves without any control from a human being.
Think about it. Why would you need AI to generate code with a library like React, why not just use vanilla JS instead? It would be much more performant and without any dependencies. Why would you even need a high-level programming language when everything's done by AI? Just generate low level machine code directly and that's it. But somehow people generating the code end up using libraries and high level programming languages. Machine doesn't care about the libraries and it certainly doesn't care about good design patterns. Humans do. But if there is no human in the loop, almost every "software engineering practice" becomes either redundant or just plain useless.
The whole point of design patterns, countless libraries and languages is to give more control.
If AI does all the thing, we can throw out existing entire engineering practice and come up with completely different principles to software development. And guess who will be the ones to do that? Software developers.
Let me give you another example. Drum machines were invented in '70s. I'm talking here about digital programmable drum machines. By the '80s you could replicate the entire drum kit and program any kind of rhythm that most drummers couldn’t even pull off. Living in '80s you might have thought, "Drummers are cooked. Soon, drum machines will be so advanced that the only thing left for drummers to do is sweep the streets!".
Well, you know what? Drum machines are incredibly good now, almost every pop song uses some kind of drum samples. Go ahead and watch videos about Addictive Drums and how they sound. The average music listener won't even notice the difference between those and a real drummer. But I still see a lot of drummers around.
What actually happened is that most of the art and techniques of drumming were developed AFTER the creation of drum machines. Double bass drumming, crazy independence chops. The entire genre of metal, where drums play an essential role, was born. Jojo Mayer became popular emulating drum machines essentially performing DnB live.
Apparently people didn't care about drum machines being able to play anything. People cared about other people being able to play some kind of a rhythm in a way that felt real. When you see a guy who is truly, and I mean TRULY, good at drumming what actually fascinates you is his level of control over the instrument.
You might say, "Well, this is art, it's different". In some ways, yes, software engineering usually serves a more practical purpose. But at the end of the day, what separates an excellent software developer from a mediocre one is his level of control. Because control brings predictability and speed. And that is what the world needs.
Once I scroll down the internet, I found someone coding with an AI feel disappointed because they miss the pretty fundamental steps in learning how to code. I just find out that they didn't use version control which is pretty basic for us traditional coder. I pretty agree that skill really matters.