My teenage years were intensely productive. I had the right mix of mentors, synergy with my circle of tech friends and the limitless opportunity to create for the sake of creation. As most people get older the ability to do this goes away with having to pay bills. Living at home is one of the best times of your life to create.<p>My advice for you as an advisor is this: Teach him how to channel his energy and not be all over the place. Learning to be effective, disciplined and focused, on however many interests is critical. This one ability will serve him for the rest of his life if he can master it under your guidance. If you like, harness his energy into a particular direction for the odd project and let him chart his course otherwise.<p>This is for your son.<p>How to be in any situation:<p>- Learn to be a self-directed individual. Looking to others to be taught is not the path of a developer.<p>- Learn to be a self-study. Everything he will ever learn will always become obsolete. Years ago, some language and framework was hot, to be replaced by a new one today, and tomorrow.<p>- Don't fit in. The greatest gift of geekdom is being comfortable being unique and seperate, even from other geeks. Don't fall for the entreporn of fitting in, you resisted it all through out school, why give in to followers?<p>- Open: Give something 5 minutes to sink in before judging. Don't become a religious fanatic about your tools to fit in. Users don't give a hoot about what you code in, only if you can build something that solves their problem well. This is the single most mind closing thing you can probably do when you're young, forget about older.<p>- Become an insanely curious individual. Try to understand how people deal with information in their lives in any place. You'll get faster.<p>- Learn to focus your curiosity to have a start, and end point. This year, I made a goal of taking every little project I hacked on and simply launching it to it's own domain. It's been refreshing, only for $9/year per domain.<p>- Learn the difference between being a creator and a consumer. Playing games is consuming someone's world and can have it's value as long as it's not greater than the time you're spending creating.<p>What is worth doing at that age:<p>- Build for the sake of building.<p>- Experiment for the sake of experimenting.<p>- Explore your curiosity. Find new interests to explore and try to connect them.<p>- Don't prematurely optimize. Run as far, and fast as you can from any developer who talks about doing things perfectly but does not launch anything, ever, themselves because their projects are never done or ready to release.<p>- Learn the difference between building something that interests only you and helps others solve the problems they have.<p>- Release prodigiously. I still have code from the late 90's when I was 17 that's running just fine on the web. It's not pretty but the tens of thousands of hits on it remind me to fight confusing activity with results.