Puh
Also fangen wir erst mal mit den unterschiedlichen Sprachen pro OS an:
- Android-Apps schreibt man in Java; das OS basiert auf Linux, welches (ebenso wie Java) in C/C++ entwickelt wird
- Windows selbst ist groesstenteils auch in C/C++ geschrieben, Anwendungen entwickelt man in .NET mit C# oder Visual Basic (*schauder*)
- In der Apple-Welt ist Ojective C angesagt, was ebenfalls ein entfernter Verwandter von C ist
Dann gibt's natuerlich noch JavaScript, womit man heutzutage Web-Anwendungen entwickelt, die im Browser laufen (und ggf. auch das Backend dazu in node.js).
Aber die Sprache ist eigentlich garnicht so wichtig, anfangs geht's erst einmal darum die unterschiedlichen Konzepte zu erlernen und wie man an Problemstellungen herangeht.
Mit C wuerde ich nicht anfangen, wenn dann eher mit Java oder C#, ggf. auch Pascal bzw. Delphi. Die Entwicklungsumgebungen sind inzwischen sehr maechtig und umfangreich, egal ob das nun Eclipse oder Visual Studio ist. Von allen gibt es kostenlos nutzbare Versionen (teilweise im Funktionsumfang eingeschraenkt, aber das spielt anfangs keine Rolle).
Erfahrungsgemaess steht und faellt der Spass am Programmieren aber an einer konkreten Aufgabe, die es zu loesen gilt. Falls dein Sohn gerne auch mit Hardware bastelt, waere ein Arduino oder Raspberry Pi interessant; damit lassen sich dann diverse Hardwareprojekte umsetzen ("Messen/Steuern/Regeln").