Take the 2-minute tour ×

I know this topic has be discussed before, but I thought this might be a bit more of a detailed question... A family friend is a 12yr old boy with ADHD, and a very bright kid at that. He seems to have a solid instinct of computers, and I really think he would excel at programming.

For example, today he was kicking around our place and so I opened up Visual Studio Express C#, and showed him how to create a console application (he was the one typing it all out). In about 10 - 20 minutes he was writing his own code, ReadLine()s and Writeline()s etc, and even started working on a loop. Made me think that even something like C# would definitely be within his grasp.

Although Lego Mindstorms came to mind, his family isn't particularly well off and is likely not feasible. I thought about lending him one of my intro to C# books, but with the ADHD I don't know if he would have the patience to actually go through it. I also think something like Alice or Scratch would be too childish for him, and wouldn't catch his attention...

I'm trying to figure out what the best way to approach this would be, and what sort of material is out there that he could teach himself how to program. Any thoughts or suggestions??

One thought I had was this book, but it may be too advanced without a basic C# background at least... Amazon C# Game Book:


share|improve this question
As has been said n times before, you learn best doing something that you are interested in. So, perhaps try and find something he wants to do, and then just go around step-by-step doing it. I.e. a book shouldn't be neccessary, more just a few ideas, and then guidance on how to approach them. Some puzzles may be fun for him, that are simple to solve in a short amount of time (say, Project Euler or similar, if he is mathematically inclined). –  Noon Silk Apr 27 '11 at 0:54
@Andrew, that is certainly related (and a good link), but i would think this question has a couple of points that make it not an exact dupe (i.e. what resources can be downloaded an had for free due to limited connectivity, plus requiring instant progress for the child due to medical condition). –  slugster Apr 27 '11 at 0:58
Unfortunately he has to wait another year before he can sign up to SO for help :) stackexchange.com/legal –  Benjol Apr 28 '11 at 12:01
add comment

migrated from stackoverflow.com Apr 27 '11 at 1:10

This question came from our site for professional and enthusiast programmers.



5 Answers

up vote 3 down vote accepted

My younger brother is ADD with HD. I can tell you from experience, that no matter how bright they are, and they are very very very bright, it's very difficult to get them to sit still and read something. So you might be better off starting with a simple language (don't curse him with proprietary tech) with lots of examples that work that he could pick apart.

You'll need to ask him what he's interested in making, and then suggest a language. If it's games, there are some good libs in Java. C++ might be a bit frustrating. Though modern libs help a lot. Otherwise maybe Ruby or Python is good. Of course Javascript is useful.

If you are his "guru", expect lots of spoon feeding type questions, as it will be difficult for him to make an effort to sort out the "in-obvious". Though, if you care about the dude, it's certainly worth it and rewarding.

Many years later, I'm proud to say that my little bro has completed his CS degree. I'm looking forward to coding something with him.

share|improve this answer
Congrats to your brother! Although I'd be the guru to the extent of pointing him in the right direction, I'm only visiting home and don't live in the same country... So unfortunetly I would not be able to help him that much... –  keynesiancross Apr 27 '11 at 1:07
Well, does he have email? That might be enough and then you could help from a distance. It would certainly help teach him patience. –  d-_-b Apr 27 '11 at 1:09
I hear a lot of good things about the unity3d.com engine for game development. –  StuperUser Oct 19 '11 at 16:08
add comment

Two best options that spring to mind:

Processing (great book, website full of learning materials)

Python (free pdf book, he'll have fun making text games)

ADDITION: hm I guess some people really don't like this answer. I figured these are good choices for the situation you describe because they require little monetary investment and give almost immediate gratification in the form of snazzy things on the screen.

share|improve this answer
Instant gratification seems perfect for this situation. I wish the people casting downvotes would have explained why. (I'm not voting either way because I'm not familiar with either recommended resource) –  Ben Voigt Apr 27 '11 at 1:05
+1. I don't think it was that the answer is bad. It was probably just some asswipe. I had a look at the second book, I think that is really good and the kid may be able to keep pace with it. Though, he would need some hand holding. –  d-_-b Apr 27 '11 at 1:07
Assuming the downvotes were for some good reason, I would guess that maybe the problem was that these resources don't really teach computer science or rigorous software engineering principles. Thing is, I figure the kid can start with some lightweight programming before graduating up to tougher stuff. –  jhocking Apr 27 '11 at 1:23
My particular downvote was because you provided 2 links with no explanation (that was before you edited your post) when the OP had already noted that he wasn't sure if books were that good an option. –  minitech Apr 27 '11 at 1:31
I have a bad habit of hitting submit and then immediately editing my post instead of writing it correctly to begin with. I need to work on that. –  jhocking Apr 27 '11 at 1:40
add comment

Great question.

First up, if they have an internet connection then a book is not necessary, there are zillions of resources out there for learning C#/.Net. If they don't have a net connection then it wouldn't cost much to download some resources for them.

You could also start him out making a text based game - i know there will be many people who started that way, making their own text based shoot-em-up similar to Space Invaders.

Edit: i just noticed this Stack Overflow thread: Language Books/Tutorials for popular languages, it may be of some use to you.

share|improve this answer
add comment

My favourite domain-specific language for game programming -- text adventure game programming only -- is Inform7. (Their web site appears to be messed up this morning but I imagine they'll fix it shortly.)

It is astonishingly high-level, has beautiful tools, and should be pretty easy for kids to pick up the basics. The programming language is mostly simple declarative statements in English. For example:

Your Backpack is a closed openable container. 
Your Backpack is on the table. 
The description is "It's your backpack.[if closed] It is currently closed."     
The backpack is wearable.

The compiler will work out which table "the table" refers to, and build a game that meets the constraints described by the declarative statements. It's pretty awesome.

share|improve this answer
add comment

For C#, you can use LINQpad. IMHO it's cool for learning basic C#. Though it would be better to have the AutoComplete option, that requires money.

And you can tell him to make something relevant to his study.

share|improve this answer
add comment
