Computers are the most flexible tool in the engineers toolbox. When I grew up I think I was lucky to be born into the start of the home computer boom of the 80s. Computers like the BBC micro and spectrum were very easy to program, and because computers were so novel, our expectations of what could be achieved were easily within the reach of single programmer. Now were in the millennium, and PCs do so much more, the methods we use to program them are much more complicated. Learning to program has become very difficult on standard computing kit found in the home. So how should the next generation learn how to program?
One option I recommend to people who want to learn to program is developing on micro-controllers like the Arduino or Mbed platform. Those computers are of similar power to those in the 80s. While they are somewhat easier to grasp than PCs, you have to do the electronics yourself and you don’t really have a screen. You naturally end up being part programmer, part electronic engineer, which does Martin well but might not be exactly what you want to learn.