Strong programming skills can enhance many other careers both for utility as well as the discipline of thought.

I've begun to think there is a largely overlooked brain drain where very gifted people are drawn into IT careers where they'll grind away making decent money but not having as big an impact as their potential might suggest. Though companies will pay well, the pay doesn't scale to output capabilities. A very intelligent experienced developer can produce 10 to 20 times as much code as an average newly trained programmer, but gets paid maybe twice as much. Should've seen the VP of HR pale a few years ago as I explained why I wanted to change three programming positions into two principal engineer positions.

Along the lines of Dude's suggestion, I would suggest your son look for an Open Source project that catches his passion and learn new technologies in that context and tap other developers for insight and help. It's skill building, application building (both kinds), and potentially career building as well as possible community service creds if his school tracks that.