But the question is, will this atrophy our ability to write and understand code? Is reviewing enough? Won't we inevitably get lazy and stop reading enough code?
Reading always was a worse way to learn than doing. When we stop doing, we will have to triple our reading (if that's even enough), but will we do that or just trust the agents more and more?
This would be fine if LLMs had a dedicated language or a well-tuned abstraction that suited their abilities well. Right now we are trying to fit our square languages into the LLM's round hole.
I haven’t touched LLM coding beyond using TabNine originally and that has since been disabled. My LSP is good enough and I haven’t fallen behind on delivering code before deadlines. Not sure what the constant hype is about.
And look I wrote all that in 1 paragraph without bullet points detailing anything over and over.
I think the main issue with this approach is that your solution space eventually narrows. You go from formulating unique solutions to flagging things that look wrong and then just picking an alternative LLM generated one. I’ve noticed this recently as all my side project work is being done by hand. If I do ask an LLM another question about something small it will offer solutions but doesn’t offer the solution I think makes sense in the architectures I’ve written. Slowly your brain just gets trained to mid thinking like an LLM. At least that’s my theory and I think there was some study that showed that interacting with an LLM at the start of a problem significantly narrowed the solution space to something sub optimal
People bragging that they "dont touch code" and only "argue" with agents are reinventing the slowest possible IDE.
Obviously the agents are great at producing large chunks of code, but they often make minor and sometimes trivial mistakes which need amending.
Typing something like "in src/auth/session/token_manager.ts the refreshTokenExpiry variable should be refresh_token_expiry. update every reference and make sure nothing else changes" and waiting for the LLM to do its thing takes longer than opening the file and doing the rename yourself.
If you are describing microscopic edits in natural language you are not avoiding coding. You are coding through an extremely verbose, lossy interface with higher latency and lower precision.
I’ve been on and off and on the bandwagon on this.
My current verdict. When used properly, and if you actually read the code, pushback when needed and don’t get approval fatigue, and also practice hand coding here and there, you can definitely get immense productivity boosts while not compromising on quality. The issue is blindly accepting AI code, architecture, “are you sure this is prod ready?” “Ok ship it” is not going to end well. Too many times I caught the top SOTA models, 1M context, effort on max, suggest or do terrible things and say it with confidence.
TLDR if you read the code (and understand the architecture), and know when to push back. This can work amazingly well.
Otherwise you will gradually build a Rube Goldberg machine.
I just can't get behind this perspective, perhaps because I am a 'bad prompter', simply due to the lack of capability from current models. I end up rejecting them, asking them to implement again, they spew out tons of crap code instead of a 10 line fix, and on, and on.
Note that I'm not saying the agents are useless. They certainly write a lot of code and sometimes it is good. But I don't think you can get away without touching code yourself simply because at some level it is often the most concise way to get your idea across. I find it best to implement a core set of changes by-hand, and then ask the system to e.g. replicate them to other dependencies. I genuinely don't understand how anyone can work on a system with any complexity, and get the results they actually want, without touching code.
Feels like what one of those morbidly obese people riding electric scooters would write about not missing walking one bit. God forbid they end up in an area where accessible alternatives to stairs are not a thing.
What's interesting to me is how many people have found out with the LLM boom that they don't want to be developers/engineers, they want to be managers, delegating all the work to another entity and checking in occasionally to see how the coding is coming along
I think it's a symptom of software jobs paying really well for multiple decades. It attracted many people who are in it for the money only, and not the process or result (nothing wrong with that, imo). These are the people who fully embrace the vibe coding model and enjoy managing an AI more than developing anything by hand.
This idea of reviewing an architecture that you never coded is just a fantasy.
At some point in time, me and a lot of people, thought that using Redux was a great idea until we had to manage verbosity and middlewares. Now we had to deal with the consequences of our decisions and we learned.
With all the people saying that you're going to have problems because the LLM is not good at refactoring or large code bases or OOP, etc. the point may be that if you're working to develop skills, an LLM herder might be a good one. Even if the models are almost, but not quite, good enough yet - they will be.
When looking for a career move you might want to focus on the trajectory more than the current state.
Is anyone doing this who is not making CRUD web-apps or other very common types of programs for which there is masses of training data to copy from the net?
I tend to do oddball stuff (eg. software for custom arcade machines, AR games) and any forays I've made into AI code have made it seem like a total waste of time for me. (ie. I will spend much longer trying to get AI do to a shitty job, compared to just doing it myself)
We're basically doing the same thing where I'm at.
I do see the long-term goal as being the elimination of most engineering positions. If you can have an architect - or, even better, some solution manager talking directly to the customer - just prompt a solution into existing and monitor most of it, you can really reduce the headcount.
Most of the AI submissions are from people who are here to self-promote their own content and have little to no other participation. It's like this stuff appeals to a different audience than made up this site 5 years ago. Everything and everyone feels so nonsubstantive now.
"The fun part was never lifting weight. The fun was in being buffed with a 6-pack and picking up women. The fun is in bullying those who are weaker than me. I never liked going to the gym and lifting weights. What I actually love is the result of the lifting, but I never wanted to do the hard work".
Not saying this is a 1:1 parallel, or that writing is what makes you a good coder, but I do wonder - if you remove the entire process of making something, what is left there? Sure, people keep arguing that architecting or "managing" AI agents is the actual moat, but is this really? If you do not participate in the craft itself, how would you get better?
I mean, I have amazing ideas for wooded furniture I'd like to build. I doubt that if you give me an LLM connected to a router that I would be able to build something by "architecture, review, push back, and argue". I simply lack the knowledge to make something out of wood. And the only way to get this knowledge is to go and make something and not "architect, review, push back, and argue".
Year 12-22: A product I built really took off. Now primarily building new stuff by talking to other engineers. Lots of product management/politics. Atrophying coding skills.
Year 22-28: I'm tired of building by talking. Re-learning coding.
Year 28-: "Here's this thing called Claude Code". I interface with it by... talking.
36 comments
[ 2.9 ms ] story [ 54.6 ms ] threadReading always was a worse way to learn than doing. When we stop doing, we will have to triple our reading (if that's even enough), but will we do that or just trust the agents more and more?
And look I wrote all that in 1 paragraph without bullet points detailing anything over and over.
Obviously the agents are great at producing large chunks of code, but they often make minor and sometimes trivial mistakes which need amending.
Typing something like "in src/auth/session/token_manager.ts the refreshTokenExpiry variable should be refresh_token_expiry. update every reference and make sure nothing else changes" and waiting for the LLM to do its thing takes longer than opening the file and doing the rename yourself.
If you are describing microscopic edits in natural language you are not avoiding coding. You are coding through an extremely verbose, lossy interface with higher latency and lower precision.
EDIT: flagged?
My current verdict. When used properly, and if you actually read the code, pushback when needed and don’t get approval fatigue, and also practice hand coding here and there, you can definitely get immense productivity boosts while not compromising on quality. The issue is blindly accepting AI code, architecture, “are you sure this is prod ready?” “Ok ship it” is not going to end well. Too many times I caught the top SOTA models, 1M context, effort on max, suggest or do terrible things and say it with confidence.
TLDR if you read the code (and understand the architecture), and know when to push back. This can work amazingly well.
Otherwise you will gradually build a Rube Goldberg machine.
Note that I'm not saying the agents are useless. They certainly write a lot of code and sometimes it is good. But I don't think you can get away without touching code yourself simply because at some level it is often the most concise way to get your idea across. I find it best to implement a core set of changes by-hand, and then ask the system to e.g. replicate them to other dependencies. I genuinely don't understand how anyone can work on a system with any complexity, and get the results they actually want, without touching code.
This idea of reviewing an architecture that you never coded is just a fantasy.
At some point in time, me and a lot of people, thought that using Redux was a great idea until we had to manage verbosity and middlewares. Now we had to deal with the consequences of our decisions and we learned.
I also think this article is just a rage bait
When looking for a career move you might want to focus on the trajectory more than the current state.
I tend to do oddball stuff (eg. software for custom arcade machines, AR games) and any forays I've made into AI code have made it seem like a total waste of time for me. (ie. I will spend much longer trying to get AI do to a shitty job, compared to just doing it myself)
I do see the long-term goal as being the elimination of most engineering positions. If you can have an architect - or, even better, some solution manager talking directly to the customer - just prompt a solution into existing and monitor most of it, you can really reduce the headcount.
Not saying this is a 1:1 parallel, or that writing is what makes you a good coder, but I do wonder - if you remove the entire process of making something, what is left there? Sure, people keep arguing that architecting or "managing" AI agents is the actual moat, but is this really? If you do not participate in the craft itself, how would you get better?
I mean, I have amazing ideas for wooded furniture I'd like to build. I doubt that if you give me an LLM connected to a router that I would be able to build something by "architecture, review, push back, and argue". I simply lack the knowledge to make something out of wood. And the only way to get this knowledge is to go and make something and not "architect, review, push back, and argue".
The one project that did give me pause was an S3 Server. Not entirely sure I trust that…
Toying with the idea of sticking a proxy in between that runs the vibe coded S3 in parallel to a classic server and see if the results track
Year 0-12: Coding lots, learning lots.
Year 12-22: A product I built really took off. Now primarily building new stuff by talking to other engineers. Lots of product management/politics. Atrophying coding skills.
Year 22-28: I'm tired of building by talking. Re-learning coding.
Year 28-: "Here's this thing called Claude Code". I interface with it by... talking.