The Lounge is rated Safe For Work. If you're about to post something inappropriate for a shared office environment, then don't post it. No ads, no abuse, and no programming questions. Trolling, (political, climate, religious or whatever) will result in your account being removed.
Advice I got from my former boss at a medical research facility? Go into robotics and AI. There will be no shortage of jobs that both pay well and challenge you to continue to learn and grow. If he has any interest in it, give him the means to explore, learn, and most importantly enjoy it.
For the love of your deity of choice do not be like my dad. He gave the impression that it doesn't matter if you are happy with your job or not. It is your job and you should do it because that is what defines who you are as a person.
lol - "diety of choice" - cleaning laptop screen now. Yes, there are jobs that pay $$ which you hate and jobs that don't pay that you love... then there are those jobs that pay $$ and you love (like mine).
<italic>Stuck in a dysfunctional matrix from which I must escape...
"Where liberty dwells, there is my country." B. Franklin, 1783
“They who can give up essential liberty to obtain a little temporary safety deserve neither liberty nor safety.” BF, 1759
Whatever gets him fired up enough to stick with climbing the programming learning curve long enough to start to do interesting things. I usually suggest games based on my experience, but whatever works.
When I used to teach Java to HS students, the very first in-class lab was to compile a provided program. The program we provided was "wumpus". It was a very simple text game -- we told the user to enter a number between 1 and 10 to indicate which room they want to look for the wumpus in, we read that number, then compared it to a hardcoded answer. If they picked the right number, we printed out that they found the wumpus, if they didn't, we printed out that they didn't find the wumpus. End of program. We gave them 30 minutes to do the lab, and by the end of it we had them hooked -- we usually had all 20 students asking us how to extend it, each in their own unique way.
We used that program to introduce variables, boolean expressions and if statements, loops, user input, etc. Each lesson had an in-class lab, and most of the students immediately returned to that original wumpus game code to add some new feature, often based on what they'd just learned.
So yeah, whatever fires him up enough to hook him. I'd suggest you start simple like our wumpus game did -- maybe give him a program that asks whether the robot should move forward straight, forward left, or forward right, then moves it. Then start helping him extend it to do more interesting things with the robot.
We can program with only 1's, but if all you've got are zeros, you've got nothing.
I've been teaching programming to my grandkids; 10 and 12 years old.
I decided the first thing a programmer needs is a computer, so I bought them a kano (www.kano.me), which is a Raspberry Pi based kit designed for kids who want to learn about computers.
The kano comes with a variety of things that can be used as a base for programming learning. The two that got the most traction with my grandkids was Sonic Pi and Scratch. You don't actually need the kano for either of these; you can play with them on windows or macs just as well, maybe better. For example, the version of Scratch on the kano is older than the version you can get online (scratch.mit.edu). Also, the online version requires Flash, which doesn't run on the kano, so you're stuck with the older version.
Anyway, Sonic Pi is awesome; it combines programming concepts with music, math and science, and can be used to explore any of those concepts fruitfully.
Scratch is also fantastic. It is a visual programming environment, with an immediate gratification that pulled my grandkids in enthusiastically. Shouts of 'Mom, come look at this', etc. Scratch does have some limitations, but it does get important concepts across, and there are a variety of pathways to more complex applications. For example, there is a similar but more advanced environment called Snap!. Or, the kano version of Scratch is written in squeak smalltalk, and it is possible to break into the smalltalk environment and make your own extensions, for whatever you want to do.
The arduino sort of path others have suggested is also really cool. Its more of a hardware project path, which can be anything from hooking a camera up to the Pi, to making lights blink, to robots and other amazing things. For a software guy like me, though, its a little intimidating.
If you ever used RS-422 or RS-485 you'll never go back. And if you've used old process control protocols like Modbus upgrading to CAN protocols like CANOpen or J1939 makes life a lot simpler.
Forget all about request-response, peer to peer objects are much easier to use once you get up the learning curve. The real trick with CAN is tuning your soft timers (you need a lot of them for a good CAN stack). Get the transmit slots right and you get a phenomenal thruput compared to RS-485.
Any bets the VW hack was accomplished through the car's CAN bus connection? It's extremely easy to spot a tester being plugged in with CAN and J1939.