Software development as a field develops towards more and more abstraction and it has severe consequences for a job market.
When I started learning programming I took a course on the assembly language – a low level language that operates registers in the CPU. I had to learn tons of magic symbols like MOV or ADD, which I totally forgot and had to google them for this article.
Today, you can create a website without any coding knowledge. Even if you are writing code, you probably use languages like python or Ruby that take care of memory management, have tons of libraries for everything and their code reads almost like plain English.
Compare
MOV eax, 3
MOV ebx, 4
ADD eax, ebx, ecx
with
savingsAccount.withdraw(amount)
As a consequence, programmers need to think on a higher level of abstraction. In other words, programmers become more and more domain specialists rather than technical specialists.
20 years ago it was fine when you were C++ specialist with no domain knowledge, because your company hired another expert (business analyst, system architect), who translated business requirements to a technical language. Your job was then to translate these fairly technical requirements to C++ statements.
Today, business requirements can be translated almost 1:1 to instructions in a high-level programming language or even to a low-code/no-code tool. And I haven’t even started on the AI-assisted code writing revolution that is probably ahead of us. So why would companies employ a business analyst, who cannot express their thoughts in a code? Why would they employ a programmer that doesn’t understand business terms?
In short, why would they employ two people, when the job can be done by one supported by sufficient tooling? If you think you will survive the next 20 years with the “deep” knowledge of C++, then maybe. However, I would not bet on it and I think every programmer should start educating himself/herself in one or more business domains.
This might be an unpopular opinion, so I would be interested in your insights. What is your take on it? Let me know in the LinkedIn comments to the post.