We need junior developers
I started my career as a junior developer in 1998. I was incredibly fortunate that a company was willing to take a chance on a new college graduate and start teaching me the realities of software development outside the classroom.
I wrote a lot of terrible code, made mistakes, broke things, mis-estimated projects, and pretty much everything else you would expect from someone who doesn’t really know anything yet.
But I got better. Slowly.
Every new project was a chance to firm up my growing bed of knowledge. I got better at the craft of writing code. I got better at working within projects. Eventually I got the opportunity to start scoping and leading projects and I got better and better at that too. I learned how to work with clients to reach their goals (which is often not the same as what they’re asking you for) and so much more.
Here we are, almost 30 years later and I’m still doing it. And I’m still learning (which I love and will never stop). I have hundreds of projects under my belt. I’ve seen so many different ways things can go wrong. I’ve see how a smoothly run project can still be a nightmare if the architecture is bad. I’ve worked with good clients and awful clients. I’ve gotten to help shepherd junior developers at the beginning of their career and start teaching the habits that can only come with experience.
This career is changing rapidly with the onset of LLMs. 6 months ago, I was using Cursor and it was basically a glorified auto-complete. I’d trust it to write small parts of functions and that was about it.
Now I basically live inside Claude Code. I spend most of my time thinking about what I’m trying to achieve and the architecture I want, mapping out the design spec with Claude Code, reviewing the implementation plan and then letting Claude do most of the actual work. I always make sure to implement things in small chunks so I can review what it’s doing and make sure the plan we decided on continues to make sense.
I can also use it to build all of the personal projects I never had time to do before (and I don’t have to be quite as careful about the implementation of those 😜). I replaced a piece of software I was paying $12/month for with a cli tool that Claude built in an hour. I wanted a web-based RSS reader that I could self-host and I didn’t like the other solutions I found so I just built one with Claude.
It’s all pretty amazing.
But I worry about the software development pipeline. We’re already seeing huge drops in the hiring of junior developers.
The problem is, we still need those junior developers so they can eventually turn into the next generation of senior developers.
LLMs are an amazing force-multiplier and you can do amazing things in code with them, but they won’t make you learn faster. They won’t help you learn the lessons that only come from experience. From building things that you understand deeply, from planning and leading projects.
I’m worried that we’re strip-mining our future in favor of generating lots of code very quickly.
The code is the least important part of all of this.
There’s still a massive part of this that needs experienced humans and the only way to get that is to have new humans that we can grow and give experience to.
#ai #career #softwareDevelopment