hah. i actually have this in my list of book I recommended to junior developers. it’s not about software but the way of thinking and approaching the problem will make you a better software developer.
This is a recent book and I have not completed reading it but I know already is it destined to become a classic. If you are serious about learning how to understand and improve code, this is the book for you. (Full disclosure: Dick is a long-standing friend and one of the brightest and insightful guys around.)
This book is out of print but I believe it's a better read that Jon's Programming Pearls books. C is a great (and permissive) programming language. Jon shows how the language can be exploited for gain performance. Evil but effective.
The Hacker's Delight is exactly what Hank Warren intended--a collection of tricks and facts that programs can exploit. It's informative on many levels. It uses deep knowledge of how numbers (and other mathematical objects) work to compute useful information. And it shows how seemingly arcane information can be useful. For a programmer excited by the fabric of programs, it is a continual delight.
The first edition has a clarity and compactness that I find appealing. The second edition has additional material. When you get through all of the Delights you can read Knuth Volume 4 which embeds more arcane and useful knowledge.
What is the best resource which explains an outsider why developing software is hard and takes a lot of time in general? I'm thinking of a small accessible book (perhaps even a cartoon) that starts with a bunch of analogies, and then explains why those analogies are true in real life (this last part is important).
Agile Software Development, Principles, Patterns, and Practices - by Uncle Bob Martin
One of the most influential programming books I've ever read. The code is in Java, but it's east to follow even for a non-Java developer, and the truths are universal. Learn the most fundamental design and encapsulation patterns. Uncle Bob Martin is a legend. This book has probably made me tens of thousands of dollars.
Rapid Software Development by Steve McConnell, the same guy who wrote Code Complete, is a great pre-XP, pre-Agile book on the software development process that covers the waterfall and spiral models, evolutionary prototyping and delivery, and a host of other approaches.
reply