Rod Dreher

What should I do with this computer kid?

My 10-year-old son Matthew has had an Apple laptop for a couple of years; he’s been taking online classes for that long, and needs it for his schoolwork. Unsurprisingly, he’s become devoted to the thing, and talks about Steve Jobs the way other boys his age talk about LeBron James. I’ve thought for a while that that was cute — especially his daily geek-obsessive question to me, “Did you check Boing Boing?” — but not much more than that.
Last weekend, he and I had to run some errands, so we spent a lot of time in the car together. He started talking about his computer, and to my surprise, indeed shock, I learned that all the time he’s been spending on the computer hasn’t been on approved websites for kids. No, he’s been reading deeply into the manuals that come loaded into the Mac. I don’t know a lot about how computers work, but I know enough to understand that this kid has a startlingly deep grasp of the subject.
This is not a new story, of course. Smart, geeky, computer-obsessive boys aren’t exactly rare. But I’m left wondering what to do now that I know that I have one. Seriously, how can we channel his love for his computer into something upbuilding? If he were spending his time on video games or online time-wasters, that would be one thing. But teaching himself about the inner workings of his computer has lit a fire in his mind, and I want to encourage that. So I could use some advice from you who have raised kids like this, or who once were kids like this. What should we do? What shouldn’t we do?

I was that kid, back in the era of the TRS-80.
Get him started learning how to program.
If he weren’t hard core for the Apple platform, I’d also suggest getting a boxload of obsolete Pentium-era PC hardware (motherboards, peripherals, etc.) – you ought to be able to find someone to pay you to haul away a few carloads of that stuff if you look around – and let him get started on learning how hardware works together.
Then get him started on learning to install and use Linux on the above hardware.
But if he insists on being an Apple fan, at least get him started on programming.

From my lofty perch as a software engineer, but with little experience with Apple computers…
The primary caution I can offer you is to help Matthew learn that computers can be broken, and enough so that it would cost less to buy a new one than to fix the broken one. Software/hardware interactions are much more vulnerable than intra-software ones, a key attribute exploited by viruses and such.
Ask him to be his own judge, meaning challenge him to be mindful and deliberate in his quest for knowledge and expertise. He is joining others in on a well-traveled path, not on a new frontier, and most of my colleagues react well to what might otherwise be considered “dumb questions”. Seek out mentors, and also realize that however well-traveled the path is, it holds many mysteries and surprises — not all of them pleasant.
At some point, too, he’ll acquire enough of a public reputation that jealousy and competition will rear their ugly faces. Preparing him for that is something only a parent can do.
He likely already sees at least the potential “why” and “how” behind the “what” computers can do. Like the painter with the ability to see subtle shades, or the musician who hears harmonics others miss (or the more high-profile “super-taster” phenomenon), there will be things he’ll encounter that no one can help him with. Of all the skills one can teach a savant, patience is the most valuable one, in my been-there done-that after-the-fact (painfully) humble opinion.

I’ll second John’s suggestion, particularly regarding hardware. We have a Mac, and I enjoy it (and development on it), but mucking with hardware is much easier on a PC. I bet, being in the Philly area, you could find some older stuff for next to nothing on Craigslist or Freecycle.

With respect to the others who posted as I was composing my first post, teaching him programming is the second step. A programming language is like learning music. Anyone can mimic notes, and produce their sounds on (say) a keyboard. Understanding how they work, why a series of notes sounds better than alternatives, and the limits of efficiency and complexity, are abstract concepts applicable in every rational pursuit. That is the skill that will challenge Matthew, not the vocabulary and syntax of a programming language like those suggested and many others.
I speculate — and I’m willingly going out on a limb with this — that he will find programming languages relatively easy to grasp. His first language should be assembler language, the code that actually loads into the physical memory of the computer and which handles all the minute but necessary steps that take place between the (for example) click of a button and the opening of a browser window. Indeed, the simplest code that takes two numbers from input and displays their sum might take 25 lines of code in the programming language, but consist of 200 or more lines in assembler.
As for cross-platform issues, that is a wise suggestion. The compromise I suggest is that he learn C (the great-granddaddy of Java), which is closer to assmbler than any other mainstream programming language I know of. It is ubiquitous across (nearly) all platforms, from the Apple-IBM/PC realm right up to the most sophisticated mainframes and every step in between.
If he were in high school preparing for college, I’d say C++ instead, the daddy of Java etc. Since he’s 10, he has time to retrace the evolution of it from its roots, something the vast majority of IT professionals get to only after the fact, and too frequently miss because they are too busy making a living.

