How will we make senior developers?

Something strange is going on in the job market for software developers. 

Everyone is worried that their job is going to go away and businesses are going to turn software development over to the machines. Few dispute that agents write good code. I’ve even argued that our days of writing code are pretty much over. 

Sure, agents are writing the code, but we aren’t quite ready to turn the whole thing over to agents. We are still feeling the need to supervise what they do, look closely at the code they write, and serve as gatekeeper for what gets checked into Git. 

We can do this because we are seasoned, experienced developers, with hundreds of thousands of lines of code under our belt, and we’ve seen it all. We can spot bad designs, inefficient algorithms, and code smells. If the agent isn’t doing things the right way, we can spot the problem and correct it. 

Coders of hard knocks

And how did we become seasoned, experienced developers? We started out writing bad code that was reviewed — probably first by a high school teacher or college professor, and later by senior devs. Or maybe we just wrote a lot of sloppy code and learned it was sloppy by reading, studying, and gaining experience on our own. But however it happened, it was more or less “learn by doing.” 

But we aren’t “doing” anymore. So the question becomes, how is anyone going to learn to code if we don’t code? It doesn’t take advanced calculus to realize that if we don’t teach early-career developers how to develop software, then we will lose all the expertise in the profession as time relentlessly marches forward. 

The classic example of a job that AI promised to take was radiology. The thinking was that AI can look at an x-ray and see the problems as well as or better than any human — often spotting problems that humans would overlook. The demise of the profession was predicted, but the opposite has occurred as demand and salaries for radiologists have risen. 

And this raises an interesting question. To become a radiologist, you need to go to medical school for four years, and do an internship and a residency. And let’s not forget the four-year undergraduate degree. 

But how do you become a seasoned software developer? If the job is going to become “Review this code an agent wrote for accuracy, good design, and correctness,” then how does one acquire the knowledge and experience to be able to do that job?

Senior developers wanted

The training to become a radiologist involves looking at thousands of existing x-rays and learning what those x-rays reveal. The students have a specific curriculum designed to teach them everything they need to know. Their first real-world experience is under close supervision. It’s a time-tested system that trains radiologists in a proven and effective way long before they have to diagnose the maladies of actual patients on their own. 

Interestingly, we don’t have any such training program for software developers. We don’t show them fully designed systems with flaws in them, pointing out what the problems are, and teaching them to understand bad code and why it’s not right. Instead, we just throw them into the deep end and say “Well, here’s a Jira ticket, get to work, and we’ll tell you how you screwed up.” 

Sure, you can go to a boot camp or get a computer science degree, but those places mainly just teach you the basics, or take you somewhat beyond the basics. There really isn’t a place where developers learn what is and isn’t good code except on the job, struggling in the deep end until they can swim laps. There is no equivalent to “Here are a thousand x-rays and what is wrong with them.”

The job market for software developers is bearing this out. Sure, the numbers are going up, but 71% of that growth is companies looking for senior developers. Good for us grizzled veterans, but you can only hire so many senior developers before the lack of hiring junior developers comes up and bites you in the rear end.

So if junior developers stop writing code, how will they become senior developers?

That, my friends, is the question of the day. 

This article has been indexed from InfoWorld

Read the original article:

How will we make senior developers?