How do you tell when coding agents are amplifying your engineering skill vs hiding gaps in it?
Heat trend
Collecting trend data
The percentage is based on available heat signal, not comment count or independent people.
A 15-year-old programmer with two years of experience, who learned manually and wrote thousands of lines of code, questions whether coding agents amplify or hide engineering skill. Before integrating AI into their workflow, they reviewed technical work with experienced individuals, completed paid client work, earned low five figures from software, built useful software, worked on low-level projects like an x86-64 kernel, and maintained systems used by real people.
TL;DR at the bottom.
I’m 15, mostly self taught, and I’ve been programming for around 2 years. I learned manually first and for a long time intentionally avoided using AI to write code because I wanted to know how programming actually worked before I had something else doing a huge part of it for me. I wrote thousands of lines myself, lived in documentation, debugged stupid mistakes, stared at errors for way too long, broke things, fixed them, somehow broke them again, and generally suffered in the traditional way lol. I’m glad I did that first, and I still keep a lot of my learning manual now, especially C++, systems and hardware.
For serious projects though, I use coding agents heavily. They’ve made me dramatically faster, which is great, but they also created a problem I don’t really know how to measure: how do I know whether AI is amplifying the engineer underneath the output instead of just making the output grow faster than I do? I’m not talking about blindly accepting generated code. I try not to hand an agent work I can’t meaningfully reason about. If there’s an important part of what I’m building that I don’t understand, I’d rather go learn it than treat whatever comes back as magic.
My workflow usually starts with me figuring out what should actually be built and how it should behave. I think through the structure, important boundaries, failure cases and what would count as real evidence that it works. Agents then do a lot of the implementation, which means a huge part of my time shifts into review. I inspect the changes, compare them to what was actually requested, run the software and its tests, look for things the agent touched for no reason, and reject approaches that technically work but are solving the problem badly. A normal conversation with an agent can go from “this works but its the wrong abstraction” to “that test is green but it proves nothing” to “you just broke the security boundary” and eventually “WHAT ARE YOU DOING”.
Review also isn’t something I suddenly decided I was good at because AI started writing code. Before agents became this important to my workflow, I had already spent months reviewing technical work with people much more experienced than me. We’ve had an honestly stupid amount of discussion about software decisions, debugging, Linux, security and things that went wrong in projects. Plenty of those conversations turned into hours of arguing where I actually had to explain why I thought something was wrong, and sometimes I was the one reviewing the implementation or pushing the direction of the project. I obviously don’t think their years of experience magically became mine, but that gave me a ridiculous amount of repetition asking the questions I now ask when reviewing agent work: does this really solve the requirement? What happens when it fails? Did we make this more complicated for no reason? Does the test actually prove anything? Are we fixing the real problem or hiding it? Is someone going to hate us for this six months from now?
Programming also stopped being purely something I studied pretty early. I started doing paid automation work, then the problems became big enough that I ended up building custom software around them. I’ve made low five figures total from software related work so far, and I’m starting to get the less glamorous side of it too: maintaining something after people actually depend on it. One system has employees using it, giving feedback, changing what they need and somehow discovering the ONE case I never thought about. Apparently “it works on my machine” was not the final stage of software engineering. Who knew.
I build a lot outside paid work too. I’ve made a small x86-64 kernel where I went into low level hardware and networking, but that’s only one example. I’ve also built Linux tools, backend and infrastructure systems, security related tooling, automation systems and software meant to make real workflows safer or easier. A lot of what I enjoy building has an actual use behind it rather than existing purely so I can put another repository on GitHub. I’m obviously not claiming I have deep expertise in every area I’ve touched after only 2 years, but I’ve put a stupid amount of time into this and I don’t really want to pretend otherwise just to sound humble.
If coding agents disappeared tomorrow, I wouldn’t suddenly become unable to program. I can still take a problem apart, design something, read the docs, write the implementation myself and sit in a debugger until I figure out what went wrong. I still deliberately do that now. I would just become WAY slower. That’s where this gets interesting to me, because being able to recognize why an implementation is bad isn’t exactly the same experience as fighting through it yourself. Spotting a bad abstraction isn’t the same as designing a bad one, living with it for months and finally understanding why you hate it. Reviewing a debugging fix isn’t quite the same as having no clue where the bug is and spending three hours hunting it down yourself.
Agents can erase a lot of that painful repetition simply by being ridiculously fast. But deliberately refusing to use them just so I can type more code also feels backwards. If I have a tool that multiplies how much I can do and I’m capable of supervising its work, of course I want to use it. I don’t think the answer is “stop using AI until you’ve suffered for another five years”. The question is whether the parts of engineering I’m practicing heavily can race ahead while some of the intuition that normally comes from implementing and failing yourself develops much more slowly without me noticing.
Right now I basically keep two tracks. When I actually need to ship something, I use agents aggressively. When the point is learning, I intentionally make myself do much more of the work. C++, systems and hardware especially stay much more manual. I still read docs, implement things myself and debug problems before immediately handing them to an agent. I also liked a suggestion I got recently: always keep at least one project where I personally own the important implementation decisions and need to be able to defend why I made them. That sounds like a pretty good control group.
So I’m curious how people here who seriously use coding agents think about this. What would you test completely without an agent to make sure the ability underneath your AI workflow is still growing? What experiences do you think you simply have to go through yourself? And for people who have been doing agent driven development for a while, have you noticed anything getting weaker, or anything becoming noticeably stronger?
The question I care about most is this: what separates someone whose engineering ability is genuinely being amplified by coding agents from someone whose output just makes them appear more capable than they really are?
I’m not interested in another “AI good” vs “AI bad” argument. I want to use these tools aggressively. I just don’t want the speed to hide weaknesses I would have been forced to notice without them.
TL;DR: I’m 15 and have been programming for around 2 years. I learned manually first, wrote thousands of lines myself and still deliberately keep part of my learning manual. Before coding agents became a huge part of my workflow I had already spent months reviewing technical work with more experienced people. I’ve also done paid client work, made low five figures from software related work, built useful software across several areas, worked on low level projects like an x86-64 kernel, and started maintaining systems that real people use.
Now I use coding agents heavily when I’m trying to ship. They do a lot of implementation while I spend much more of my time deciding how the system should work, reviewing what gets produced and proving that it actually behaves correctly. I can still build and debug without agents. I’d just be dramatically slower.
What I’m trying to figure out is whether that workflow can make some parts of my engineering ability develop very quickly while the intuition gained from personally implementing, failing and debugging grows more slowly underneath it. I want concrete ways to expose that gap before it becomes a problem, and to tell the difference between AI genuinely amplifying someone and AI simply making them look better than they are.
AI disclosure: the experiences and opinions are mine. I used AI to help organize and trim the writing.