Why does everyone assume a geek would necessarily want to mess with hardware and Linux? I’m a software geek and I want my computer to *just work* so I can get things done on it.
That said, I don’t know what software environment I’d introduce to a kid. When I was young, I just messed with whatever was available, which was usually Basic. You can download the Mac development environment, Xcode, for free but I don’t think it’s the easiest thing for a kid to pick up. But if he were motivated and willing to learn Objective-C, there’s that.
Maybe web technologies would be a better first step? Flash or web pages might be fun (simple HTML pages all the way up to Ajax web apps).

His first language should be assembler language
*Really?* I think the trick will be exposing the kid to a number of things and just find what sticks, what he finds fun. At a certain point, he’ll be able to move onto deeper things (like assembly) if they interest him.

Franklin, I bow to your uber-programming suggestions.
Why does everyone assume a geek would necessarily want to mess with hardware and Linux?
Because a computer shouldn’t be a ‘black box’ where you put instructions in without knowing what’s going on internally?

Might I suggest that in addition to encouraging his computer interest, you try to discover and foster other interests. Does he like music? ( IMO every person should study a musical instrument for at least two years). How about cooking? With your love of good food, he might enjoy getting in the kitchen with you. Drawing or painting? The outdoors? I think you get my drift. Everyone needs a bit of balance.
One other thought, having raised a son, I strongly recommend getting him involved in Boy Scouts. It is a great character builder.

One more platform issue: He should learn Unix (the Mac operating system basis) first. Mastering Unix gives him at least 75% of what he needs to learn about DOS (the PC operating system basis). Also, since Unix is an open architecture (no one owns the basic OS) with many concurrent development tracks ongoing, he has much more opportunity to participate and be challenged (and find mentors) as an “amateur”. A search of “Unix discussion forums” by you will help you identify some cyber-places where talented children can benefit and thrive.
In the meantime, look into community college and university-extension programs that might be local to you. Many of them offer weekend programs for pre-secondary students (up to 8th grade) and secondary level, taught by professionals, generally with low student-teacher ratios. By the time he’s 12, I suspect he will find any program in his (public) school boring. As a comparison point, my artistic daughter has taken classes at Tyler School of Art (Temple), Moore College of Art, and the University of the Arts. They don’t offer live-model classes in middle school, but she’s learned more about that in two classes (at 13 years old) than some college art majors I’ve met because her talent level was advanced enough and her instructors gladly challenged her in constructive ways. I’m beyond doubt a very proud father with the usual biases, but when I say that she is talented, I have confirmation from professionals who would know. Again, that’s not something one usually finds in a public middle or high school.

Leaving aside hardware issues, and focusing on software: huge amounts of innovation in software are done in *interactive* online communities populated by “early adaptors” who are also geeks extraordinaire. These guys are often deeply into “geek culture,” which can range from Star Trek/Star Wars to some pretty weird and esoteric pursuits. I don’t know that it’s possible to separate the two. Most communities don’t let the under-13 crowd in, but then again, most smart under-13s know this & don’t admit to being under-13. Also, those with computer-fu know about anonymizers (to many levels), so that it’s more difficult to track back.
Also, be prepared for a *lot* of downloads. This means a *good* security system to make sure that all those downloads don’t contain critters that will wipe your hard drive in a few seconds. Also, if “parental controls” are important to you, keep in mind that those who peek under the skirts of operating systems can pretty much defeat anything commercially available in that department (as well as defeating most of what passes for “password protection” on most home computers.)

Bruce, there are some unknowns here that I must make assumptions about, so have your grain of salt handy.
Rod has described his son in some detail. On that basis, and having a child development professional available to me on-demand (my wife), I would be supremely unsurprised to learn that Matthew’s potential already outstrips mine or yours, right now. Exposing him to ground-up concepts and technology may seem unnecessary to you and I, but (another assumption) he might find it fascinating… and leave the rest of us in his dust by the time he’s 20, and create the OS that replaces Unix and DOS by the time he’s 25.
My personal POV on the assembler-first stance: I am a much better Cobol developer for having learned 370 first. The bad old days of slogging through pages of core dumps to debug a problem are gone, but when I look at Cobol code and can “see” the machine code behind it, it takes on a life of its own that speaks to me. There is an art to programming, subtle and mostly inaccessible to non-programmers. I believe that Matthew will thrive in that art well beyond what you or I know.

