The following post deals with my own personal views on A.I and its effects on junior programmers. I do not have an axe to grind with anyone using A.I, rather, I’m trying to explore the ‘right’ way to use it.
Introduction
I once sat down with a junior developer, who after bashing his head against the keyboard all day, beckoned me over in defeat. “It’s not working, nothing I do is working,” he cried as his hands went up in the air. He had spent four hours trying to get a button to call a function when clicked. His mistake? He was clicking a different button on the page. Sometimes, teaching isn’t about the code, it’s more than that.
When I started as a junior, A.I was a faraway fantasy that we often pictured talking to us, keeping us updated on the weather, replying to the mundane emails. We could never imagine the impact it would have on the industry itself and the uptick in ‘bad’ programmers because of it.
I have been lucky enough in my career to train up many junior developers and it’s something I personally really enjoy. Many of the people I have worked with have become good friends and even better programmers. It’s a fun dynamic of inquisitive learning where there are no stupid questions. Some of the most fun moments are breaking down code that works, line by line, and seeing someone understand it, really grasp the concepts behind what the code does, and how it does it.
I used to spend a lot of my free time in various online communities helping juniors from across the globe. It was a fun way to spend a lazy Sunday, hopping into a call with someone you’ve never met and giving them insight to help their career, but also their personal knowledge expand. I’ve got lots of fun stories of helping ignite that spark in people, and truthfully that’s the reason I think I invested so much time into doing it. The reward was having an impact on that person. For some people, coding was an escape from a job they hated. For others, we launched their first website for their family business.
I’m sorry Steve, I cannot let you code that…
A.I becoming so easy to access for so many people has had a real, tangible effect on the industry, one that is only increasing and showing its complex knock-on effects as it continues to evolve. The first iterations of A.I were slow, sloppy—essentially a pimped-up version of a search engine. Yet in recent years, the tech has become alarmingly good in some areas.
It used to be that if I wanted to solve a problem or learn something new, I would go and search for that problem or read the documentation. Now I find myself asking an LLM to search the documentation and give me a summary, or break down more complex code that doesn’t make sense in the context it was given. I don’t think A.I will replace competent developers who use it as a tool, rather my fear is those breaking into the industry are not learning from A.I—they are having it do the work for them.
I want to make it clear that A.I is amazing. I use it daily to bounce ideas back and forth, or as a glorified search engine to find obscure knowledge. It’s hilarious how I can have A.I explain the downfall of the Roman Republic, but do so in the tone of Master Yoda.
The decline of passion
In recent years, I’ve found myself stepping further and further away from mentoring people online. Previously, people would come asking for help and would be open to suggestions or feedback. They’d want to improve things together. As A.I became more prevalent, it changed. No longer were there conversations about how to solve a problem, it became “how can we get this A.I code to work in my project”, or “A.I says this is the right way to do it, but it’s not working”. None of that is enjoyable to work with.
The spark that juniors used to have is fading. Programming has always been a journey, where the finished product is the result of lots of hard-fought battles and learning. For many of us, that’s what makes it fun. Solving problems, putting broken pieces together, making something, crafting something with our brain.
Yet now I’m seeing more and more of a shift to ‘The end justifies the means’. There’s less inquisitiveness from the juniors I talked to. There was less care about the code. They didn’t need to understand what a ‘class’ is in CSS, because they didn’t care to learn CSS. They don’t care about accessibility, because the A.I didn’t code with that in mind.
People are ‘building’ (and I use that term extremely lightly) projects that are held together with nothing but a vague collection of prompts and copy-and-paste commands. The end product is badly made, unmaintainable, and worse yet—its “creator” doesn’t know how any of it works.
How to use A.I “Correctly”
By all means, use A.I—but don’t allow it to replace actual learning. If all juniors use A.I to complete their work, it won’t be long before everyone cuts out the middleman and hardwires A.I into their codebase to do the junior tasks.
Look, here are some rough examples of how I’d advise you to use A.I. It essentially boils down to: ask more questions. Really focus in on what you want to learn and do not allow A.I to do the code for you.
So here’s my tips on having a healthy relationship with A.I:
Ask A.I to lead you to the documentation, rather than provide a solution.
Try saying:"I'd like to learn more about click events in X, can you point me to a good resource?"When learning something new, ask A.I to frame it in the context of a real-world application.
Try asking:"Can you show me a short example of using the click event, for adding a product to a fake cart?"Ask A.I why it has given you the answer it has.
Try asking:"Can you tell me why we use the <button> in your code example?"Build smaller, learn in focused areas.
Try:"Let's build a simple dropdown menu. I will do the CSS myself—can you provide the HTML?"Use A.I as a second opinion, not the only voice.
Try:"This is the solution I came up with—can you review it and point out any issues or improvements?"Pair program with it—don’t outsource.
Try:"I’ll write the function logic, but can you help me write tests for it?"
That way, you’re still driving, and A.I is in the passenger seat—not behind the wheel.Reflect after using it. Ask yourself: Did I learn something, or did I just get unstuck?
One leads to growth. The other might solve your problem now, but it won’t help you tomorrow.
So there you go, there’s my ramble for today. Have a great Easter to all who celebrate—I’m off to eat some chocolate eggs!