I program for a living so I'll mention this in case it helps your case - most of learning to program is learning all of the various constructs (variables, arrays, pointers (if applicable), data management, functions/tasks, if/elsif, case, loops, etc). The first language I learned was useless to have on a resume but it was enough of a foundation that I could quickly learn the syntax of the ones I needed to. I've worked in about 10 languages based on that foundation. Language fads come and go and languages have different strengths/uses so it is pretty rare that people learn just one and spend their whole career just doing only that.

I looked at the AoPS programming courses and their second one is OOP Python. I unfortunately don't know enough about Python to know how similar/different it is but I've done C++ and 3 other object oriented languages for work and the better your foundation is the faster you can pick the new ones up. If he wants to be a C++ guru then having a solid OOP platform will go a long ways. If AoPS does programming half as well as it does Math then I think it would be a great start.