A while ago, I posted My love/hate letter to copilot. The TLDR of that post is that I don’t like using AI when I am developing, as the general solutions I get from AI are so much worse than what I build, so AI doesn’t benefit me more than when I want to refactor a piece of code.

But since then, AI has developed significantly, with LLMs now being able to generate and deploy full projects. While I still stand by my stance on AI usage, as I still really don’t like using it, I’ve seen another side to the coin that I think can be a good thing.

AI and LLMs have enabled people to perform simple tasks, e.g., parsing a CSV, generating values, or deploying a landing page, without human intervention. This type of evolution isn’t new; similar changes occurred when computers first entered the market and began replacing human workers. Just as with the invention of computers, some people are now losing their jobs due to AI becoming such a huge part of everyone’s lives, though it also enables more people to accomplish more. Before LLMs became readily available, people were unable to easily accomplish certain tasks that they can now do. Additionally, AI will become even more involved in software engineering, as more PRs will have AI reviewing code and more code will be created by AI.

Until about 6 years ago, people could work as developers solely for the money, as many software engineering roles only required the ability to write code. But then AI, which can also write “just code,” came along and created competition for these developers, as they now had something else that could do exactly what they did - generating code.

But when these changes happen in the world, it’s something that always occurs: Either you adapt or you refuse to learn. Those who adapt probably have a much easier time keeping their jobs compared to those who don’t adapt. Software engineering has now moved from “I only need to be able to write code” to “I now need to know how to communicate, work in teams, understand problems more deeply, understand what customers actually need, and write code”. And this is what I think is great.

Programming is this type of thing that you need to continuously learn more about. The tech world moves extremely fast, and just look at how much has changed in the last 6 years compared to the last 20 years - it’s a lot. The computers today are insanely powerful. And when these changes happen so fast, it is important that we as developers learn more about what we do. For example, if you’re a frontend engineer, it is important to learn about new frameworks, libraries, or techniques because they probably solve problems that we had before. And when I say “adapt” I do not mean what the AI bros say about “if you don’t learn AI in 2024 you will fall behind”. They only say that to scare you and take your money - they actually don’t know what AI is and how it works. What I mean is that when software such as LLMs is created in the future, it is important that you at least spend some time understanding what it’s all about and when you should and shouldn’t use it. Same with what we have with React and NextJS - if you’re building a dashboard, bare React is probably good enough, and if you want more SEO-optimized websites, NextJS is probably better as it renders on the server. This means that you as a web developer should learn when and when not to use NextJS so that when you’re in a situation, you know which tool to use, that’s about it.

With this in mind, I think that we developers are now forced to gain deeper knowledge about things, such as being better at explaining the why in a decision. I’m not suggesting that all developers need to be senior engineers - to me, a senior engineer is simply someone who has made more mistakes than a junior, which has led to more experience. What I’m saying is that it will be easier going forward if you’re a developer with a passion for programming, because when you have a passion for something, you tend to spend more time doing it and have more energy to dig deeper into understanding it. I also think it will be way easier if you become specialized in a certain area and not “the whole programming world,” really, because AI has now increased the level of what makes you an “expert” or not. This is why some developers say that the first years of your programming career should be a grind because you just need to keep on building stuff and learning more about it.

This means that if you’re only into programming for the money or don’t want to learn new things, you will have a harder time going forward, especially for new developers as it is way harder to find a job as a junior developer today. However, if you’re a new developer and you really enjoy programming and just love to learn more, you will probably have a much easier time finding a job, as LLMs don’t give companies a developer who is hungry to learn new things, adapt to new solutions, or spend that extra hour fine-tuning the solution. And I think this is really good to be honest - I think that developers with a passion for the work create better solutions, and these are the types of devs I prefer to work with too.

But there is another thing which I mentioned before: we developers now also need to learn how to communicate and work in teams. A few years ago, it was totally possible to only write code and not care about anything else, but now we need to learn how to communicate with our team. This is important as the best solutions often come from a team and not a single developer, due to the fact that you get different opinions and ways of looking at the problem and what mostly differs between a good solution and a bad solution is the details.

The last thing which I think is great is that the requirements on the interviews have now increased. Earlier, the requirements were that you should solve the leetcode type of problems; today it’s also about reasoning. And it’s the reasoning part which developers with a passion often solve better. An LLM can today solve a leetcode problem.

If you’re a new developer and want to get into programming and thinking about quitting, don’t. To be honest, I now think that software engineering has become way better than before, because you have a bigger advantage if you’re a new developer and simply really enjoy programming, even a bigger advantage than some devs who have been on the market for a few years.