I will beg to differ from a lot of the opinions on here. What do you want your son doing most of his time with this notebook....playing games or leaning to program?
I think you should avoid a gaming type of laptop for a couple reasons i'll that i'll mention later. Are you stuck on him using windows? If not the Mac would be an EXCELLENT machine to learn on (its got a true unix type shell). A fine machine would be a macbook air (maybe a 2012 version). Any machine even with intel graphics in the last few years can do light gaming just fine. Intel graphics have actually become quite good for what they are.
The problem with gaming machines are your trading one thing for another. Generally they are heavy (less portable), more fan noise. Also like i said what do you want him doing wasting his time play games or learning to program? If he gets a notebook that can plan a lot of games guess what he might do with most of his time
If you still want windows there are still options (though i think the mac is the best). You could install virtual box with a linux distro and would give him the same flexibility as a mac. There are so many fine languages to learn on when you have a Unix Type Shell:
Python (& django framework if he would want to try his hand at web development)
Go
Rust
Ruby (& Rails framework if he would want to try his hand at web development)
C/C++ (Very good language but might be rough for a newbie)
You can still learn to program in windows but a lot of people get intimidated with the visual studio ide. Visual Studio express editions are free. He just wants to start out creating console apps though in the UI Design.
So if i were to recommend a windows machine it would be something thin & light with 8GB or ram if you can get it (so you can run a vm with linux if needed). Maybe a used lenovo X1 carbon on ebay.
Oh yes and i am a programmer

.