I taught myself to program when I was 12 years old, bouncing between BASIC and C++ as I struggled to understand basic programming concepts. I believe my tour guide's son is around 18 years old, so the things that held my attention may not seem so interesting to him. He probably also has even less experience with computers than I did when I was 12. To further complicate matters, his first language is Nepali; although I am expecting he'll learn to program from English resources.
The software world has come a long way since I was 12 - so I'd like to know what resources, software and programming languages are out there for someone learning to program for the first time. I'm talking about starting from the absolute beginning i.e. What is a program? What is source code? What is a compiler? What is a variable? etc.