I would like to add my voice to those who are saying "let him program." I understand your concern, but if he is spending that time programming, then he is learning a great skill that he can use later in life to make pretty good money. I look upon people who program without pay to learn the same as I look upon people who are in school for other things. Obviously, no one is paying you to go to school, but the future benefits are far more valuable than trying to get a job without education. Pulling a few all-nighters, as long as he is living up to his other responsibilities will probably help much more than it will hurt.
Thomas Paine: "...arms...discourage and keep the invader and plunderer in awe, and preserve order in the world as well as property. ...Horrid mischief would ensue were (the law-abiding) deprived the use of them."