One question that children are often asked is, "What do you want to be when you grow up?" This really means, what employment they would like. This question needs an answer, definitely by the time one must look for work, so at the end of college, or high school, or when one stops high school and s...
My recommendation is to start from simple microprocessors, C language and similar relatively low level. If he starts with C#, Python or other "easy" language, it will be very hard to go deeply later. For exmaple: ATMEGA, PIC32 or similar.
The "what age?" question is from our resident ghost again. Not up to the usual standards for most of the ghostly postings. Still, until closed, it just might generate some traffic.
Back in the 80's that's how I did testing. The home unit staffed the QA dept. The wife, who knew nothing about computers, and even less about the "subject" of the program got the privilege of being the beta test division. If she understood what "data" to enter, and how, and could use the program from launch to report without asking "what now?" or crashing it, then it was ready for the crash test division.
Crash testing was a two-year-old with the keyboard on the floor in front of him. If his random key-banging didn't crash the program, I figured I'd pretty much avoided any user input errors.