I am an OK programmer. I’m not one of the greats. I don’t have a CS degree. Anything I know I’ve learned from talking to others, reading, doing, and making a whole bunch of mistakes.
I’ve been very fortunate. I’ve been coding for over 35 years and have been able to make a nice living doing it.
For the last 10 years, I have not written much production code. I work on proof-of-concept projects and create demonstration projects that are intended to teach others about a particular programming technique or framework.
When I was writing production code, half of it involved new projects starting from scratch, which we call green field code. The other half involved updating and refactoring an existing code base, which we call brown field work.
All this was before AI wove itself into the fabric of computer programming. Things are different now.
I have a paid subscription to Copilot that I’ve added to my JetBrains and Visual Studio Code integrated developer environments (IDE). For the most part, when it comes to actually writing code, I do nothing more than enable the IDE to listen to me talk into my computer’s microphone. Then, I make a voice prompt to tell Copilot to write the code I want.
For example, I say, “Write a function in JavaScript called getPrimesAndRoots and have that function find every prime number between one and 1000 and then return an array of tuples in which each tuple has the prime number and its square root. And, then, show me the unit test that proves the code works as intended.”
Then Copilot writes the following:
Now, as an average programmer, I could have eventually figured out how to write the code. But Copilot did it in a few seconds. My productivity just increased by a kazillion percent.
That’s the good news. The bad news is that the code, while slightly challenging for me, is not rocket science, and Copilot handled the task faster and probably better than I could have years ago when I was paid to do refactoring or do green field programming.
Fast forward to today, and this translates into AI doing a lot of the grunt programming that is the bread and butter work for a good many programmers. Just as the automobile put a lot of horses out of work, so too will AI make the average developer obsolete. There will still be a need for Ph.D.-level thoroughbreds, but for Old Jenny pulling the wagon, she was replaced by a Ford truck. The same will happen to Gary in IT whose job is to keep up with the current tax laws and then implement compliance by refactoring code that is somewhere in the bowels of a plethora of legacy databases. It might take Gary days to find the code, let alone change it. AI can do the deed in minutes.
Bye-bye Gary. Bye-bye Bob, thirty-five years ago.
If an aspiring average programmer, such as myself, back then, were to come to me today for “career counseling”, my advice would be this: become an electrician. The days of maintenance programming are coming to an end. On the other hand, electricians will be needed for a while.
It’s a real-time, in-place occupation. Today, the pay is OK, anywhere from $37K to $102K, depending on where you live.
Being an electrician requires much of the same skill set as a computer programmer: the ability to think logically, troubleshoot, understand systems, etc… Yeah, you have to like “working with your hands,” but the physical toolset required is a lot smaller than that of a crane operator, and the work is a lot cleaner than that of a plumber.
Once you’re licensed, you can go out on your own. Licensing is still done by state or local government, so, for now, there is a fair amount of commercial independence that avoids the problem that software developers have of being tethered to a particular company, e.g. Amazon Certified.
The trade is vulnerable to robotic automation, but for the most part, only for repetitive tasks. And here is the kicker: unlike being an intern in some high-tech startup, where you get battered around with the mundane work nobody else wants to do, the electrician’s trade is based on the guild model: apprentice, to journeyman, to master. At no point in the process are you working for free. The higher up the food chain you go, the more money you make. And, as mentioned previously, once you become a licensed electrician, you can hire others to work under your license. You’re responsible for the work they do, but the benefit is you can create a business that scales.
If I were thirty years old today and had a family to feed, I would become an electrician, no questions asked. I’d also still read Hannah Arendt, Shakespeare, Marcus Aurelius, and Dostoyevsky, but that’s another theme to write about at another time.
Software has been very, very good to me. I’ve made a good living in my profession, and programming has provided me with a unique creative outlet that I have yet to find elsewhere. I love coding, but it’s a profession with narrowing possibilities.
There will always be work for the Ph.D. thoroughbreds, but for those of us who are average, our days are numbered. This isn’t to say that we can’t prosper, but our prosperity won’t be in software development; it will be somewhere else. My hope is that that other place will offer the possibility of prosperity to anybody, from any walk of life, who is willing to step up to the plate and do the work required to get ahead.