While I used to teach programming at Cambridge, I have never quite taught it like this before. I am now teaching programming to an 18 year old girl. She actually asked to do an internship with AESTE. However, after interviewing her I realised that she lacked the necessary domain knowledge to do the work that I require. However, since she was interested in programming, I offered to teach it to her anyway.
The way that I am teaching programming to her, is experiential. I gave her a one-day class in programming where I covered the basics of data-structures, algorithms and tool-chain. Then, I got her to write program that interested her. She likes simulations and started writing a planetary simulator with moons. Now, she is writing a real-time strategy game engine.
During the course of teaching her, I asked her what her plans were. At first, she told me that she wanted to study Mechanical Engineering but her reasons for doing so were extremely weak. So, I gave her some advice on how to choose an area of study and since she was really interested in programming, I gently nudged her towards computer related fields.
She does seem quite concerned about making money with her field of study and I had to keep stressing to her that you can make money in any number of ways regardless of what field of study she chooses. She still has some time to figure things out but in the mean-time, I will continue to encourage her in the right direction.