
The Coding Skills My Son Wants to Protect

I encouraged my sons to go into programming. At the time, this passed for responsible parenting.
I still think there’s an exciting future in it. I’m telling them to embrace AI and learn everything they can about the tools. I’d just like their employers to get excited about what they could build before getting excited about how many people they could fire.
I asked my son Connor what worried him about AI and his work. His answer was specific.
“I’m probably going to lose the good problem solving and debugging muscles that I’ve developed.”
He’s about to turn twenty-seven. He’s spent roughly three years at Bell Canada getting good at something, and now he has to think about how to keep getting better while a machine offers to do it for him.
You learn to debug by following explanations until they fall apart, working out what you missed, and trying again. Eventually, you become someone other people can bring a difficult problem to. That confidence takes time to earn.
Now Connor can hand an AI agent the code, the logs, and the documents explaining how everything fits together. It can help find the problem. As he put it, that’s “very easy and tempting to do all the time.”
I can see the attraction. I use these tools myself, with considerably more enthusiasm than restraint.
I’m excited about what he and his brother Alec could do with these tools. I’m also worried about layoffs and how hard finding the next job might be. It’s easier to promise your children extraordinary new capabilities than to say who’ll be paying for them.
I’d love to be more reassuring. I’m their dad. I’m supposed to know this shit.
At twelve, Alec got an introduction from me to PHP, a database, and Bluehost, with the suggestion that he build an address book. Other fathers probably suggested football. He went on to intern at Tesla and Stripe, then joined Stripe.
Connor chose electrical engineering. I was slightly puzzled because he’d always seemed more interested in computers than electronics, but it was his degree. Parenting occasionally involves shutting up.
Near the end of his degree, a coding internship changed his mind. He decided to look for programming work. I worried his degree might make getting hired harder, but Bell gave him a chance.
The pay was good and companies were hiring. Software looked like a sensible place for both of them. I believed the advice I was giving.
I’d learned PHP in my thirties, then some Python. Ideas came easily. Persuading a computer to participate was harder. I’d get stuck and search Stack Overflow. An answer would get me far enough to discover the next thing I didn’t understand.
When ChatGPT arrived, I was delighted. This was before coding agents. I copied code out of the chat window and pasted errors back in. Even with me employed as the clipboard, it saved a ridiculous amount of time.
I understand the excitement in David Heinemeier Hansson’s Rails World keynote. The creator of Ruby on Rails says 37signals has gone “pencils down” on handwritten code. I’m not convinced we’re finished writing code ourselves.
A large production system can contain years of decisions and dependencies, including security and privacy requirements you really don’t want an agent to discover by violating them. I’d want more than an impressive demo before letting an agent change software customers depend on.
Connor works on a system that sets up internet service on routers. Testing normally requires a configured physical device. Those devices can be scarce and slow to set up.
He used AI to help create realistic data in the database so the system behaves as though a router has been fully set up, without needing the hardware. He can repeat the test in seconds. During active development, he estimates it saves him hours a week.
He gets more time to test his work. Sitting around waiting for equipment isn’t going to make him a better programmer.
When changing a codebase he knows, he asks for pseudocode first: an outline of what the code would do. He steers that until the approach fits what he has in mind, then lets the tool write it. He reviews and tests the result.
He also uses AI to understand unfamiliar networking protocols. He can keep asking questions until the explanation makes sense. A senior network engineer could help, too, but the engineer has other things to do. The chatbot has yet to look at its watch.
The temptation comes when he could investigate a problem himself and can skip the investigation altogether. Once or twice is convenient. Make it the default, and he worries about how much practice he’ll still get.
I can imagine how this feels to someone who’s spent fifteen years building that expertise. “Embrace change” is easy advice to give. I know, because I’m giving it. It still leaves them to work out what happens to everything they’ve already learned.
Connor’s knowledge already helps him steer the tool and judge its work. I want him to keep developing that ability. I’d worry if he could produce more code but understood less of it.
He’s thoughtful about the employment question, too. In his view, replacing an engineer takes more than putting Claude Code on a laptop. A company would have to connect AI to its plans, conversations, and working knowledge, then change how the work gets done. Buying the subscriptions is the easy part. You can announce the transformation before anyone’s had to transform anything.
If my sons were sixteen now, would I recommend programming? I don’t have the uncomplicated yes I once did. I’d start with understanding a customer’s problem. What would someone pay for? What alternatives do they already have? What would the product need to let them do?
Then I’d want them to understand how the system fits together, including what a change in one place might break somewhere else. Learning syntax alone would be a much smaller part of my advice.
AI could help Connor take on more product design or product management if that interested him, alongside what he knows about software. I’d love to see what he’d build if he got to make more of those decisions himself.
I’d want him to be able to question whether a product should get made at all. A beautifully implemented thing nobody needs remains a thing nobody needs. We can now produce those at an impressive rate.
Both sons are curious and willing to adapt. They agree about learning the tools. Connor’s already putting them to use while thinking carefully about what he wants to keep doing himself.
I can’t tell him exactly how much debugging he needs to do himself, or which parts of his job will matter most five years from now. I can take his concern seriously. He’s earned some confidence in his ability to work through a hard problem. I want the next few years to give him more of that.
I’m proud of the programmer he’s become. Whatever his job ends up being called, I want him to feel that way, too.