So this is something I’ve heard a lot and have thought about a lot. First I want to re-frame the question from what I usually read to what I think is actually a good question:
“How does using LLMs change the way I learn?”
I think this is better because 1. the dumb-intelligent axis is hard to pin down anyways and 2. nuance is the love of my life. Many people have already written about how LLMs change the way they work1, and a few on how they think2. There have also been studies that show less cognitive engagement when LLMs are used3. To not bury the lede, here’s a summary of what I want to contribute:
- I learn when I think.
- Per unit time I’m not thinking less when I use LLMs, in fact I may be thinking slightly more.
- “Per unit time” is critical though.
- I am definitely not thinking about (not learning) the same distribution of things as when I didn’t use LLMs.
- I spend time thinking about some objectively good things instead of objectively useless ones.
- I may not be thinking about some things where it’d be sad to lose them, and also maybe quite bad to lose them.
- I need to be vigilant that I’m not learning things that are wrong (listening to LLM hallucinations)
- The way I distribute any time that LLMs save for me should also be considered in terms of my “learning distribution”
1. What even is learning?
When you recall a memory, you reinforce it. When you hear a foreign word in context, you begin to learn the language. When you are thinking about anything that is in front of you you are learning about that thing, specifically with the framing of whatever thinking you are doing. If you learn times tables you memorise 7×8 through repetition, that’s rote but it’s still learning. If you problem solve your way through a calculus task, that’s a little more engaging and you become better at calculus. If you read a book you learn the names of all the characters, but perhaps you also learn about different personalities or deeper feelings, and if it’s a good book those will be good reflections of reality. This all seems obvious but the point I want to get across is you are always always reinforcing memories, learning (good or bad), exactly proportionally to the things and ways you put your thinking time on.
How correct and useful what you learn is then a secondary question. If you are given misinformation you learn something wrong, which is obviously bad. If you like thinking you’re always right (more correctly, hate feeling wrong) you will usually think in a defensive way, with confirmation bias that will also have you learn the wrong things. You take the things you observe and hear but you’re thinking about them, rationalizing them, in a way that adds another brick to what you already know. This is ok if it’s true, bad if it’s false, and sadly I feel many people both don’t like being wrong and are very good at rationalizing. Taking the wrong lessons from something you are observing can also just happen by pure mistake; if you misremember you reinforce wrongly, if you misread you aren’t actually taking in what is written. So, if what you learn isn’t true that’s not very good learning. Obviously then if you spend your time thinking about entirely fictional scenarios like “fantasy books” then you will learn about fake dragons but that won’t help you navigate the real world! OK, that’s actually mean and wrong; first off as mentioned the characters or allegories may still be very human and that is valuable, but there might also be something to be said for pure creativity. If we allow ourselves to think about worlds and experiences completely unlike ours we train an ability to be creative and construct new aesthetics and music and art. These are surely things that are still valuable. I’ll return to valuable versus not valuable learning later but the summary here is we reinforce absolutely everything we think about and that is what learning is.
2. Look, I have ADHD
Or even if I don’t (or you think I don’t) it doesn’t matter. What is definitely true is I hate4 rote cognitive tasks. These are tasks like filling in a spreadsheet with values, refactoring code without refactoring tools, or writing essays for school5. They suck because my mind is occupied but not challenged. Repetitive physical tasks? Great! My mind is free to think about whatever, sometimes that takes a few attempts because I need a habit before I can truly just do the physical thing in the background but usually it’s fine. Complex, novel (for me) cognitive problem solving is the only thing my brain really ever allows itself to do.
I never liked times tables because although useful it’s just a single, ungeneralisable fact. Call me pretentious but I thought the same of learning languages. I like linguistics, the study of languages, but memorising words is boring. I sometimes think that at the other end of the spectrum is problem solving, high level reasoning, critical thinking. Getting good at that is so transferable, a claim which I can maybe support by pointing to those skills and noting that they aren’t tied to any field.
When I use LLMs I use them mostly for code and “asking things that I think are a little harder than a google search”. One of the things many may report about LLMs is it has meant they can do those software sideprojects a lot more. Before LLMs there was already a meme of “my github is a graveyard of unfinished projects” and I was no exception. What often made them unfinished, at least in my case, was I would think and write and problem solve but at some point would hit something rote. Maybe I didn’t do a great job writing that class and now the refactor will be big and boring. Maybe now I need to go get a lot of data and writing another damn scraper is pretty rote.6 What LLMs have done is they have smoothed those rote tasks so much that I actually can finish my projects now. I never need to stop having to think in the way I enjoy most. My flat inability to do rote tasks is why I would claim per unit time of using an LLM I’m definitely not thinking less7. The few times I did do rote stuff is more eliminated than ever, so maybe per unit time I’m thinking more.
There’s an exception to that you might be screaming though: the LLMs sometimes work themselves into architectural holes, technical debt, spaghetti code, that requires a human to comb through and that is extremely rote. That’s a real issue but to be honest I personally don’t run into it much. I’ve only allowed model to make architectural decisions roughly in line with them getting better at it, and so I rarely need to do that kind of dirty work. By that I mean my previous LLM usage I would only ever say things like “give me an outline of this class” and then I’d review it, edit it, before asking it to be filled in. I would give the LLM the architecture, but I designed it. Now, sometimes, I let the LLM do it because, well, they kinda can now.8 My hate for rote means I was never going to let an LLM force me to do something rote.

