The toddle Blog

They lied to you. Building software is really hard.

Every week there seems to be a new tool that promises to let anyone build applications 10x faster. The promise is always the same and so is the outcome.

They lied to you. Building software is really hard.
Andreas Møller

Andreas Møller

February 23, 2025

It used to be no-code tools but recently AI programming platforms have been gaining a lot of traction.

No-code and AI programming tools might seem like different categories but they have a lot in common. They both target users with little prior knowledge of programming and promise to let them build anything they could desire. They are easy to learn and often have you building something in minutes that otherwise might have taken you weeks if not months. 

The problem is that while these tools can help you build a simple prototype incredibly quickly, when it comes to building functional applications they are much more limited. They make the simple parts of software development simpler, but the complex parts can often become more difficult.

The reality is that if your goal is to become a software developer, relying on these tools early on often ends up slowing you down. You get the illusion of progress early on, but the flat learning curve just means that it will take much longer to learn all the things you need.  When you eventually face a problem that the tool cannot solve for you, you will be back at where you started having to learn everything from scratch.

The great thing about a steep learning curve is that you progress a lot faster.

If you are looking for that one trick that lets you get ahead and jumpstart your career, my advice to you is: Don’t choose the path of least resistance. When training a muscle, you only get stronger with resistance. The same is true for learning any new skill. It is when you struggle with a specific problem or concept that you tend to remember. When you are fully engaged and wracking your brain to try and understand what is going on, that is when you grow. Relying on your tools is like copying the answer from your classmate. You forget it the next day.

In simple terms, the steeper the learning curve, the faster you are going to learn.

The true value of a software engineer is in our ability to analyze problems as well as design and implement creative solutions. To get good at these skills you need to understand not just the tools at your disposal but also the technologies you are building on top of. If you don’t understand how an application works then you have no chance of fixing its bugs and issues. 

With no-code tools you often reach a hard limit where the tool simply does not make sense to use anymore. With AI it is more of a gradual curve. It is difficult to get any reliable data on how AI tools can impact developer productivity. One thing that does seem to hold true is that the effect greatly diminishes the more experienced the developer is.

My best estimate is that the curve looks something like this

As you gain more experience, you tend to spend more of your time on complex problems that AI assistants have a harder time solving. At the same time you also just get much better at coding and can solve problems much faster than in your junior years.

There has been a lot of chat on social media about the future of software developers. One point that seems to come up frequently is the idea that companies will only hire senior engineers and rely on AI for the tasks that were previously done by their junior colleagues. This is clearly absurd since without junior developers there would be no senior developers. There is however a real risk that we will start seeing junior developer salaries dropping as their contributions might not be deemed as valuable in the age of AI. In that case senior engineers will likely be even more in demand and their salaries will likely reflect that.

To sum up the advice in this article into a single, easily consumable bite it would be this:

Invest in yourself. 

Your skills and experience as a developer have value. The harder it is to acquire a set of skills the more valuable they tend to be. Even though some of the things you will pick up along the way will become outdated, the experience you gained while using them will stay with you. Each language or technology you use makes the next one a little easier to learn.