Learning to code in the age of AI
Previously
Learning to code has been a long time coming for me. I was incredibly fascinated by video games as a kid, and with that came the thought that I wanted to be a software engineer. Coding a video game seemed like the coolest thing in the world and the coolest industry I had ever seen. Unfortunately, grade 11 math came into play — I got a 60 and didn't do well in my Python course in high school — and I thought I was completely cooked, too stupid to do any sort of programming ever in my life.
I ended up going to university for music and had an incredibly fulfilling early career in the military doing that. When COVID hit and I fell down the "make money online" rabbit hole, I stumbled into the tech world and fell in love with learning to program. Once again, the idea of being able to code something felt truly magnificent — but this time it wasn't video games, it was SaaS software products. I was working in sales and customer success at a software company, and on weekends I was doing Codecademy, teaching myself JavaScript, HTML, and CSS. I had this niche understanding of the music industry and tools that musicians needed, and I thought that if I could learn to build websites and maybe a no-code or low-code application, I could make something of it. As far as actually learning to program, though, I was pretty rudimentary. I didn't really know what I was doing — I was basically a very basic script kiddie with no real understanding of how computers or software even worked.
Life changed, and I decided to take a career break and go back to school. It's truly been one of the most fulfilling decisions of my entire life. I feel like I've unlocked a part of myself that I had early on with music — a love for technology that goes beyond most bounds. I'm continually amazed and awestruck by what I've been able to learn, and by what this technology is capable of unlocking for people.
With the advent of AI and how good it's gotten at coding and educating, I think there's a completely new way of learning to code that I've seen echoed across X and other online platforms. I've genuinely struggled with this in my brain — how to balance learning the fundamentals properly while also harnessing tools that supercharge individuals. The give and take of not completely offloading your education to AI, but understanding how to use these tools wisely.
Some people say it's the easiest time in history to get into coding. I honestly think it's one of the hardest. I'm super grateful to be getting into this at almost 30. I think if AI had been around and I'd tried to learn a decade ago, I would have been lazy and just tried to get the piece of paper. But now, I'm here to actually learn the skill — and to supercharge myself in the process. It is such a fulfilling experience.
Current State
I started learning to code for real about a year and a half ago, and my methods have changed quite a lot in that time.
First, I have to say that schools and teachers right now are in the absolute thick of it when it comes to AI use and abuse in the student population. Teachers are trying their best to make sure students actually learn the content and don't just delegate everything to AI, which is why they ban these tools on assignments. I think that's a good call, honestly. You have to learn how these things work, put in the reps, write the code yourself, and build the muscle memory — so that you can then supercharge yourself with AI later.
I think having unchecked access to these tools is producing a split generation of programmers. The top percentile will be incredibly sharp — exponentially better than programmers coming out of these programs a decade ago, pre-AI. But the bottom and mid-tiers are going to be in rough shape. Teachers are doing their best; most of our practical exams are on paper, which I actually think is great. Coding on paper forces you to cement your knowledge. Can you actually solve the problem in code, syntactically, without access to docs or AI? It's hard — but it's hard for a reason, and I think it's incredibly beneficial.
Now, I used to be a complete purist. My first couple of semesters, I refused to touch anything AI-related. I was so scared of plagiarising or not actually learning the material. I think that was good in the beginning, but it also maybe held me back a little. As I progressed through school — I'm done with three semesters and have three more to go — I figured out that using AI wasn't a bad thing. You just have to be smart about it.
I'm not trying to cheat the system. I'm trying to use the tools available to me to the best of my ability, within the rules. The way I use it now is essentially like having a senior developer looking over my code, or a mentor, or a personalized AI tutor. I think this is the best approach for any student or anyone learning a skill. You prompt it in a way that keeps the learning intact while not being blocked by something you don't even know you don't know.
There used to be this mentality of grinding through an eight-hour debugging session just to find a missing semicolon. Personally, I don't think that's helpful anymore — IDEs are so good now that they'll usually catch syntax errors. But sometimes they don't, especially in JavaScript, and that's where AI comes in. You don't need AI to one-shot your project. What you can do is try your best, post the five or ten relevant lines into AI, and say: "Here are the steps I've taken. Can you help me find where I've gone wrong?"
How many times have you been stuck writing a SQL query inside escaped quotations within a PHP PDO that just won't return the right data? I know what's going wrong — I can see the escape characters — but sometimes the query is long and I've missed one backslash or one closing quote. Why waste an hour on that when I've already written 80% of it correctly? I put it into ChatGPT, it tells me what I missed, and we move on. The learning isn't in escaping things perfectly — that's now table stakes. The learning is in understanding the tools you're using, the outputs you're getting from the LLM, and being able to orchestrate everything in a way where you are not offloading the thinking. You are guiding the system. You are making the executive decisions.
Vibe coding something? Totally fine. Building a project and exploring the limits of these systems? Fantastic. I've done a couple of vibe-coded hackathons and they were great. But if you're truly trying to learn something, can I really say I learned a lot about coding from those? Not necessarily. I did pick up some things — mostly around software deployment, pushing my limits, and exploring:
- Building a backend
- Building a frontend
- Connecting them together
- Actually deploying onto the internet
But I didn't really learn much about a new framework, tool, or package.
In my opinion, the best approach right now is to use AI as a helpful senior friend. "Hey ChatGPT, I'm stuck on how to approach the implementation of this. Here's what I've tried, here's the code I'm working on — what am I missing?" The most valuable thing is being able to unblock yourself and continue down the learning path without being hindered by not knowing what you don't know. Continue to do the grunt work:
- Do the readings
- Do your own research
- Absorb as much information as you can
- Work on projects to further your skill
Where AI is incredibly helpful is when you're stuck. Prompt it with your specific context and what you've already tried. And if you want, tell it: "Don't give me the code — just talk me through how you'd approach solving this, or tell me where my one mistake is." You will be shocked at how far that gets you.
The Future
I think the future of learning to code is going to be really interesting. These tools are only going to get better, and the job is going to keep changing. I think it's already shifted from humans writing every single line of code to humans orchestrating groups and subsets of agents that make changes to files and handle deployments. These models are improving by the hour, almost. Companies — especially tools like Cursor — are coming out with incredible new use cases that supercharge your ability to write code with agents.
It's an absolute meme on X right now, but you truly do have to be unemployed to stay on the edge of what's happening in software, AI, and programming. As for learning to code, I still think it's an incredibly valuable foundation — there's no substitute. If you're writing software, you should know how networking works, how operating systems work, and how a computer works at a fundamental level. You should still:
- Learn to write Java, C, and JavaScript by hand
- Take a web development fundamentals class and write HTML, CSS, and basic JavaScript
- Take a databases class and understand deeply how all these systems interact and come together to make the software we know today
But I do think we're at a point where you also need to learn to be AI-native. And one way to get there is to actually use these tools at your disposal — just don't offload the thinking. Don't go to Claude and say, "Here's my assignment spec. Write my project for me. Make no mistakes." You don't learn anything. You devalue the education you're getting. It's a hindrance to yourself, and it makes no sense.
Do your assignments, get your work done, but use these tools to help with the mundane things. One of the biggest things I used to rely on pre-AI was the HTML boilerplate shortcut in VS Code — type ! and hit tab, and it pops out a full HTML page. I don't think anyone writing an HTML page would ever need to write that boilerplate by hand. Doing it once in class makes sense — so you can say you've done it before and circle the right answer on an exam — but beyond that, it's a solved problem.
I think that's exactly the analogy for what's happening now. If you already understand the architecture and how all the pieces fit together, it's totally appropriate to have AI scaffold something like a controller page. That's the perfect opportunity to offload that cognitive load. But if you're just starting out, or picking up a new programming language — please don't do that. Use it as a guide, as a senior mentor. Let it help you when you've gone astray, and use it to debug those tricky cases that will always come up.
AI is here to stay, and we have to be smart about how we use it — how to keep our humanity in the building of software while also embracing these new super-powered tools at our disposal.