I’m going to disagree with a lot of the advice here. Have him download VirtualBox. Then he can set up various operating systems, break them, and do it all over again. As we move into the next generation, understanding hardware isn’t going to offer many returns. Understanding how your computer processes instructions isn’t nearly as valuable either. With programming languages, there are bigger questions involved. For example, with C++, what template library are you going to focus on learning? Learning C++ is easy. Learning to program with it – as in writing programs quickly and efficiently – has a very high learning curve. That said, if you can only learn one language, learn C++. If I were pushing my child on the programming track, I would make a choose between teaching them Visual Basic or the programming technique of utilizing Apache, PHP, HTML, and MySQL. For the latter, there are a number of good books on LAMP.

How to direct his energies at this point?
1) Encourage him to keep digging. Whatever direction he wants to go at this point is not necessarily as important as continuing to cultivate the curiosity and desire to learn more. He can decide whether to go software, hardware, networking, etc. later on. Right now just let him soak up whatever he can find from good quality trade publications and blogs. Since he has an interest in all things Apple I would suggest the blog from Guy Kawasaki, formerly of Apple and now one of the more respected voices in the tech area.http://www.guykawasaki.com/
2) He likes Macs, therefore he is already using UNIX (BSD, to be precise). So I echo those who recommend that he continue delving into this. UNIX/Linux is the power OS for computer networking applications and is fast becoming more popular on desktop applications. In addition to Apple OS X there is the popular Ubuntu Linux, which is seeing greater acceptance in the market formerly dominated by Windows.
3) Get him attached to a good computer club, either at school or in the community. Let him network with others who have this interest. That is where he will learn the ins and outs of the computer world. Textbooks teach “by the book”. Working with others who have been out in the field will teach him what really works, and how to deal with situations the textbook writers have never thought about.
4) This one you already know. Get involved with him. As he networks (either online or in person) he will come into contact inevitably with those darker elements in the computing world. Having you there to keep an eye down the road and helping him avoid these interactions. As with any kind of hobby (and that is what this is right now…a hobby, not a career) there will be bad apples involved. You can help protect him as you take him to local trade shows, lectures, and club meetings.
It’s long been obvious that you have some special kids. This is just another example of that. If he has a gift for this kind of work and enjoys it, then he could well be setting himself up for a good career. But even if he doesn’t go that direction, this can be a really fun hobby for him. Think of it as similar to the old amateur radio hobby, which still gives folks a life of enjoyment even though they never make a penny from it.
Good luck!

Rod,
I would like to add again that you are a new neighbor to Franklin Evans’ family. I don’t have the gift of hospitality or the etiquette
involved, but you really should get together. Sorry if this post is rude(just delete if it is). I believe the Evans’ know much about Philadelphia( and obviously more).
[Note from Rod: Scott, we already have! And I expect we’ll do it again … and again. — RD]

Those of you suggesting that programming is the way to go need to get out more. I know folks who have made careers in the tech field out here in the hinterlands of Iowa. Computer programming (COBOL, Basic, C++, etc.) is NOT necessary for success in these areas.
What is necessary is a fundamental understanding of the underlying processes behind the applications, whether they be desktop apps, network apps, or virtual apps. At his age his interest in the OS is exactly where he needs to be. From that he can move into other areas of interest, whether it be app development or something else.
And when this young man has his A+, Cisco, Microsoft, and Apple certs by the time he hits high school, THEN he can decide if he wants to write code. But trust me…programmers are NOT in demand nearly as much as are good quality generalists in the field. Give me someone who can manage a server farm, support desktops/laptops in the field, and handle routing issues on the LAN/WAN (on both sides of the firewall) and I will show you someone who can pretty much get a job with any company.

