![](/static/253f0d9/assets/icons/icon-96x96.png)
![](https://programming.dev/pictrs/image/8140dda6-9512-4297-ac17-d303638c90a6.png)
All the others have great suggestions but I’d just like to add there many open source projects out there and given example code of how something is done and letting him play with it can be tremendously helpful. For example finding some simple 3d programs and lettting him change the source code to do whatever he wants or just giving him a template like https://editor.p5js.org/1alimaze/sketches/IJpxIEME8 which I made when I was first learning and letting him play with the values and add more objects.
I agree, unless you doing low level stuff where you need absolute control you should use a modern language with proper abstraction just to save time. Most use cases where they use C++ can be replaced with Rust or Go as they aren’t saddled with years tech debt and bloat due to having mantaining backwards compatibility.