When I look back at influential books in my life, one publisher stands out - Usborne. During the early 80s, someone at Usborne decided that kids needed to know about these new-fangled home computer things that were suddenly everywhere. And so they published a range of books filled with attractive illustrations and imaginative text that taught kids programming from first principles.
I suspect that almost every programmer of a certain age (certainly in New Zealand, where the whole range was very popular) could cite these books as being an influence. They were the first instance I can remember from my childhood where I was gaining knowledge by myself that my parents didn't have - that is a very powerful feeling for a 8 year old.
I didn't have all of the series, but my favorite was Write Your Own Adventure Programs, which taught how to create data driven text adventures of some complexity, including parsing text and how to logically lay out a program with subroutines.
I liked Write Your Own Adventure Programs so much that I continued to pour over its stinky pages even after the cat urinated all over it. As a young teenager, I used all the techniques contained within to write a couple of elaborate adventures for my friends to totally ignore.
Perhaps the most remarkable entry in the series was Machine Code for Beginners - a decent stab at teaching pre-teens the principles of assembly language. I still remember the pictures of robots putting slips of paper into boxes each time I manipulate pointers in c++.
I am not the only one who fondly remembers these books. My friend Simon Jansen has been collecting old copies for a few years. He went to the trouble of actually building a 8-bit computer capable of running the program listings! His reviews of the Usborne series are well worth a read.
Two years ago I left a comment on Simon's blog saying it was a shame the today's kids didn't seem to have access to the same type of material, but I was wrong. Usborne is still writing these books, teaching programming with Scratch or PythonBoth good choices. I would possibly use Javascript, for its ubiquity if not ease of learning and they have made the original booksNow long out of date I learnt from available for free.