Confession: I’ve been using Claude Code to write all my code for me. And I think it’s making me worse at the thing I’ve loved doing for twelve years.I can cl...
No the big difference is the use of critical thinking. When using a calculator, it doesn’t tell you what to do. You have to know what you are doing and tell it what you want it to do. Then it does the thing and you get the answer.
That’s why we still teach children to do calculations without the use of a calculator. That way they can understand exactly how it all works and can in principle do all of the work themselves. Later we get to more complicated math, and whilst it would be possible to do all of the calculations ourselves, this would take precious time away from learning the new stuff. So we use calculators and tell the students to show their work. It doesn’t matter what the answer is that pops out in the end, it matters the student understood the underlying principle and applied it correctly.
I once had full marks on a question in middle school where halfway through the calculation I did 7+3=11 and went on with that. So my end result was completely different from what it should be. But because all of my steps were correct, I used the correct formulas in the right way and showed I understood the fundamentals, I still got full marks (and a red marking saying 7+3 is in fact 10 with a smiley when I got the paper back). The numbers and calculation doesn’t matter, what matters is the understanding.
With these modern “AI” systems, the understanding is completely skipped. You ask it the question, it pops out the answer. And it will show the work (sometimes unprompted, sometimes prompted), but the user probably doesn’t understand that work. Even when shown repeated examples of a working out and the user would take their time to read them and understand them, I would wager they can’t reproduce it themselves. Actually doing the work is very important for creating an understanding of the underlying principles.
And these systems don’t have any real limitations to what questions can be asked. So if the magic box has all the answers, what is the motivation to learn anything for yourself. It’s not like they are suddenly going to do the work themselves, that’s what the magic box is for. Until the box messes up and there is nobody who understood what it did what it did or how to fix it.
With coding there is a secondary issue. Reading code, understanding code and writing code are fully separate things. Reading code is one of the hardest things there is. Not only do you need to have a good grasp of the language/system used, a good understanding of the architecture and specifics of the application is also required. To then understand the written code, one needs to work out intent. A mental model needs to be created of what the author intended to do, why certain decisions were made. And what strengths and weaknesses are. Something very subtle, even a single character difference can be very important in the code. It could mean the difference between code with a security vulnerability and one without. Writing code is whole other ballgame, then you need to know all those things, but also have a mental model of how the code you want to write should work. I’ve had a career in software for 30 years and we still struggle with writing good code and teaching new developers just as much as when I first started. The tools have changed, the world has changed, but it’s still very hard.
When one is actively developing software (which involves a hell of a lot more than writing code), we tend to switch a lot between reading code, understanding code and writing code. Nobody works in a vacuum and even if we are the only ones writing code, we all have experienced that moment where we had no idea what we wrote on Friday when reading it back on Monday. Or that roller coaster of how does this work, does this even work, this won’t ever work, how has this worked, I’ve seen it working just now. By practicing these skills, we keep our brains engaged, we keep the critical thinking up and keep improving. By skipping steps, we turn our brains into mush and actually lose the skills.
One might say, well it’s just the writing of the code we skip, we still need to think what the code should do. But that’s not really how these new tools work, you give it a high level task and all the low level stuff gets skipped. Sure it might save you from typing (although the prompt still needs to be typed up, plus all the follow ups), but the actual typing of the code is a very small part in my experience. People who think being a coder is just typing code all day, don’t really know what they are talking about. Sure a lot of typing needs to be done, but often it isn’t all code and a lot of non-typing work needs to be done as well.
And I feel even the typing of the code is an important part of the process. Think about writing a shopping list for yourself, often one only thinks about what to put on it, as we are writing it. Writing helps the brain to articulate concepts in concrete stuff.
Not even touching all the other issues with using AI or using AI to code, it will turn developers into mush brain zombies. Coding is more like running than it is like riding a bicycle, humans get very bad at it unless practiced constantly.
Well, first of all wow. Kinda blown away that you took the time to write such a full and carefully thought out response. I can’t help but feel a little disappointed though because you really didn’t engage with my main point. Using AI to help write code is actually opening a door for scores of people who would otherwise have been too overwhelmed to even try.
I’ll give you an example of the enhanced accessibility I’m describing from my own recent experience. I have no idea how to code anything and needed a bit of visual basic written for Word that would take a piece of text and strip out all but the first letter of every word while preserving punctuation. The result would be just a large block of capitalised first letters. It’s part of a system I use that helps me learn large pieces of text.
ChatGPT not only wrote it perfectly, but also taught me how it did it and offered enhancements such as preserving the original text and producing a toolbar button I could push to trigger the function. I learnt so much that I would have found so much harder any other way.
I get the risks of over-reliance on automation that isn’t required to undergo detailed peer review but it’s also an amazing gift to amateurs like me.
Do you think you could rewrite the code it provided from scratch, now? Do you think you could apply the techniques to some other language (eg: Python)?
Looking up the answer or being told the answer isn’t the same as the normal learning process. That’s just how human brains are.
There’s also a big difference between “how do i do regex in Visual Basic” and “I don’t know what regex is but the LLM said to use it”.
I get the risks of over-reliance on automation that isn’t required to undergo detailed peer review but it’s also an amazing gift to amateurs like me.
It’s a gift in a very monkey’s paw kind of sense. Or the one ring. It’s tempting to use, but in the longer term it will likely have negative consequences.
I learnt so much that I would have found so much harder any other way.
You’d need to prove that you actually learned stuff, and that the hardness of the other routes wasn’t an important part of the process. It’s cool that you got your little text changing tool written, but i think it’s overselling it to say things were learned. Maybe you’re unusual, but most people don’t learn much from LLMs.
“You’d need to prove that you actually learned stuff” - To whom?
To the people in this thread if you want to convince us of your position.
“but in the longer term it will likely have negative consequences.” - Neither of us have any way of knowing that.
“most people don’t learn much from LLMs” - Again neither of us have any way of knowing that.
There have been several articles about people using LLMs not learning as much , such as the one this post is about. I haven’t seen any credible articles about it having positive impacts.
“your little text changing tool written” - Unnecessarily patronising (weakens your argument).
Heh, sorry. I meant little like snippet, not little like unimportant, but I see how it came off as patronizing.
Look, it’s great that you had a positive experience. I don’t think it’s universal that everyone would have that same outcome, not do I think it’s the only way to get good results. Concurrently, many people seem to be abusing llms.
“To the people in this thread if you want to convince us of your position.” - Even I was able to convince everyone in here to such a level that some of you would spontaneously fall to your knees, crying and bursting into song, praising my heuristic abilities, I am just one person and it would have no effect on anybody’s opinion about “Vibe coding” creating brain dead coders (sorry for the long sentence, it’s my ADHD brain). It’s enough that I’m telling you I learnt loads and it gave me the warm fuzzies because it’s true.
“I haven’t seen any credible articles about it having positive impacts.” - Bias is a thing though. How hard would you say you looked for credible articles? I just Googled “The positive effects of LLM on learning” and if my voice now sounds muffled, it’s because I am now buried under a massive pile of articles being credible all over the place.
Even I was able to convince everyone in here to such a level that some of you would spontaneously fall to your knees, crying and bursting into song, praising my heuristic abilities, I am just one person and it would have no effect on anybody’s opinion about “Vibe coding”
If you believe this, that you can’t change anyone’s mind with your posts, why are you posting at all?
Bias is a thing though. How hard would you say you looked for credible articles? I just Googled “The positive effects of LLM on learning” and if my voice now sounds muffled, it’s because I am now buried under a massive pile of articles being credible all over the place.
True, I’m pretty convinced they kind of suck. Bias is a factor, as is some personal experience with them lying to me, and coworkers submitting strange code they didn’t understand. And the devaluation of labor is bad, too. They definitely can be useful tools to solve problems - I bet they can crank out working dynamic programming solutions and I never understood that stuff very well - but I don’t think they’re an amazing way to learn.
“If you believe this, that you can’t change anyone’s mind with your posts, why are you posting at all?” - Because changing minds online is a big ask. I’ve realised over the years that the best anyone can hope for is maybe planting seeds. A chance to re-start a few people’s critical thinking engines when they’ve been swept up in a wave of herd thinking.
“I don’t think they’re an amazing way to learn.” - The thing I’ve realised, especially since discovering my ADHD, is that one person’s way of learning is just one of many. I had no idea I had ADHD till much later in life and until then I thought I was broken and just couldn’t learn the way others seemed to. For me, having an ego and baggage free interlocutor to learn from, who adapts to my way of learning, rather than the other way around has been life changing.
A common condition also linked with ADHD is RSD (Rejection Sensitivity Dysphoria) which basically boils down to being certain at all times that everyone is sick of interacting with me and certainly sick of trying to teach me things. ChatGPT never gets annoyed with me. It just figures out my learning language and adapts. This is why I described it in my original message as “a way to understand coding for the first time”.
No the big difference is the use of critical thinking. When using a calculator, it doesn’t tell you what to do. You have to know what you are doing and tell it what you want it to do. Then it does the thing and you get the answer.
That’s why we still teach children to do calculations without the use of a calculator. That way they can understand exactly how it all works and can in principle do all of the work themselves. Later we get to more complicated math, and whilst it would be possible to do all of the calculations ourselves, this would take precious time away from learning the new stuff. So we use calculators and tell the students to show their work. It doesn’t matter what the answer is that pops out in the end, it matters the student understood the underlying principle and applied it correctly.
I once had full marks on a question in middle school where halfway through the calculation I did 7+3=11 and went on with that. So my end result was completely different from what it should be. But because all of my steps were correct, I used the correct formulas in the right way and showed I understood the fundamentals, I still got full marks (and a red marking saying 7+3 is in fact 10 with a smiley when I got the paper back). The numbers and calculation doesn’t matter, what matters is the understanding.
With these modern “AI” systems, the understanding is completely skipped. You ask it the question, it pops out the answer. And it will show the work (sometimes unprompted, sometimes prompted), but the user probably doesn’t understand that work. Even when shown repeated examples of a working out and the user would take their time to read them and understand them, I would wager they can’t reproduce it themselves. Actually doing the work is very important for creating an understanding of the underlying principles.
And these systems don’t have any real limitations to what questions can be asked. So if the magic box has all the answers, what is the motivation to learn anything for yourself. It’s not like they are suddenly going to do the work themselves, that’s what the magic box is for. Until the box messes up and there is nobody who understood what it did what it did or how to fix it.
With coding there is a secondary issue. Reading code, understanding code and writing code are fully separate things. Reading code is one of the hardest things there is. Not only do you need to have a good grasp of the language/system used, a good understanding of the architecture and specifics of the application is also required. To then understand the written code, one needs to work out intent. A mental model needs to be created of what the author intended to do, why certain decisions were made. And what strengths and weaknesses are. Something very subtle, even a single character difference can be very important in the code. It could mean the difference between code with a security vulnerability and one without. Writing code is whole other ballgame, then you need to know all those things, but also have a mental model of how the code you want to write should work. I’ve had a career in software for 30 years and we still struggle with writing good code and teaching new developers just as much as when I first started. The tools have changed, the world has changed, but it’s still very hard.
When one is actively developing software (which involves a hell of a lot more than writing code), we tend to switch a lot between reading code, understanding code and writing code. Nobody works in a vacuum and even if we are the only ones writing code, we all have experienced that moment where we had no idea what we wrote on Friday when reading it back on Monday. Or that roller coaster of how does this work, does this even work, this won’t ever work, how has this worked, I’ve seen it working just now. By practicing these skills, we keep our brains engaged, we keep the critical thinking up and keep improving. By skipping steps, we turn our brains into mush and actually lose the skills.
One might say, well it’s just the writing of the code we skip, we still need to think what the code should do. But that’s not really how these new tools work, you give it a high level task and all the low level stuff gets skipped. Sure it might save you from typing (although the prompt still needs to be typed up, plus all the follow ups), but the actual typing of the code is a very small part in my experience. People who think being a coder is just typing code all day, don’t really know what they are talking about. Sure a lot of typing needs to be done, but often it isn’t all code and a lot of non-typing work needs to be done as well.
And I feel even the typing of the code is an important part of the process. Think about writing a shopping list for yourself, often one only thinks about what to put on it, as we are writing it. Writing helps the brain to articulate concepts in concrete stuff.
Not even touching all the other issues with using AI or using AI to code, it will turn developers into mush brain zombies. Coding is more like running than it is like riding a bicycle, humans get very bad at it unless practiced constantly.
Well, first of all wow. Kinda blown away that you took the time to write such a full and carefully thought out response. I can’t help but feel a little disappointed though because you really didn’t engage with my main point. Using AI to help write code is actually opening a door for scores of people who would otherwise have been too overwhelmed to even try.
I’ll give you an example of the enhanced accessibility I’m describing from my own recent experience. I have no idea how to code anything and needed a bit of visual basic written for Word that would take a piece of text and strip out all but the first letter of every word while preserving punctuation. The result would be just a large block of capitalised first letters. It’s part of a system I use that helps me learn large pieces of text.
ChatGPT not only wrote it perfectly, but also taught me how it did it and offered enhancements such as preserving the original text and producing a toolbar button I could push to trigger the function. I learnt so much that I would have found so much harder any other way.
I get the risks of over-reliance on automation that isn’t required to undergo detailed peer review but it’s also an amazing gift to amateurs like me.
Do you think you could rewrite the code it provided from scratch, now? Do you think you could apply the techniques to some other language (eg: Python)?
Looking up the answer or being told the answer isn’t the same as the normal learning process. That’s just how human brains are.
There’s also a big difference between “how do i do regex in Visual Basic” and “I don’t know what regex is but the LLM said to use it”.
It’s a gift in a very monkey’s paw kind of sense. Or the one ring. It’s tempting to use, but in the longer term it will likely have negative consequences.
You’d need to prove that you actually learned stuff, and that the hardness of the other routes wasn’t an important part of the process. It’s cool that you got your little text changing tool written, but i think it’s overselling it to say things were learned. Maybe you’re unusual, but most people don’t learn much from LLMs.
“Do you think you could rewrite the code it provided from scratch, now?” - Yes (did a bunch of experiments with it too. Was fun!)
“but in the longer term it will likely have negative consequences.” - Neither of us have any way of knowing that.
“You’d need to prove that you actually learned stuff” - To whom?
“your little text changing tool written” - Unnecessarily patronising (weakens your argument).
“most people don’t learn much from LLMs” - Again neither of us have any way of knowing that.
To the people in this thread if you want to convince us of your position.
There have been several articles about people using LLMs not learning as much , such as the one this post is about. I haven’t seen any credible articles about it having positive impacts.
Heh, sorry. I meant little like snippet, not little like unimportant, but I see how it came off as patronizing.
Look, it’s great that you had a positive experience. I don’t think it’s universal that everyone would have that same outcome, not do I think it’s the only way to get good results. Concurrently, many people seem to be abusing llms.
“To the people in this thread if you want to convince us of your position.” - Even I was able to convince everyone in here to such a level that some of you would spontaneously fall to your knees, crying and bursting into song, praising my heuristic abilities, I am just one person and it would have no effect on anybody’s opinion about “Vibe coding” creating brain dead coders (sorry for the long sentence, it’s my ADHD brain). It’s enough that I’m telling you I learnt loads and it gave me the warm fuzzies because it’s true.
“I haven’t seen any credible articles about it having positive impacts.” - Bias is a thing though. How hard would you say you looked for credible articles? I just Googled “The positive effects of LLM on learning” and if my voice now sounds muffled, it’s because I am now buried under a massive pile of articles being credible all over the place.
If you believe this, that you can’t change anyone’s mind with your posts, why are you posting at all?
True, I’m pretty convinced they kind of suck. Bias is a factor, as is some personal experience with them lying to me, and coworkers submitting strange code they didn’t understand. And the devaluation of labor is bad, too. They definitely can be useful tools to solve problems - I bet they can crank out working dynamic programming solutions and I never understood that stuff very well - but I don’t think they’re an amazing way to learn.
“If you believe this, that you can’t change anyone’s mind with your posts, why are you posting at all?” - Because changing minds online is a big ask. I’ve realised over the years that the best anyone can hope for is maybe planting seeds. A chance to re-start a few people’s critical thinking engines when they’ve been swept up in a wave of herd thinking.
“I don’t think they’re an amazing way to learn.” - The thing I’ve realised, especially since discovering my ADHD, is that one person’s way of learning is just one of many. I had no idea I had ADHD till much later in life and until then I thought I was broken and just couldn’t learn the way others seemed to. For me, having an ego and baggage free interlocutor to learn from, who adapts to my way of learning, rather than the other way around has been life changing.
A common condition also linked with ADHD is RSD (Rejection Sensitivity Dysphoria) which basically boils down to being certain at all times that everyone is sick of interacting with me and certainly sick of trying to teach me things. ChatGPT never gets annoyed with me. It just figures out my learning language and adapts. This is why I described it in my original message as “a way to understand coding for the first time”.
This was a good post. I suspect “vibe coders” won’t want to read all of it, sadly.
not only them. I was actually thinking that a “summarize” button would be great 🤣