What Franklin Evans said. I’m no computer guru, but my own 13 year old brother loves his Mac and is starting to show real interest and aptitude for the field.
In addition to everyone else’s advice I would add that you should somehow some way tie his math instruction to real working things he is interested in. I could barely make heads or tails of math in high school. It is only now, after taking a couple of geology/geography classes at the graduate level, that I can see how endlessly useful trigonometry is. And even what calculus might be used for! In high school they just wanted us to memorize formulas. But if anyone had told me that I could work out the trajectory of a satellite orbit or navigate from point A to point B on a curved surface (the Earth) I would have paid attention and not come out of my education with a brain so skewed to the verbal side.
Also, tell him he needs to develop me an E-Reader that can handle Arabic and other non Western script natively. Said device needs to be able to also read the text aloud in a natural voice. That is all.

Also, Hlvanburen brings up a very good point. Programming is good to know, but a broader knowledge base on how to make a computer network WORK is a more useful life skill. Once your boy is high school aged, have him shadow some of the IT gurus someplace you know and trust for a few weeks at a time. Hands on experience is priceless.

The two main strains of computer geekitude I’ve noticed (I’m a software programmer of two decades now) are software programming geekitude (my area) and hardware/configuration geekitude (not my area). It may take some time at this early age to figure out where Matthew’s passion lies if it is in these areas, or this is all just a passing phase. Some people are really into tinkering with hardware components, software configuration etc. to make ready-made things do something beyond their out-of-the-box behavior. This requires some basic understanding of software behavior and programming principles, but not to the level of dreaming in source code. These are the people who become “IT wizards” and fix up our networks and computers and such. I’ve never been one of those geeks. I prefer programming, a more abstract, ground-up reality where you make up a fair amount of the rules, but by no means all of them.
At the age of 10, he has all kinds of time to play around and find what excites him. I was also a TRS-80 BASIC programming enthusiast back in the early 80’s (middle school for me). Then I got into recording music, and left my TRS-80 to gather dust while I fiddled with tape recorders, sound processing effects and such. I came back to programming in college when I needed a major, and didn’t much like electrical engineering.
For learning programming, I rather doubt languages like assembler, C/C++ are a good choice for a 10-year old. These were a challenge for me in college. Whatever tool set makes it easiest to focuses on instruction flow (if/else, loop structures etc.) and basic data type selection should suffice for an introduction. It was BASIC way back when. It might be something better now. C++ is my strongest language, and I would consider it punishment for most children to have to learn that. I even sarcastically blab about it to my 5-year old kids when they start blabbing at me about their Wii Super Mario exploits that go in one ear and out the other. “Hey son, have I ever told you about the difference between run-time polymorpohism and compile-time polymorphism…”.

tscott, thanks for the vote of confidence. Rod has shown in several posts that he is anything but shy about connecting with his local community. As for the rest, he and I were good “neighbors” well before he moved to Philly. ‘Nuff said!
As for this thread, shorter Franklin: I heartily agree with the many who’ve espoused the basic principle of exposing Matthew to as much as possible, and let him discover where it interests and talents may lead him. The specifics I’ve offered were (perhaps not clearly enough) from my personal experience, and a firm belief that education should be based on principles and basic skills. A well-educated person will be prepared to acquire content anywhere with such skills.
Something I learned from the relationship I had with my late mother: A child may often be smarter than the parent, but it is the very rare child indeed who is wiser. Parenting is about teaching the child wisdom, both the contexts and contents our much longer lives have brought us, but especially in the rational, critical thinking skills necessary in recognizing wisdom when we encounter it for the first time.
At that basic level, I’ve neither met nor read about anyone wiser than my mother was. I am gifted by her wisdom well out of proportion to the genetics I acquired from her that gifted me with native talents she barely understood intellectually. I do my humble best to give my children the same, especially when — as smart as I think I am — they are indeed smarter.

Learning C++ is easy. Learning to program with it – as in writing programs quickly and efficiently – has a very high learning curve. That said, if you can only learn one language, learn C++.
Having done C, C++ and Java professionally, if the kid is a Mac fan I’d say dive into Objective-C. It’s much easier than C++ (and straight C).
And it’s the language used to write iPhone apps, which isn’t a bad thing.

There was an article a few years back called “Why Johnny Can’t Code” touting a return to BASIC for teaching the, well, basics of computer programming concepts — recursion, getting the computer to make decisions based on boolean criteria. The language allows a gentle introduction to more advanced concepts, such as creating functions and passing values to them. At the same time BASIC is free of all the mucky muck of the C languages — 10 lines of code necessary to include on the appropriate libraries, define standard inputs and outputs etc. That sort of stuff will come in time, if it is necessary to work on specific systems.
The author of the article mentioned Chipmunk basic, which is a free download for Mac, and has some pretty cool graphics capabilities. The Applescript scripting language (included with Mac Systems, and accessible through the Script Editor) also allows the teaching of the same concepts — recursion, decision, functions, calls — while also getting into more object oriented concepts, manipulating folders, files etc. Plus if you write on a mac, it would be incredibly useful to have a good scripter around the house. My only really deep knowledge of programming type stuff comes from Applescript — I would recommend finding the online tutorial Applescript for Absolute Starters — free PDF on the web, and then Applescript 1-2-3 if you guys choose to pursue this line of programming knowledge.

Encourage his interest and try to channel it in a positive direction. We have a kid who’s a natural at math stuff and we’ve struggled with the same dynamic. Try to give him opportunities to both learn from knowledgeable people in the field, take courses, etc., and to serve others with his relatively advanced knowledge. For example, you have no idea how many people over 50 struggle with computer concepts and use. He might be able to help folks like that, and he just might gain some valuable non-computer wisdom from those same elders in the process.

One other point. When he hits HS, if his interest is still there, talk with the administration and see if he could job-shadow the school tech staff. The school where I used to work often used student interns. Not only did it give the kids some valuable experience (and one credit towards graduation), but it also helped the school out in an area that is often crunched by budget.

One of my favorite (computer geek) moments in cinema was in “Star Trek IV – The Voyage Home”. They’ve gone back in time to the “present”, and Scottie is asked to demonstrate something on a PC. He sits there for a few seconds prompting it by voice. Finally, the person points to the mouse, which Scottie picks up and holds to his mouth, saying with that Gaelic lilt, “Computer?”
Contrast that with my least favorite moment, from the movie “Jurassic Park” (misnamed as any paleontologist can tell you). The (computer geek) girl looks at the screen of the newly rebooted computer and says (not verbatim) “That’s Unix, I know Unix.” The following scene shows her mousing through a graphical interface, not needing to type the simplest “cd” or “ls”. Anyone who has used a GI would have been able to do what she did.

You might want to look into something my brother the teacher has checked out–finding a bunch of kids like yours (believe me, they’re out there) and turning hacking into a sport, with teams trading off offense and defense. Like many marginally legal or moral adult pursuits, better they should learn it under adult supervision than on the street.

Another completely different way to go on this is to suggest learning how to make Turing machines – i.e. virtual computers. You can work on simple arithmetical functions (addition, subtraction, etc.). And then move on to more difficult functions (i.e. products, squares, etc.). The cool thing about ‘designing’ Turing machines for things like this, is that it involves trial and error problem solving skills. That trial and error method helps develop a ‘feel’ for how mathematical functions work, as if from the inside. Then if your son ever feels like doing recursive function theory, it’s not like learning a foreign language by rote.
The other cool thing about it is that it involves computers in a way that’s done with a paper and pencil. The break is good for the eyes.

I’m currently a computer science PhD student. Before I came back to graduate school, I worked as an engineer at a research lab. For the past two years, I’ve taught accelerated computer science courses for high-achieving teenagers through an organization that promotes educational opportunities for talented students. The course involves covering a year’s worth of material in three weeks. Most of my students started with no programming experience. Based on that background, here’s some thoughts on teaching CS to people like Rod’s son.
Entry-level CS instruction tends to follow four paths:
First, the “microworlds” approach. This uses languages like Scratch, Alice, or Logo to teach students to draw pictures, make simple animations, or tell stories. These programs tend to be very engaging, especially to those that don’t have much affinity for math, but don’t necessarily translate into more advanced programming skills in other languages.
Second, the vocational approach, teaching students about networking, maintenance, and system management. Very practical, but little to no emphasis on programming or the theoretical elements of computer science.
Third, robotics. Kids these days, they love the robots. I don’t know very much about this area, other than the Lego Mindstorms kits that another poster recommended.
Finally, the “sink or swim” approach, which teaches students in a mainstream language from the very beginning and doesn’t shy away from the math content. On the positive side, this is the best preparation for serious programming at a college or professional level; on the negative side, some students find it boring, especially in the early going.
Based on Matthew’s interests, I think one of these four approaches would suit him. Does he want to program, but he isn’t interested in math? Go with Scratch or Alice. Is he interested in hardware and putting things together? Some combination of vocational material and robotics may work well.
Unfortunately, I don’t know of a good textbook that covers the material I’d like to teach in a class. I’ve seen some of the curricula for homeschoolers, but frankly wasn’t impressed. If any commenters know of a good entry-level CS book, please recommend it.
That being said, here are some resources I’ve found useful in my own teaching:
Guido van Robot is a microworld that involves writing programs to move a small robot around a grid and pick up and put down markers. The underlying language is simple, but you can use Guido to solve some challenging problems. Guido is a good way to start programming, then move into a more powerful language like Python. I recommend this as a starting point for a ten year old interested in programming.
MIT’s Scratch has gotten a lot of good press recently. It uses animations and has an online user community where people can upload their work. May be better than Guido for some students.
If Matthew is interested in math, I recommend Project Euler. The site gives a large number of problems that mix math knowledge with programming practice. Some are extremely difficult, but many are accessible. The site will check your answers and keep track of the problems you’ve solved.
I like Python for a general purpose programming language. It’s full-featured, but has a simple and clean style. I’ve taught my previous classes in Java, but I’ll probably switch to Python in the future.
I realize this has been a long post. I hope some of this information is helpful to Rod or anyone else interested in teaching CS.

I appreciate he is into computers now – and there seems to be lots of advice from knowledgeable people here that sounds good to me – but I wonder if you might not want to expand a bit – maybe try robotics – it is amazing what you can make with stuff you can pick up at a decent hardware or electric supply store not to mention kits – and of course – he can do programming to get the robots to do stuff as he advances. One positive thing about this is that
instead of prompting envy among other peers – they may think this is very cool and it will improve his status in their eyes.
My niece taught herself html at 12 – and set up her own web site re: toys that she liked at that time. This grew into a business when she got into high school, a job as a webmaster and now her own business. We joke and say she really did not need to go to college (although she of course did) because everything she needed to know she taught herself at 12. Sounds like your boy is going in the same direction.

Rod, I have absolutely nothing to add to this in terms of technical assistance; I know enough about computers to use one and that’s all!
I would only add that since he *is* only ten, (I feel sure you’ve already done this) have ongoing discussions about inappropriate content to be found on the web. Smart kids can get around parental controls on a computer – especially if they know more about said computer than the parent does. You’ve talked about how images, once in the mind, are so hard to erase. Keep the lines of communication open and make your expectations clear.

To reiterate some other posters’ points, I would sit him down and give him an explanation of right and wrong and how it pertains to what he’s likely to run into on the internet. Especially as pertains to gaining access to other people’s computer systems, and interactiong with other people.
Then I’d let him go crazy. If he really loves it, he’s likely going to find what he really loves about without you trying to micro-manage him and his interests. Help him along, but don’t try to steer him.
I suffered from the “steer” approach, and it backfired bigtime in my own case. Put me back years and years.

All I can add is this:
If you keep him busy learning stuff that he can be successful with in the short and long run, he won’t be as tempted to waste his time looking for stuff that can only be detrimental to his achieving his goals.
The saying “Idle hands are the devil’s workshop” applies as well to computers as anything else.

Don’t know if this has already been said, but…
Perhaps someone at your Church or at the Foundation has the knowledge and interest to be a mentor to your son — or perhaps they have a child like yours who would be interested in having a new friend.

This story sounds just like me growing up Parents bought me a saxophone in elementary school because I wanted to play it – I ended up not liking to play it so they sold it and we took the money and they bought me a Commodore 64 (you can guess how old I am now). I never looked back. I was enthralled with it – I bought books (still remember being under my covers with a flashlight after my bedtime reading the programming book I got), learned BASIC programming, went to college, learned all the popular languages of the day (Pascal, Assembler, C/C++) and now work full time making good money programming in Java.
What should you do? I say do what my parents did (which it sounds like you already started – you got him a computer). Next, buy him books on the subject – ask him which books to buy – he’ll know which ones interest him (systems programming? graphics? web? phone (iphone/droid) programming? There’s lots of different subjects – he’ll know what interests him). As he gains knowledge, it may motivate him to go to college and enter the computer/tech field. All you need to do is provide him with resources like the computer and books to get him started.
BTW: I was a HUGE arcade junky growing up – and its what initially drew me to computers. Being into video games isn’t necessarily detrimental. It can spark interest into the realm of computers and technology.

