3 ms·
1) Collaboration. Figure out some way he can work with other people his own age, talking to them about code and coding. The sooner he starts clearly communica
by roguecoder 14y ago
1) Collaboration. Figure out some way he can work with other people his own age, talking to them about code and coding. The sooner he starts clearly communicating his insights the easier his life will be.
2) Whatever coding he thinks is fun. Even precocious childhood (and the best parts of adulthood) are about play. I'd encourage automation and code in as many areas of his life as possible: let him get a smartphone if he writes an app for it first. Let him get hosting when he finishes his game. Rewards are a great way to guide without getting in the way of letting him do what he thinks is fun. Even if he wants to head off into writing prolog code it's not likely to do any lasting damage at this point ;-)
3) Hardware/networking. Much of good programming comes down to interacting with and adapting to users; much of good networking and use of hardware comes down to ignoring the users and telling them what they should do. Let him disassemble boxes, put them back together again. See if he can scavenge working machines from discarded towers. If there's a local non-profit that refurbishes machines they are a great way to get into this and find a good community.
4) Other things that enhance a sense of aesthetics, communication and creation. Musical instruments are popular, public speaking or theater help enormously in getting ones ideas out into the world, reading and writing poetry is fantastic training for creating clean code. A design background and art classes can be enormously beneficial when doing web development.
5) The history of computers and software. If he learns about Turing and Hopper and Kay as people it'll make the contributions they made to software that much more interesting, and again it brings it back to "software is fun in part because it is about people." Lego Turing machines and cutting up wire into nanoseconds and fooling around with Scheme and listening to Steele's talk on How To Grow A Language are all great ways to start feeling like you are part of a larger community, doing amazing things together, rather than a lone magician in a tower.
- j45 14y agoI really agree with the choice of pursuing an interest in music. Understanding how rhythms, counts, and more come together to make something greater is fundamental to the building of software. Learning to find the patterns in music is much like finding the patterns in a problem, and a solution to know you 'got it'.