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

Reminds me of Zed Shaw's Learn Code The Hard Way approach:

> You must type each of these exercises in, manually. If you copy and paste, you might as well just not even do them. The point of these exercises is to train your hands, your brain, and your mind in how to read, write, and see code. If you copy-paste, you are cheating yourself out of the effectiveness of the lessons.




When I was 14, I started learning C from a book that built around this premise. I think it was called "Type & Learn C." It worked - by the end of the summer I was a somewhat proficient C programmer.

I still think it's kind of amazing how such simple advice can be so effective. I often find that when I'm struggling to grok a new language or framework, that I've forgotten to hand-type at least a few examples.


Here's my current working hypothesis.

The part of the body that learns how to program[1] doesn't speak English. You hear it even in the metaphors programmers use: code smell, this "feels" like a recursive problem, "listen to your code," etc.

That means to learn as quickly as you can you want as many parts of your body involved -- the English-speaking part, your muscles, your eyes, your memories of all the times you've made a stupid mistake only to have it cause you hours of frustration down the road, etc.

[1]: Really, the part of the body that learns anything doesn't speak English. English is just the data exchange format. ;)


Alternatively, maybe you should get your English-speaking part out of the way and let your brain "absorb" code patterns as you read or type them, without overthinking it. https://www.youtube.com/watch?v=HzR8x5MgvDw


See neural network deep learning :-)


I don't know about that, but you do need to at least interact with the code on some level, eg. by cut+pasting, then playing around with the code to make it do different things.

Also, I don't know many professional programmers who type everything in by hand. It'll be something copied from a previous project, or cribbed from the documentation / somewhere online, then hacked into shape.

Of course, in order to do any of that you need to understand what's going on, but there might be easier ways to do that than manually typing in code.


Professional programmer != person learning to code.


Professional programmers do things in certain ways because it's more efficient. It doesn't necessarily follow that you should change that just because someone is just starting out.

Just because they're learning to code, doesn't mean that you should put artificial hurdles in front of them.




Consider applying for YC's Spring batch! Applications are open till Feb 11.

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

Search: