Hacker News new | past | comments | ask | show | jobs | submit login

You can't learn to play the guitar by reading books about it, or watching YouTube videos, or reading sheet music, or getting "personalized AI tips".

You can only learn to play the guitar by picking it up and spending a lot of time mucking about with it. There's a bit more to it, but this is really the core: you need to play and get that muscle memory and "feeling" for it. You need to "rewire your brain".

Coding, or any other skill for that matter, is no different. The only way to learn to code is to actually write code. Even if you fully understand anything ChatGPT gives you (which most students probably don't), that's no substitute for actually writing the code yourself.

I don't see how it's not hugely harmful for the development of students and junior programmers to use AI. Even if these tools were perfect (which they're not), you need to develop these basic skills of learning to read the code. You need to make mistakes and end up with crummy unmaintainable code, and realize what you did wrong. Etc. etc.

Even for senior programmers I'm not so convinced AI tools are actually all that beneficial in the long run.

Only when AI systems will be able to fully understand entire systems and full context and can completely replace human programmers will that change. I'd estimate that's at least 50 years off, if not (significantly) longer. Anything before that: you need someone who fully understands the code and context, in depth.




Having a vague, conceptual understanding of a topic is often confused with expertise. Also known as knowing enough to be dangerous.

What worries me is that AI code is getting complicated and harder to correct. I recently noticed that after my IDE generated some code I felt a palpable sense of dread.

I often have to go over it in detail because it makes subtle, hard to catch errors. It pulls me out of my flow. I am starting to dislike that effect and I am certain huge swaths of the (new) coding population will lack the skill and motivation to correct these things (as various earlier comments here show).

Power tools don’t make you a master carpenter.


This same issue existed with Stack Overflow, but AI further lowers the barrier to be dangerous by throwing a brick on the gas pedal.

I’ve also found it makes otherwise knowledgeable and experienced people think they can do stuff without learning it. I’ve had several people on my team tell me they think Copilot will help them get up to speed and help out with some of the stuff I’m working on. So far none of them have done anything and I’m not sure how Copilot explaining a block of code is going to do anything for them. It’s already a very easy syntax to read, and they all already have coding experience in other languages. It’s a tool to let them think helping will be easy, so they volunteer, then do nothing because it isn’t the reality of the situation.


Coding, or any other skill for that matter, is no different.

Back in the early days of computing people wrote software by working it out on paper, encoding it on to punch cards, and then giving that program (deck of cards) to an operator who loaded them and ran the code. If it didn't work properly you would get back a print out of the 'debug' which amounted to a memory dump. You'd then patch your punch cards based on working out where you'd screwed up, and try again.

That was the computer software industry for about a decade before time-sharing, VDUs, etc.

People absolutely did learn to code by reading books and nothing much else. Access to computers was so restricted (because time to use a computer was shared between lots of people) there weren't any other options.

Heck, I learned a lot of early web stuff like TCP, HTML, etc reading books at my parents house when I was at home from uni and didn't have my computer with me, and that was the late 90s. Of course you can learn coding by studying the theory without practicing. It's just a lot less fun.


That is actively engaging your brain, just at a very slow pace with a very slow feedback loop.

Dijksta's "I had everything worked out before I wrote the code, because the computer didn't exist yet" is the same. It's like working mathematics out: that's not "just reading", it's actively engaging. Actively writing. Completely different from the passive consumption of AI output.

> Of course you can learn coding by studying the theory without practising. It's just a lot less fun.

No you can't. When you first started an editor or IDE you wrote some vague code-shaped junk that probably wasn't even syntactically correct, and didn't learn programming until you practised. Of course you need to learn some some theory from a book or instructor, but that's not the same as actually learning something.


Yep Knuth learned by reading an IBM manual with source code while sitting on a beach during summer vacation. Decades later systems hackers learned by reading illicit copies of Lions' Commentary on Unix w/Source


Exactly, it's the same with autonomous driving or any other activity (even art!) that has always required a human. While it can "look cool" and like it "understands the context" on the surface, when diving deeper it will _always_ misunderstand the nuance, because it doesn't have all of the lived human experience and reasoning.

Being even 80% (or 90 or even 95) there isn't enough - something will always be missed because it's only able to "reason" probabilistically within a narrow area not far away from the training data.


This is very well put. I think the next point of discussion is what fraction of "software developers" "need" to know how to code in the deep way you describe.


I don’t think the guitar analogy is a great one. You have to learn by picking it up because no expert plays the guitar using personalised AI. But there are expert programmers who use lots of AI tools, so AI is more of an important part of learning to code.


Doesn't matter what (some) experts use; it's about learning fundamentals. You can only become fluent by writing and reading code, at times struggling to do so. This is the only way to learn any serious skill in life, from programming to music to chess to woodworking to cooking to physics to ... anything.




Guidelines | FAQ | Lists | API | Security | Legal | Apply to YC | Contact

Search: