10 years back, in 2016, a job in software engineering career was well defined.
All I needed was to pick one of these paths
Frontend development that includes React, Vue, jQuery etc
Backend developers - Flask, Go, Rust etc
Fullstack devs - Django, Ruby on Rails, PHP etc
Native app development using Java, Swift, Kotlin etc
Data engineer
Machine learning engineer
Security engineer
The paths existed because
It hard for a single developer to become proficent with the tools of multiple domains at the same time. Learning a single tool well usually took years.
Even if a developer did become good at using tools across multiple domains, they are still limited by number of hours in a day. They can only produce a limited number of code per day.
Both of these constraints is no longer a bottleneck with LLMs.
You no longer need to become proficent in a programming language to write code. As long as you have a pseudo code in mind LLMs would be able to translate it to real code for you. You can learn the code on fly by asking questions about the code.
A single developer no longer have any bottlenecks on the amount of code they can produce. LLMs can keep generating code for you.
Ofcourse there are criticisms on code quality and potential bugs these codes might have.
But I don’t think these matter that much.
One of the main reason Code quality mattered was because it was programmers reading and writing code. That’s no longer the case. It’s LLMs writing and reading code. As long as you define the requirements properly and test cases you can start treating the code LLMs write as a blackbox. Just like how you treat your own body.
You cannot automatically dismiss LLM generated code as bad. LLMs can write good code. And with right prompts you can make it output code by following the conventions of your company.
With LLMs you can always throw away code and rebuild the feature from scratch. Previously this was almost impossible because writing code is a huge investment on itself.
All these means LLMs are here to stay. Programming as a profession will get more and more comfortable in writing programs using English.
Companies would want to hire programmers that can work across the domains just like LLMs does.
The leverage would go to programmers who get really good at building end to end products with LLMs. This includes
Gathering requirements for the software.
Creating a tech spec.
Building the product for multiple OSes and devices
Testing.
Release.
Maintenance
I think many companies might even go one step more and even hire programmers that can identify what’s worth building in the first place.
The days of programmers who used to focus on one domain or framework or language is mostly over. The scope of programming has been expanded. And I am excited about it.
