|
Why do we write software? What drives us to put finger to keys and create something? There are basically two classes of answers I hear 1) it´s a great job (== $) and 2) I just love writing programs. If you could read people´s minds I bet you would find that the best programmers all pick answer number two. You would also find that most programmers pick answer number one.
One of the things that most motivated me to become a programmer was a book my father gave me when I was around 13 (23 years ago). It was called Etudes for Programmers and I rank it as the best book most programmers have never read (and probably never will). Written by Charles Wetherell in 1978, it presents a series of classic programming problems including the map coloring problem, programs that output their own source code, and a lot of other very interesting and sometimes very hard problems. Its tone is light, it's easy to read and impresses you with the power of algorithms and the power of writing code. It is not a vain puzzle book. If you can solve the problems in Etudes unaided you are well on your way to being a great engineer. As I went to write this I discovered that I was not alone in my appreciation for this forgotten book. EBay has auctioned them for $270 and frankly it´s worth the money.
I checked programming books on Amazon and found that the number one programming book (at this moment) is Head First Design Patterns. You can´t meaningfully compare Etudes with a book that sells itself like this:
Most importantly, you want to learn the "secret language" of Design Patterns so that you can hold your own with your co-worker (and impress cocktail party guests) when he casually mentions his stunningly clever use of Command, Facade, Proxy, and Factory in between sips of a martini. You'll easily counter with your deep understanding of why Singleton isn't as simple as it sounds, how the Factory is so often misunderstood, or on the real relationship between Decorator, Facade and Adapter.
With Head First Design Patterns, you'll avoid the embarrassment of thinking Decorator is something from the "Trading Spaces" show. Best of all, in a way that won't put you to sleep! We think your time is too important (and too short) to spend it struggling with academic texts.
It´s not worth a link. Just above Java for Dummies (maybe). If my dad had given me this instead of Etudes I might just be driving a truck today. |