In the intro, Michael describes computer programming as magic, and I believe that also captures the sense of fun and excitement I have long felt in working with computers:
Computer programming may be as close as we get to magic in the real world: we type incantations into a machine, and—if the incantations are right—the machine does our bidding. To perform such magic, computer witches and wizards rely not only on words, but also on wands, potions, and an ancient tome or two. Taken together, these tricks of the trade are known as software development: computer programming, plus tools like command lines, text editors, and version control. Knowledge of these tools is perhaps the main line between “technical” and “non-technical” people (or, to put it in magical terms, between wizards or witches and Muggles). The present tutorial represents the first step needed to cross this line and learn enough software development to be dangerous—to be able to cast computer spells, and get the machine to do our bidding.
The web page is free itself. There is an ebook version available to purchase as well.