I'm currently trying to learn to program with the traditional route (tutorials, books, screencasts and a lot of practice) but I'm looking for people who've tweaked this route. Stuff that supercharged their learning. I know this is a coder's community, but I also know that there are a lot of non-technical, very smart people reading.
So non-technical people (no math geniuses or coders who learnt coding when they were 8) how did you learn to code? What was an uncommon approach that helped you a lot? How would you mentor/teach a friend (who's completely non-technical) to learn programming?
Please don't get me wrong: I'm not looking for an easy, learn programming in 48 minutes approach. But I'm questioning the traditional route of learning to program.
(I also started a Forrst discussion about this, but aimed mainly at designers, here http://forrst.com/posts/Designers_how_did_you_learn_to_code-vtM)
1. Do every exercise, type in every bit of code, DO NOT COPY-PASTE.
2. Make the code run, fix all the bugs.
3. Repeat until you are done. Do it 1-3 hours a night.
That's it. It's an old method: repetition and practice to build base fundamentals so you can apply them to more complex problems. For the very beginner this works better because the topics are incredibly simple, but their experience and understanding needs work. By making them just type it in, then explain it, I get them experienced and bust through a lot of fears about learning something new.
Hope that helps.