Beta

Slashdot: News for Nerds

×

Welcome to the Slashdot Beta site -- learn more here. Use the link in the footer or click here to return to the Classic version of Slashdot.

Thank you!

Before you choose to head back to the Classic look of the site, we'd appreciate it if you share your thoughts on the Beta; your feedback is what drives our ongoing development.

Beta is different and we value you taking the time to try it out. Please take a look at the changes we've made in Beta and  learn more about it. Thanks for reading, and for making the site better!

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

timothy posted more than 2 years ago | from the it-isn't-huckleberry-finn dept.

Books 525

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."

cancel ×

525 comments

Python (5, Informative)

Anonymous Coward | more than 2 years ago | (#39662959)

Have him learn python. On any OS.

Re:Python (1)

Anonymous Coward | more than 2 years ago | (#39663099)

Have him learn python. On any OS.

Recommend the book bytes of python

http://www.swaroopch.org/notes/Python

Re:Python (4, Funny)

LifesABeach (234436) | more than 2 years ago | (#39663251)

Junior could just "Google" his questions. My daughter says Google holds all lifes answers.

Re:Python (5, Informative)

chaosite (930734) | more than 2 years ago | (#39663389)

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/ [greenteapress.com]

Re:Python (4, Informative)

Githaron (2462596) | more than 2 years ago | (#39663421)

Have him learn python. On any OS.

If you are going to teach him Python, have him take CS101 at Udacity [udacity.com] . It is more fun than reading a book.

Tube classics (-1)

Anonymous Coward | more than 2 years ago | (#39662977)

The C Programming Language followed by either The Elements of Programming Style and/or The Practice of Programming.

Re:Tube classics (2, Insightful)

Anonymous Coward | more than 2 years ago | (#39663155)

All far too dense for an 11 year old, and all pretty much require more background knowledge than an 11 year old is likely to have. I'm not sure there really is an answer to the OP's question though, at that age, even a very bright kid is almost certainly going to lack the prerequisite knowledge to learn to program from just a book.

Re:Tube classics (-1)

Anonymous Coward | more than 2 years ago | (#39663229)

Huh? I read them when I was 10 and had no problems at all, but then again I wasn't a mouthbreather like most modern-day programmers. What exactly is all that dense? The Practice of Programming and The Elements of Programming Style are extremely easy reads. You've probably never read them.

Not sure about a book... (1, Insightful)

Anonymous Coward | more than 2 years ago | (#39662981)

But Python would be great to learn on. It's nice that it can be run interactively, like BASIC.

first post (-1)

Anonymous Coward | more than 2 years ago | (#39662983)

first post

Datasheet (4, Funny)

Matt_Bennett (79107) | more than 2 years ago | (#39662987)

Print out the datasheet for a microcontroller and hand it to him. It might discourage him, but you could just be creating a prodigy.

Re:Datasheet (4, Funny)

Quaoar (614366) | more than 2 years ago | (#39663157)

Or the Unabomber...

Head First (2, Informative)

Anonymous Coward | more than 2 years ago | (#39662991)

Most of the Head First books will be good for the young'n--I'm 30 and I still need their cheery images to keep me interested ;-)

http://shop.oreilly.com/category/series/head-first.do

Python is probably the language he should use first.

Re:Head First (1)

Bigby (659157) | more than 2 years ago | (#39663193)

Head First books are my favorites as well. Nothing like seeing an EJB with arms and legs getting shot by a person.

To keep someone 11 interested (gaming connections) and demonstrate the usefulness of math (geometry), you could ease them into 3D programming.

It is probably good for them to see the results of their labor, so web programming is a good start. Maybe PHP, since it is dynamically typed, has all the control logic, data types, and OO hacked into one language. Less errors = less frustrating to an 11 year old.

Re:Head First (0)

Anonymous Coward | more than 2 years ago | (#39663225)

I second this. Head First Python is fantastic and my younger nephew (13) finished it and made herself a funny snake-like game but on acid that works on Android.

Re:Head First (1)

Githaron (2462596) | more than 2 years ago | (#39663447)

Most of the Head First books will be good for the young'n--I'm 30 and I still need their cheery images to keep me interested ;-)

Yes. The Head First books are pretty awesome.

codeacademy.com (3, Informative)

Anonymous Coward | more than 2 years ago | (#39662993)

I'm an experienced programmer, but I really liked the step-by-step stuff on codeacademy.com, where the language du jour is javascript, actually.

Re:codeacademy.com (2)

CanHasDIY (1672858) | more than 2 years ago | (#39663325)

I'm an experienced programmer, but I really liked the step-by-step stuff on codeacademy.com, where the language du jour is javascript, actually.

I'm not a programmer, and I find the cobbled together, unforgiving, often poorly written lessons on codecademy.com, many of which will allow bad code to pass but fails good code, to be quite frustrating at times. Also, I doubt I'm actually learning much, as I have yet to be able to apply any of the material from the lessons to a real world situation.

And yet, I still enjoy going through them (the Q&A section is typically far more informative than the lessons themselves), and keep finding myself going back for more. I would recommend anyone using the site develop a good understanding of programming structure and syntax before starting the lessons.

This book worked well for me... (0)

SethJohnson (112166) | more than 2 years ago | (#39662995)

Kids and Computers. Available from Amazon [amazon.com] .

Seth

C? (0)

Tim Ward (514198) | more than 2 years ago | (#39662997)

A language from the last century. Survives in odd corners, eg some embedded applications which haven't worked out how to use C++.

Re:C? (1)

Desler (1608317) | more than 2 years ago | (#39663035)

Because C++ isn't from last century?

Re:C? (1)

Anonymous Coward | more than 2 years ago | (#39663143)

Yeah, because the language you are currently using to communicate with me was created last week. C would actually be quite good to start out with, for all you know the kid will become a device driver writer.

I just started reading and don't really recall what books I started with in the 80s but take him to technical bookstore, or even B&N, and let him peruse the programming selections. Let him pick a book that he might like after reading through it, that was what I did.

Re:C? (1)

Lunix Nutcase (1092239) | more than 2 years ago | (#39663351)

Outside of a couple of toy langauges pretty much all major programming langauges in use are from last century. That's a really dumb qualifier to use as a negative.

CodeYear (0)

Anonymous Coward | more than 2 years ago | (#39663007)

Check out Code Year: http://codeyear.com/
It teaches OOP via JavaScript.

Javascript (0)

Anonymous Coward | more than 2 years ago | (#39663015)

I can't recommend a specific book, but I would recommend starting with Javascript.

The main reason for this is that he will be able to share his creations with people more easily.

Normally C but... (4, Insightful)

danwesnor (896499) | more than 2 years ago | (#39663023)

For an 11-year old who's learning, I can't imagine C is a good fit. He'll want to spend his time making working code and not chasing crashes. Something safer.

Re:Normally C but... (0)

Anonymous Coward | more than 2 years ago | (#39663209)

WTF, I started out with assembler and BASIC. Let the kid choose, if he really is in to it he will follow his own path.

How Computer Programming Works (0)

Anonymous Coward | more than 2 years ago | (#39663031)

By Dan Appleman. Covers many concepts and is designed for use by young people.

http://www.amazon.com/Computer-Programming-Technology-Action-Series/dp/1893115232/ref=sr_1_5?s=books&ie=UTF8&qid=1334258291&sr=1-5

Java / BlueJ (2)

bennomatic (691188) | more than 2 years ago | (#39663037)

I don't know about books, but if you go to http://bluej.org/ [bluej.org] , you'll find a nice, simple IDE, and some documentation and exercises that I know have been used successfully in high-school level classes. I know there are some other languages and associated programs that are specifically targeted at teaching younger kids, but I figure it's nice to get them into real, modern practices quickly.

I also like scripting languages, like Python, Javascript, Perl and Ruby. The advantage with Ruby is that there's an intro text that's a comic book. Something like "The Poignant Guide to Ruby". Check it out.

Re:Java / BlueJ (2)

bennomatic (691188) | more than 2 years ago | (#39663081)

Oh, and if you want him to work in a large Microsoft-centric enterprise, have him learn C#.

And if he's got an iDevice, push him towards either Javascript for mobile web development or Objective C for native iOS programming.

Re:Java / BlueJ (0)

Anonymous Coward | more than 2 years ago | (#39663387)

Speaking as the parent of a kid who's been programming Java since 5th grade - so about the same age. I'd recommend Java/Android. It's a pain to set up the development environment, but being able to show off your apps on your phone/tablet is cool.

Start with a goal... (1)

SkipF (1139911) | more than 2 years ago | (#39663041)

and build to that goal. that's how I learned Basic programming. I am still amazed at how much I use what I learned from basic today. As fathers have from time immemorial, teach what you know. Unix Shell Programming is a good starting point.

hope this is first post (0)

Anonymous Coward | more than 2 years ago | (#39663047)

first post111111

A plug for Alice (4, Interesting)

crazyjj (2598719) | more than 2 years ago | (#39663051)

I would like to put in a plug for Alice [wikipedia.org] as a great introductory language and IDE too. Unlike a lot of introductory languages, it teaches actual object-oriented programming, and it's fun to boot.

Re:A plug for Alice (4, Interesting)

crazyjj (2598719) | more than 2 years ago | (#39663285)

I should also mention that there are a bunch of books [alice.org] available that will help with it too.

I would also urge you to ignore all the "If he can't start out with the hardest stuff, he doesn't belong in our fraternity" snobs here who are recommending you try to get your kid to learn stuff like C, and Python hand-coding right out of the gate. If you subject him to that, not only are you setting yourself up for child abuse charges, but you're probably going to turn him off to programming for good. He should learn the principles first (which Alice teaches in a fun way), and save the hard stuff for when (and if) he's ready to pursue it further..

Art of Assembler (1)

Majik Sheff (930627) | more than 2 years ago | (#39663053)

Break his spirit early (or discover how awesome your kid is).

Only hope? (-1)

Anonymous Coward | more than 2 years ago | (#39663055)

Then you've not googled much.

Re:Only hope? (0)

CanHasDIY (1672858) | more than 2 years ago | (#39663367)

Or, he's googled too much, and is suffering from information overload.

You don't have to be a dick about it.

Anything by Packt (2)

turkeyfeathers (843622) | more than 2 years ago | (#39663057)

I'd recommend any book from Packt. They are by far the best source of books on programming, as evidenced by the many glowing reviews posted on Slashdot.

Hello World! Computer Programming for Kids and Oth (3, Interesting)

LordNimon (85072) | more than 2 years ago | (#39663085)

My nine-year-old is using "Hello World! Computer Programming for Kids and Other Beginners" to learn Python. She's not really very motivated, though.

http://www.amazon.com/dp/1933988495 [amazon.com]

Python (1)

Anonymous Coward | more than 2 years ago | (#39663093)

I can't recommend a good book, but I can recommend a language. Georgia Tech teaches Python as the default for introduction to computing and this was a great language for me to really get started right. I tried messing with Java and C when I was 13 or so but the ability to use Python (which your Mac should already have) takes away all of the boring (to a kid) steps of compiling, etc.

Of course Python has its limitations but for a good tradeoff between power and learnability it's perfect.

Re:Python (1)

Anonymous Coward | more than 2 years ago | (#39663159)

This is the book I used at Georgia Tech, from prof Mark Guzdial. Of course it was for a college course but using a programming language to create an animation would be wildly entertaining to an 11 year old if you can help walk him through it.

Introduction to Computing and Programming in Python: A Multimedia Approach

Find out why. (3, Informative)

JustAnotherIdiot (1980292) | more than 2 years ago | (#39663095)

Different languages excel at different things, so It's probably a good idea to figure out what he plans on doing with programming knowledge.

I am self taught (3, Interesting)

Anonymous Coward | more than 2 years ago | (#39663101)

I am a self taught programmer. For me it started with video games which I practically grew up on. My mom bought a nintendo to keep busy while staying at home with her new baby. I started playing before i could walk, and my interest was sparked when I basically said "Who set these rules, what if I want to jump higher or have more bullets". My parents got me a Vtech computer from walmart for ages 9 and up. I was 6. It had a single line text-only display with 20 characters. But it had BASIC on it and I learned it myself through reading the book.

Get him going on BASIC. It's not out of date.

C has way too much involved features that would confuse him. Scoping, inheritance, pointers, etc.

Get him to the point of writing a small text based battle system. That's what I first wrote as a kid.

"You encounter the enemy, who has 20hp"
"Press 1 to punch, 2 to kick, 3 for magic list"
1.
"You punch the enemy doing 7hp damage, he has 13hp left"
"The enemy kicks you dealing 12hp damage, you have 12hp left"
"Press 1 to punch, 2 to kick, 3 for magic list"
3
"Magic list"
"1: fireball"
"2: heal"
"3: whatever"
1
"You shoot a fireball doing 13hp damage."
"THE ENEMY IS DEAD, YOU WIN!"

Re:I am self taught (1)

The MAZZTer (911996) | more than 2 years ago | (#39663255)

Speaking of BASIC, VB.NET allows you to lay out Windows dialog visually via click-and-drag and it is easy to play with stuff and then check out the generated code. Of course you still need to write logic to hook it all together and make it actually do something.

BASIC (1)

Gothmolly (148874) | more than 2 years ago | (#39663105)

10 PRINT "I am awesome"
20 GOTO 10
30 REM ROFL

Try basic first - no variable types, its all human readable, no semicolon hell, etc.

Java Programming for Kids (1)

Anonymous Coward | more than 2 years ago | (#39663115)

Java Programming for Kids is a free e-book which will walk you through creating your first Java applet using Eclipse.

http://myflex.org/books/java4kids/java4kids.htm

I can verify that it is appropriately written for an 11-year-old, because *my* 11-year-old son taught himself how to use Java and Eclipse using it. (Using his own Ubuntu Linux laptop.)

A book? (0)

Serious Callers Only (1022605) | more than 2 years ago | (#39663117)

1. Why do you need a book to learn in the age of the internet?
2. the most important factor in learning is motivation - he'll be motivated by some goal, so get him to choose a goal first, whether it is to print his name 99 times, make a website building tool, or make a robot which does his algebra homework for him.
3. Start with a scripting language, not something like c, which is full of traps for the unwary, and requires learning lots about the functioning of the computer before you can produce something concrete. Don't believe people who tell you that our choice of language will stunt growth later on, or the only true language is c etc etc. the only mistake you can make in computer languages is to only look at one or two - where you start doesn't matter too much of you are willing to learn and develop your ideas as you discover the wealth of ideas and languages out there.

College textbooks (1)

edelbrp (62429) | more than 2 years ago | (#39663119)

It's obvious that the kid will need something age/experience appropriate, but don't discount buying a good college textbook or two. My parents used to let me buy the occasional college textbook while growing up and even though they were way over my head at the time, they turned out to be some of the most useful books I've ever used.

Also, BASIC and Pascal are still very good languages to start with. C might be a bit complex to start with, especially when dealing with pointers and such. Another language to consider is Javascript. A kid could have a lot of fun with interactivity working with JS (as well as sharing the work), although debugging can sometimes be a bit of a pita.

Just use online resources (0)

Anonymous Coward | more than 2 years ago | (#39663137)

I'm enjoying the JavaScript lessons at www.codeacademy.com . The lessons are great (far easier to follow than the books covering the same subjects), and you get a constant measure of your progress. Honestly, I think it would be great if you have a sharp kid who is decent at math. He can graduate to the more advanced stuff later. Codeacademy is a great place to start.

how about python? (0)

Anonymous Coward | more than 2 years ago | (#39663149)

MIT OpenCourseWare Into to Comp Sci & Prog...all you need is internet access and time

Here's a strange one (1)

NoNonAlphaCharsHere (2201864) | more than 2 years ago | (#39663153)

Starting Forth [forth.com] by Leo Brodie. Possibly the best book I've ever read about how to decompose a problem into chunks, and turn those chunks into code to solve the problem. As an added bonus, Forth works very well in immediate mode, allowing one to write and test simultaneously.

what drives him to program? (1)

Anonymous Coward | more than 2 years ago | (#39663163)

Probably any head first book is good, I would start him with python or ruby, or maybe Java, but first be clear, what drives him? what has he seen that made him want to program? with that in mind maybe the community could be more specific.

If he wants to be a web app developer I would start him with HTML5 and python or ruby, maybe jquery after or javascript then jquery.
If he wants to be a mobile app dev, maybe java, or javascript...

See what I mean..?

www.codeacademy.com (0)

Anonymous Coward | more than 2 years ago | (#39663165)

Code Academy is a free website targeted at people learning to program. It will start him off in javascript with how to declare a variable and Hello World! type stuff, but later moves on to functions and object oriented concepts.

I'm not sure if there are modules in anything other than javascript, but it seems like a good free way to introduce him to programming in general. It seems to me it's more useful to know how to program than know a specific language, one can learn a new syntax later once you have the fundamentals down.

No book, High level Language (1)

Anonymous Coward | more than 2 years ago | (#39663167)

From my own experience:

1) Don't use a book. Books can be completely discouraging in this age. Instead, point him to tutorials. Much more fun, because he'll have the feeling that he actually created programs, not boring stuff like age guessing etc. If he's creative, he'll soon start to copy & paste different codes together to create new programs. And he'll eventually learn the important stuff from that.

2) Let him learn a high level language like Javascript/HTML or Visual Basic. Creating good looking programs from day one on is much more fun than having to use the console. And it's better suited for showing off the new skills to friends :)

re "Help me Slashdot; you're our only hope." (1)

Anonymous Coward | more than 2 years ago | (#39663175)

That is not something one wants to hear.

Re:re "Help me Slashdot; you're our only hope." (1)

CanHasDIY (1672858) | more than 2 years ago | (#39663433)

Lack sense of humor, you do.

Visual Basic for Quants (1)

Anonymous Coward | more than 2 years ago | (#39663177)

That's how I made my fortune.

Mobile (4, Interesting)

CharlyFoxtrot (1607527) | more than 2 years ago | (#39663185)

I don't know about a book but I'd teach him Objective C or Java. Something you can use to create an app for a mobile device. There's nothing like being able to carry your work around with you in your pocket and showing it off to people. Personally I'd go for Objective C because making a UI in Xcode is quick and easy and you can then focus and the real coding.

Python or JavaScript (2)

GeneralSecretary (1959616) | more than 2 years ago | (#39663199)

I'd first look at KhanAcademy. They have courses on Python. See http://www.khanacademy.org/#computer-science-container [khanacademy.org] Python in general is a good first language. I first learnt it with http://www.greenteapress.com/thinkpython/ [greenteapress.com] But, I would highly recommend Head First books to start learning any language. I think they'd be great for an 11 year old. Head First Python http://goo.gl/tKRMu [goo.gl] Another option that has been discussed recently as a good first language is JavaScript. It has the advantage of running in every browser and allows the ability to see nice visual feedback right away. When I was in high school I learnt a bit of Java using , which I also enjoyed because Swing gave me the ability to create GUIs right away.

Free Python Book (3, Interesting)

reiserifick (2616539) | more than 2 years ago | (#39663203)

I highly recommend "Learn Python the Hard Way". Best of all, the online HTML version is free! (as in beer) http://learnpythonthehardway.org/ [learnpytho...ardway.org]

MIT's Scratch (1, Redundant)

preaction (1526109) | more than 2 years ago | (#39663207)

http://scratch.mit.edu/ [mit.edu]

Explains programming concepts though visual components.

http://www.khanacademy.org/#computer-science (1)

crab (93441) | more than 2 years ago | (#39663211)

http://www.khanacademy.org/#computer-science seems to have some tutorials for python. I think Khan Academy is a pretty good resource for people who are interested in learning...

Minecraft / Lua (2)

CliffH (64518) | more than 2 years ago | (#39663213)

Funnily enough, my son has gotten into programming via Minecraft and Lua scripting. Through this he has moved into VB (although he was interested in this prior to Minecraft), Javascript, toying with C++ now, and still tinkering with C as well. All in all, maybe a book may not be the best option.

Possible languages to choose from (2)

Shoten (260439) | more than 2 years ago | (#39663219)

Java - Good because it's C-like, but more directly useful and without the challenges of memory handling that few computer languages have to worry about these days. If he ends up writing in C++ later, he can learn how. Also in use in a lot of places.
C# - Good because it's also in widespread use, and again, lacks some of the pitfalls of lower-level languages. Much like Java in construction as well, and useful for both native executables and website development. It's also a bit easier and cheaper to get hosting space that will run C# than a Tomcat server for JSPs.
PHP - If he wants to just play with web application development, this is a great place to start. Lots of documentation and examples, and the hosting is super-easy to come by.
Ruby on Rails - Good for putting together apps in a hurry, and will teach him about frameworks early on as well, which will probably turn out to be very useful.

Another thing...once he gets started, he's going to have trouble finding problems to solve. That's another way you can help him. I had the exact same problem when I was younger (I, too, learned to code when I was 11...back then it was Applesoft BASIC). So that's one way that web apps might be better...he can actually produce an app with a functional purpose for the family. Just make sure that you either restrict access to it, or that you ensure that he uses secure coding methods. Sanitizing inputs takes you a long, long way and is pretty easy to do.

He wants to? (0)

Anonymous Coward | more than 2 years ago | (#39663221)

Does he really want to learn to program or is it something that you want him to?

I suggest C++, C# or Java - they have wonderful IDEs that are availble for free. Free is good because at his age, he's more than likely going to loose interest.

If he were my son, I would teach him to use his hands: carpentry, fixing a car, and something else along those lines.

I would also engourage him to learn basic science: chemistry, physics, and of course math. No, programming is not math and you can do quite a bit without never having to touch the stuff. I think basic science will do the kid a lot more for his future than programming. Programming is becomming a blue collar type of commodity skill and if he really needs it one day, he'll pick it up quite easily - especially if he's got the math and science background. He starts getting basic science into his, he can go on to a career that has some sort of future in the US of A: like medicine and well, medicine is prety much it for a middle class kid. Everything else is reserved for folks who know folks who are connected (read: he'll never be a big shot CEO getting hundreds of millions of dollars in bonuses for drilling the stockholder's company into the ground. Stockholders being us poor slobs and out IRAs and 401Ks.)

Yep, I'm cynical and bitter. Oh yeah, teach your kid to be cynical and pessimistic - cynics and pessimists are almost always right.

Gortek (1)

kodiaktau (2351664) | more than 2 years ago | (#39663223)

I would avoid Gortek and the Microchips [lemon64.com] , it is a little aged. Scripting seems to be an easy start and there are a ton of Perl or Python tools ready and available on the internet. I am mentoring a high schooler now and let him chose his language and he is using Perl - easy, tons of tools, lots of flexability. One thing I see with these languages though is that you have to unlearn bad habits unless you have some structured education. Personally I learned Assembler, Basic, C and Pascal as first languages but they will ruin his spirit for programming.

Find an e-zine with example programs (0)

Anonymous Coward | more than 2 years ago | (#39663233)

Back in the day, I had K-Power and TI 99/4er magazines that had programs to type in and explanations of what the code did.
By learning each segment, function, subroutine, etc it was easy to write your own code or play with "what if" scenarios.
Ended up writing routines that emulated Apple Graphics on the TI which was character re-definition based to get the drop of water into a volume of water programs to work on the TI.

Udacity (0)

Anonymous Coward | more than 2 years ago | (#39663235)

or any of several organizations offering free online classes. The next Udacity (www.udacity.com) term starts up next week, and they're offering CS101 again.

I just finished taking the "How to Program a Robotic Car" class and I thought it was great, especially considering the price.

www.udacity.com (1)

frallon (214927) | more than 2 years ago | (#39663245)

new free 7-week CS101 starts next week. It teaches python.

popular game with programming language built-in ? (0)

Anonymous Coward | more than 2 years ago | (#39663249)

Maybe book-learnin is neither the question nor the answer. Instead consider to turn the kid loose on "minecraft". (Minecraft's "redstone" appears to me to be most of a programming language.)

K&R Text (1)

amasiancrasian (1132031) | more than 2 years ago | (#39663257)

I am not sure if your 11-year old is ready for the K&R text, but if he wants a full stack education, the K&R book will give him in-depth knowledge of how low level languages work. It's clearly written, succinct, and arguably one of the best technical manuals ever written. I will caution that It will require more maturity and self motivation to finish, but he'll go through the book understanding how almost all software works. If he is truly motivated, I would even go lower level to leading him to computer organization and have him play around with assembly using a MIPS emulator. Things like caller or callee saved conventions will make more sense to him, as well as pointers and such. Knowing C opens the doors to all programming languages, and if he's more pragmatic he'll probably pick an interpreted language to learn next, or if he's more math-minded, a language like Haskell will follow.

How to think like a Computer Scientist. (0)

Anonymous Coward | more than 2 years ago | (#39663261)

I'd get a copy of the Python version of "How to think like a Computer Scientist".

It's not too dense and uses a language that's relatively easy to learn but still has practical applications.

Parenting 101 (0)

Anonymous Coward | more than 2 years ago | (#39663263)

Give him some attention. Show him how to use online resources. Do a few projects with him, then let him go and see if it sticks.

Perl rocks! (5, Funny)

swm (171547) | more than 2 years ago | (#39663265)

Learning Perl
Schwartz & Christiansen

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

Everybody Poops (-1)

Anonymous Coward | more than 2 years ago | (#39663275)

Really, a good book to describe the quality of software from some companies.....

If he likes games, check out Roblox (0)

Anonymous Coward | more than 2 years ago | (#39663281)

My kids play on Roblox quite a bit and it uses Lua as a scripting language. If he likes playing games, too, then this might give him something where he can see immediate results. The game is free and comes with an editor to create your own levels/games. You can build with blocks graphically and then script interactions with them or use scripts to create objects. You can start simple, but there are some pretty complex, involved games that people have constructed.

http://wiki.roblox.com/index.php/Scripting [roblox.com]

For a straight up programming language, I'd go with Python. I don't know what book would be good for him, though.

Real Programmers Do it in C++ (0)

Anonymous Coward | more than 2 years ago | (#39663283)

Have him read bjarne stroustrup's The C++ Programming Language. Once he makes it through that, everything else will be a piece of cake. And if he can't make it through that, well, maybe he would be better of finding other ways to spend his time.

Book? (0)

Anonymous Coward | more than 2 years ago | (#39663293)

What century are you in?

http://www.khanacademy.org/#computer-science-container

It's 20 years old (1)

Drummergeek0 (1513771) | more than 2 years ago | (#39663299)

and may be hard to find. But the best book I always refer back to as what seriously started me on the path to being a programmer was Microsoft QuickBasic Primer Plus. QB may be old, but it is still available and the book is an amazing text as to the details of programming and why/how things work.

_why's stuff? (1)

Schiphol (1168667) | more than 2 years ago | (#39663307)

I'm surprised that nobody has brought up Hackety Hack and Why's (poignant) Guide to Ruby.

Re:_why's stuff? (2)

Ken_g6 (775014) | more than 2 years ago | (#39663417)

I'm surprised nobody's linked to Why's stuff [uniqpath.com] yet. (Since it's a free online book and all.)

Think Like a Computer Scientist (1)

cjhuitt (466651) | more than 2 years ago | (#39663323)

If I was recommending a book for a peer in a non-computer related field, I'd definitely recommend How to Think Like a Computer Scientist, which assumes no programming knowledge and builds up the thought process behind decomposing problems, etc. It's been a while since I read it, but I think it would work reasonably well for an advanced preteen. The version I read used Python, which I think is a great introductory language.

http://www.greenteapress.com/thinkpython/ [greenteapress.com] for a dead-tree version, or in various electronic formats (for free[-as-in-beer-and-in-speech]).

If using Python... (5, Interesting)

CJSpil (166214) | more than 2 years ago | (#39663331)

You might want to check out the book Snake Wrangling for Kids [briggs.net.nz]

TI BASIC manual (1)

razorh (853659) | more than 2 years ago | (#39663333)

It comes with the TI-99/4A and was extremely informative at 9 so should be a breeze at 11.

I'm a dinosaur. Sue me. (1)

OhSoLaMeow (2536022) | more than 2 years ago | (#39663339)

I learned C programming from a great book by Stephen Kochan: Programming in C. It's imminently readable, practical examples, and doesn't read like a reference manual (e.g.: K&R). I also strongly suggest getting a good understanding of what's going on underneath the hood of a Unix system. Advanced Programming in the Unix Environment would do nicely.

From there you can branch to most any other language. But aside from assembler, C is closest to the metal.

"Hello, World", by Sande & Sande (2)

dbc (135354) | more than 2 years ago | (#39663347)

"Hello, World" uses Python. It has aged a wee bit, only because Python has moved on, so the "how to install Python" section of the book is slightly stale. Other than that, I think it is great. A Real Computer Scientist(tm) wrote it with his 10 year old son, so the book reflects the interests and questions of a young kid. I used it with my daughter, and she loved it. I've recommended the book to adults that want to learn Python, and they liked it.

As for what language to use, I say use Python. You can teach proper computer science with it, and the language doesn't get in the way. Save C for later. Pascal is of historical interest only at this point. If you don't know Python, work through "Hello, World" with your son (or on your own) -- you will be glad you did.

yo (1)

buddyglass (925859) | more than 2 years ago | (#39663359)

I recommend C or Java, and echo others' recommendation of the K&R book. Big benefit = it's short. Recommend against dynamically typed scripting languages, e.g. ruby, python, php, perl, et. al. Other benefit = both C and Java are near-ubiquitous. Possible alternative is C#.

Code: The Hidden Language of Computer Hw. & Sw (0)

Anonymous Coward | more than 2 years ago | (#39663369)

http://www.amazon.com/Code-Language-Computer-Hardware-Software/dp/0735611319

If he's into World of Warcraft... (1)

tilante (2547392) | more than 2 years ago | (#39663377)

Then Lua might be a good language to start with. It's what WoW addons are written in, and several other games use it as well. (Minecraft, RIFT, more.) I'd say the main thing is that he needs something that he's interested in making the computer *do*. Working with a goal in mind makes it much easier to learn things beyond what you can learn from "toy" programs.

Lego Mindstorm (4, Interesting)

mrops (927562) | more than 2 years ago | (#39663405)

If he is 11, get him lego mindstorm. Out of the box it comes with a UI that lets you do logic and control your lego creations. Once he gets the concepts of loops and ifs, wipe the firmware with community Java firmware (lejos) where he can write Java code to control his mindstorm bots.

By this time he would have bootstraped himself into programming and internet would be enough.

Learn Ruby with RubyMonk online (1)

Anonymous Coward | more than 2 years ago | (#39663407)

In my opinion, ruby is a great choice to start with. A really cool way to learn ruby is: http://rubymonk.com/ . It teaches you and gives you little challenges to solve as you go, a lot more fun and interactive then just reading a book.

Google is your friend (1)

l0ungeb0y (442022) | more than 2 years ago | (#39663411)

I haven't bought a book in ages -- yet have learned a couple new languages and technologies in the meantime without them.
Every language will have a dedicated community site with tutorials covering most your essential topics and lots of code samples and user help forums, where most the questions any novice will have are already answered.

When I did buy books though, I found that ones that were lighter weight and focused more on the practice than the theory, because the dense ones, while a good resource of information has simply too much information to deal with for someone who just wants to get their feet wet and start wading deeper so they can seeing results quickly.

So in closing: Pick a language (Ruby, PHP, Java, Python) and a DB (MySQL is best for now) and associated framework or platform (Rails, Spring, Zend, jQuery), pick a specific and narrow focused problem such as "How to setup a basic Form to save data to my DB using Language X and Framework Y", search Google, start reading articles, chose one that makes the most sense and get busy coding and learning.

K&R & Oreilly Linux Device Drivers (1)

mallyn (136041) | more than 2 years ago | (#39663425)

K&R is a given. It should be either 'under the tree' or 'under the pillow via the tooth fairy'.

If the child already has that one, then give them the Oreilly Linux Device Driver writing book.

Then give them a connection to Google

And then give them a system with Linux that has a device driver that occasionally crashes the kernel

Warren and Carter Sande: Hello World! (Python) (1)

John Bokma (834313) | more than 2 years ago | (#39663443)

Hello World! Computer Programming for Kids and Other Beginners by Warren and Carter Sande. Uses Python.
Load More Comments
Slashdot Account

Need an Account?

Forgot your password?

Don't worry, we never post anything without your permission.

Submission Text Formatting Tips

We support a small subset of HTML, namely these tags:

  • b
  • i
  • p
  • br
  • a
  • ol
  • ul
  • li
  • dl
  • dt
  • dd
  • em
  • strong
  • tt
  • blockquote
  • div
  • quote
  • ecode

"ecode" can be used for code snippets, for example:

<ecode>    while(1) { do_something(); } </ecode>
Create a Slashdot Account

Loading...