Slashdot Mirror


Ask Slashdot: Best Book For 11-Year-Old Who Wants To Teach Himself To Program?

New submitter waferthinmint asks "What is the best book for my son to use to teach himself to program? He wants to study on his own but everything seems to assume an instructor or a working theoretical knowledge. He's a bright kid but the right guide can make all the difference. Also, what language should he start with? When I was in HS, it was Basic or Pascal. Now, I guess, C? He has access to an Ubuntu box and an older MacBook Pro. Help me Slashdot; you're our only hope."

9 of 525 comments (clear)

  1. Python by Anonymous Coward · · Score: 5, Informative

    Have him learn python. On any OS.

    1. Re:Python by chaosite · · Score: 5, Informative

      I second the python recommendation. Have a look at this (free, available in dead tree format as well as online) book:

      http://www.greenteapress.com/thinkpython/

    2. Re:Python by chaosite · · Score: 5, Funny

      Nah man, snakes are cool. "Playing with Ruby" makes it sound like your eleven-year-old hired a whore, or perhaps a drag-queen.

    3. Re:Python by jcreus · · Score: 5, Informative

      Hi. Teenager here. I learnt how to program when I was about 11 (or maybe 10), self-taught. My best recommendation: let him learn how to program by himself. What I did was, and I've done such a thing for all programming languages (8, I think) I know: first, go to the first tutorial you see on the Internet. I believe I used Wikibooks (Python). And, then, leave the tutorial after knowing just the basic I/O and simple statements. Then, give yourself a project. For example, I created one which solved me the maths homework. Something you find useful. And, while doing that, one must learn more features of the language. In case you have doubts, be self-sufficient: just f*cking google it, and results will appear (learning how to google is probably a priority before programming languages!).

      So, what you said is true. Don't spend money on programming books. Let him learn by himself.

      On the other hand, regarding programming languages, I've always loved Python. Simple syntax, easy to introduce to new programmers, no pointers, great power... Furthermore, while Python keeps being my favorite, maybe, for "the current times", he would find JavaScript (+HTML+CSS) closer, for he would be able to create his own websites and that's something you often feel proud of ;). Also, it seems now everything has to be JavaScript-based...

    4. Re:Python by Tassach · · Score: 5, Insightful

      Also being a 'seasoned' developer I'm wondering why not a 'real' language like C as opposed to scripting languages.

      Dynamic (scripting) languages are no less "real" than compiled languages. Both have their place, their strengths, and their weaknesses, which is something a "seasoned developer" should know.

      An instruction language should just get out of your way and let you concentrate on doing stuff and understanding the CONCEPTS, instead of concentrating on making the compiler/interpreter understand you or doing routine housekeeping (eg: memory management). This is true for real-world development, but is especially relevant when teaching someone how to program. For this reason, Python is an excellent choice as a first language -- even MIT uses Python as a teaching language. (I can't think of a better endorsement than that)

      The advantage that Python has over other dynamic languages (Perl, Ruby) is that it is designed for readability and clarity. Even as a die-hard Perl programmer, even I can admit that Python is an easier language to learn and explain, and is probably the first language I'll teach my children. Whether it's (IMHO) dumbed-down syntax is an advantage or a disadvantage for doing serious work is a subject of debate (if not holy wars).

      C is a wonderful language for a specific class of problem, but it has lots of problems that make it suboptimal (if not completely unsuitable) for other tasks. Knowing *when* to use C (and, more importantly, when *not* to use it) is as important as knowing *how* to use it, if not more so. It is not a good teaching language for a beginning programmer, any more than it is a good language for general application development. Someone who doesn't understand this has no business calling themselves a "seasoned developer".

      --
      Why is it that the proponents of "one nation under God" are so eager to get rid of "liberty and justice for all"?
  2. Perl rocks! by swm · · Score: 5, Funny

    Learning Perl
    Schwartz & Christiansen

    Or just send him to http://perldoc.perl.org/

  3. If using Python... by CJSpil · · Score: 5, Interesting

    You might want to check out the book Snake Wrangling for Kids

    --
    For people who like peace and quiet. A phoneless cord!
  4. Re:Head First by ShieldW0lf · · Score: 5, Interesting

    Set him up with Scratch.

    http://scratch.mit.edu/

    I taught my daughter to program using it. It uses most if not all of the standard logical constructs, but instead of having to type and debug code, you drag and drop, attaching little lego-brick looking things together. It lets you focus on logic errors instead of syntax errors, and makes it a lot more accessible.

    Also, you can log in to the scratch website and publish from within the Scratch IDE. This was a major source of encouragement for my kid, who is more driven by the appreciation of her peers than by the achievement itself. After our game got featured on the front of the website and over a hundred kids posted comments about how cool she was, it stopped being a way to spend time with Dad and became something exciting in its own right.

    You can also download other kids programs, open them in the IDE and see exactly how they work. If you then create a derivative work and publish it, that will all be preserved... anyone looking at your program will be able to identify that you made it, what it was derived from, and who made the original. So, it teaches them to share, too, and helps them learn from each other.

    Once he gets deeper into it, you can buy him some hardware and he can use scratch to control that. It's compatible with Lego, and also with the PicoBoard:

    http://www.picocricket.com/picoboard.html

    --
    -1 Uncomfortable Truth
  5. Re:Normally C but... by Anonymous Coward · · Score: 5, Funny

    Isn't that how Bill Gates got started? Look what that got us.

    Yes, but look at what that got him.