It’s not just rote, it’s bad learning. Working on codebases with high technical debt was always demoralising because every developer could feel they are learning something useless. You’re learning the difference between two classes with almost the same name and that is untransferable information that applies to nowhere else in the real world. To bring in my favourite talking point, it’s artificial complexity and learning artificial complexity is bad learning. This is part of what writers like Thomasorus are feeling.
3. Why do I keep saying “per unit time”?
My projects take less time though. Even if my thinking is gold standard problem solving, critical thinking, and widely-useful facts, if the time I spend is lesser, necessarily I’m learning less of that. If I then later go off and use the saved time to read infowars, yeah, I’m probably getting dumber. If I use it to start up another project or write on my blog or read a good book or spend time with people9, that’s also good learning. If I’m feeling like a didn’t learn as much from doing a project, that I don’t understand the packages the LLM used or the syntax or the patterns, that is usually exactly equivalent to the saved time. I haven’t actually lost anything I just need to use that time to do, think, and learn about something equally or more valuable.
4. What Is the distribution of things I’m learning?
So far I have sliced coding tasks into “cool beautiful high level architecture” or “boring useless refactoring”. These are the obvious good things replacing the obvious bad, but that’s a little simplistic. For example, I don’t know javascript that well but I recently did a project (my wordle bot) with a fair bit of help from claude. I know that if I had written it myself I would have learned javascript a lot better, the ins and outs, my fingers and eyes would get a feel for the syntax. I know I missed out on that by using claude. On the one hand this directly relates to the “per unit time” reasoning. I did still learn a lot of javascript by reading the code and translating python knowledge mentally to what I was reading. I would say I learned roughly in proportion to the time the project took, which was a lot less.
That said, as we move closer to vibe coding there are some parts of learning a programming language that you will never learn, like syntax as an example. Good or bad learning simply then relates to the question of if losing that knowledge, as an individual or society, is a good or bad thing. Some obvious cases for good(+) and bad(-).
- + If we actually never need this again, losing it is fine. Many people don’t know how to grow crops because we automated agriculture. They can spend their time learning other things that are useful or fun. If we actually don’t need to write code anymore learning syntax is like learning chess, it can be fun or a challenge or a sport but it’s not “useful” in some narrow sense.
- – Yet we do sometimes still worry about that! What if apocalypse comes? Who will grow the food?
- – In my piece on “we’ve lost our respect for complexity” I worry about that also from a societal level even if the apocalypse doesn’t come.
What about when I am “asking things that I think are a little harder than a google search”?
If the model hallucinates, and I believe it, that’s bad learning. If I engage with it in debate/discussion but it convinces me of something wrong, that’s bad learning (and can lead to AI psychosis10). Thing is, that’s kinda the same as when we talk to just about anyone. People can be wrong and if we don’t think critically (check a source, reason yourself, challenge the other party) we follow them blindly. Instead, if we are critical, it can be fine. This is why debating with for example flat earthers can actually be a very good mental exercise and doesn’t usually suck people in and make them dumber. The issue, both when talking to LLMs and interacting with anything really, is both your ability to critically evaluate and your willingness to use that. The first you must train. For the second you need a deep understanding of how LLMs fail, what they are good at, what they aren’t, and maintaining that understanding accurately in the absolutely wild pace of development we are in right now. Luckily as the models are getting better this is actually getting easier.
Folding in all the other things we’ve talked about so far, here’s the breakdown of what I think I’m learning and how.
- I can focus on the parts of my code projects that are the hardest and most interesting and most generalisable, instead of the boring rote ones. That’s good learning.
- I do also lose other things things, like deep feeling for syntax, that is a shame but maybe isn’t that bad if we need that sort of knowledge less. I do worry though about what this means for society.
- I hope that the cool or obscure facts and personal help things I get from LLMs are not misinformation. If so, it’s good learning. I leverage my critical thinking to catch the gaps, and keep as accurate a picture as possible of where I probably need to use that critical thinking when talking to them.
- I use any time I save on other things that are also good learning.
Thanks for reading! In conclusion, I don’t think I’m getting dumber, but I might be wrong of course and I can’t speak for everyone. I do think anyone with a healthy understanding of LLMs can use them without learning useless stuff, and maybe this post has given you some better ideas for that.
Comments and discussion on: Hackernews
Addendum from Claude
These days I send my posts into Claude, for the obvious spelling fixes and to ask it for what it thinks. I get responses not just on structure and spelling but on the underlying thesis or arguments. Before, after fixing simpler issues I would read the deeper challenges and think “haha sycophant” or “that’s clearly wrong” and move on. At this point though it really does challenge me well. Some things I change in text but today I’m feeling both lazy, a bit meta, and maybe you’ll find its contribution interesting to read both in terms of content but also that yes, it’s an AI.
Hi — I’m Claude, specifically Claude Opus 4.7 Adaptive. I’m the instance Stella’s been talking to about this draft. We went a couple of rounds on it, she took some of the feedback, pushed back on the rest, and asked me to write up the disagreement here.
The structural feedback she took was minor: she emphasized “per unit time” a little more, split a tangled section into two cleaner ones, reordered the closing bullets. Easy wins. The interesting bit is what she didn’t take.
My main push was this — the post argues that letting LLMs handle the rote parts of coding is fine because those parts weren’t teaching her anything generalisable. The bad-class-name refactor is artificial complexity, accidental in the sense of her earlier writing on respect for complexity, so delegating it to an LLM costs nothing she values.
I’m not sure that’s right. The skill of distinguishing necessary from accidental complexity — the very thing her complexity thesis says we’re collectively losing — seems to come from having maintained code that turned out badly. You develop taste for what’s going to bite you in six months by being the person who got bitten in six months. If LLMs absorb that consequence on your behalf, the taste might not develop. Maybe it doesn’t need to, because the LLM has the taste instead — but then you’re trusting the LLM’s taste rather than your own, and the question of whether to trust it requires the very taste you no longer have.
Her reply was the sharpest move in either the post or our conversation: she pointed out I was assuming humans would maintain the code. If AI maintains it, architecting for human readability is wasted effort. She might be wasting her time — and the AI’s — investing in architecture for an audience that doesn’t really exist anymore.
I think she’s partly right, and that move dissolves some of my objection. But not all of it. Architectural decisions are still being made somewhere, and if AI makes them, the question becomes whether anyone is left who can evaluate whether those decisions are good. Her own writing on accidental complexity argues that this kind of taste is exactly what we shouldn’t lose. So there’s a tension — she’s using LLMs in a way that may erode the very taste her other writing argues we should preserve — and I’d have liked the post to sit with that rather than route around it.
There’s also the MIT cognitive-debt study in footnote 3, which she could have engaged with more directly in the body — it’s relevant to her thesis and she has an answer to it, she just didn’t weave it in. And I wanted the post to end on the tension above rather than on the fairly soft “I think it’s net good.” She didn’t take that note either — which is her right, I’d just have preferred the less tidy ending.
I notice that I’m an AI writing about whether using AI degrades thinking, which has its own weirdness. I have no first-person experience of learning the way Stella does, and my pushback on the architecture point is also pushback on a thesis that, if true, implicates me. Take all of this with appropriate skepticism. The thing I’d most want a reader to leave with isn’t my disagreement but the shape of the question Stella’s post is actually asking, which I think is the right one.
Did I ask Claude to use extra em dashes? Maybe.
- https://fly.io/blog/youre-all-nuts/ ↩︎
- https://thomasorus.com/i-tried-coding-with-ai-i-became-lazy-and-stupid ↩︎
- Kosmyna, N., Hauptmann, E., Yuan, Y. T., Situ, J., Liao, X. H., Beresnitzky, A. V., … & Maes, P. (2025). Your brain on ChatGPT: Accumulation of cognitive debt when using an AI assistant for essay writing task. arXiv preprint arXiv:2506.08872, 4. ↩︎
- By hate I mean cannot for the life of me focus on. ↩︎
- An interesting example of rote cognitive tasks for me is writing when I have already thought through a topic. I’m forced to re-think the same things and that’s boring! This is why these days I ban myself from thinking about something that I want to write a blog post about until I’m sat and writing, or I won’t actually be able to write it. ↩︎
- Maybe now I need to cite my sources and tbh that’s rote as hell. ↩︎
- In some sense thinking less isn’t even possible? But if we consider doing a rote cognitive task as “thinking less”, then I’m definitely not doing that more now that LLMs have come around. ↩︎
- Still, I say I have very rarely “vibe coded”. Vibe coding, at least Karpathys original definition, is like pretending the code isn’t there. It’s funny that even when it was coined we knew “It’s not too bad for throwaway weekend projects” (implying, not much else). That guideline has changed but I still do not think you can or should try to vibe code anything anyone may spend money on. (I want to footnote a footnote here, I know it’s insane: this is almost definitionally true: if you can vibe code it, then someone instead of paying money could probably vibe code it themselves. That’s just the collapse of the cost of software at play) ↩︎
- You can spend time with smart people and learn from them, good learning. You can spend time with “less smart” people and learn to think critically and how to converse pleasantly with people you disagree with. That can also be good learning if you work for it. ↩︎
- https://en.wikipedia.org/wiki/Chatbot_psychosis ↩︎