Rod, there’s been many great suggestions, your son sounds like he’ll be a natural with computers, sounds like no worrying career-wise for him.
If you want him to get started on programming, I suggest BASIC or some of the others mentioned designed for kids as the syntax is the easiest to understand.
For example, in BASIC to print the “Hello World” is something simple like:
10 Print “Hello World”
in Java it would be
public class Hello
public static void main(String[] args)
{
system.out.print(“Hello World”);
}
plus the higher level compiled languages would be a pain to set up with class paths and such.
Getting him older used parts and letting him rebuild a computer or small network may be interesting for him as well.
He may also like graphic design, computer aided design(CAD), or learning a geographic information system(GIS)-Google earth is a simple free start in that direction.
Personally, I wish they had those LEGO robots when I was a kid.
captcha: Arianism opportunities

No need to knock video games – those may be timewasters of a sort, but they have some basic things going on. If a kid is good at certain games, it is indicative of other cognitive abilities. It’s just a matter of channeling them.

I teach computer programming and I have written a web page on various languages that kids can teach themselves and the resources to do that – http://www.squidoo.com/teach-computer-programming.
I have 2 sons who are like your son – both has started their own businesses related to computers. One (17) fixes computers, the other (15)programs websites. Both are self taught. I think with a little support from you (ie writing the post you did, buying him some books) he will do just fine by himself.

Rod, certainly encourage his interest in computers, but counterbalance that with other things: music, sports, and so on. My oldest son, Sam, is a real computer nerd and now married to a computer nerd. He wasn’t happy about it at the time, but we forced him to play a musical instrument — he went from piano to clarinet — and he had to play a sport (his choice) through high school. He decided to run — x-country and track, skiing in the winter — and I still remember him whining at as freshman that he was going to such a rotten runner. Four years later, he was running sub 4:20 miles and ran in the state x-country meet and more importantly, his perception of himself expanded to include “runner” and it is a way that he still sees himself — not just nerd, but a musical nerd runner…
Best,
Mike

Rod, I would suggest you check into the local Macintosh Users Groups in the Philadelphia area. I did a quick Google search and found this list of PA MUGs:http://appleusergroups.com/locator/find/locate.cgi?state=PA
This page may be of help as well:http://appleusergroupresources.com/?page_id=394
While not as widespread or well-attended as they used to be, a MUG can be a good place to learn and share. Interacting with members can help your son better explore his options (programming, Web design, hardware, software, game design, etc.) and determine where his talents lie before you go out and buy a lot of expensive books and thingamajigs that may not interest him. Of course, you’d want to check in advance whether a given MUG would be accommodating to a precocious 10-year-old.
Good luck!
Captcha: “you wallowed” (Well yes, but that was hours ago; I’m much happier now!)

Another blog to enjoy!!!Thank you for visiting Rod Dreher. This blog is no longer being updated. Please enjoy the archives. Here is another blog you may also enjoy:
Most Recent Scientology Story on Beliefnet!
Happy Reading!!!

Mommy explains her plastic surgeryIn Dallas (naturally), a parenting magazine discusses how easy it is for mommies who don't like their post-child bodies to get surgery -- and to have it financed! -- to reverse the effects of time and childbirth. Don't like what nursing has done to your na-nas? Doc has just the solution:
Doctors say

Why I became OrthodoxWrapping up my four Beliefnet years, I was thinking about the posts that attracted the most attention and comment in that time. Without a doubt the most popular (in terms of attracting attention, not all of it admiring, to be sure) was the October 12, 2006, entry in which I revealed and explained wh

'Rape by deception'? Huh?The BBC this morning reported on a bizarre case in Israel of an Arab man convicted of "rape by deception," because he'd led the Jewish woman with whom he'd had consensual sex to believe he was Jewish. Ha'aretz has the story here. Plainly it's a racist verdict, and a bizarre one -- but there's more t

Subscribe

Search This Blog

Crunchy Con

About Rod Dreher

Rod Dreher is director of publications at the John Templeton Foundation, a philanthropy that focuses on science, religion, economics and morality. A journalist with over 20 years of experience, Dreher has written for The Dallas Morning News, the New York Post, and other newspapers and journals. He is author of the book "Crunchy Cons." Archives of his previous Beliefnet blog, "Crunchy Con," can be found here. He and his family live in Philadelphia.