Did you know? DZone has great portals for Python, Cloud, NoSQL, and HTML5!

Dr. Axel Rauschmayer is a freelance software engineer, blogger and educator, located in Munich, Germany. Axel is a DZone MVB and is not an employee of DZone and has posted 228 posts at DZone. You can read more from them at their website. View Full User Profile

Eight important books for software developers

12.28.2010
Email
Views: 27089
  • submit to reddit

Each of the following eight books has greatly influenced how I think about software development.

Engineering

  • Design Patterns. Elements of Reusable Object-Oriented Software, Erich Gamma, Richard Helm, Ralph E. Johnson. Addison-Wesley.
    It pays to know all of the design pattern passively, because they have become common vocabulary between developers. I’ve found that the best way of using them is to let the ideas increase one’s knowledge and then start the design from the problem. I’ve also seen some ugly code where people started their design from the patterns.
  • Refactoring. Improving the Design of Existing Code, Martin Fowler. Addison-Wesley.
    No need to read throroughly here, but still contains many nice ideas one should be aware of.
  • The Pragmatic Programmer. From Journeyman to Master, Andrew Hunt, David Thomas, Ward Cunningham. Addison-Wesley.
    Tips for the craftsmanship of software engineering: what to automate, how to code, etc.
  • Effective Java (2nd Edition), Joshua Bloch. Addison-Wesley.
    Many important rules for everyday Java programming tasks: clarifications of the standard mechanisms, new techniques (some of them inspired by functional programming) etc.

Process and Psychology

Often technology is not the most difficult part of doing software engineering...
  • Extreme Programming Installed, Ron Jeffries, Ann Anderson, Chet Hendrickson. Addison-Wesley.
    The most technical book in this section, as it also contains comments on coding and more engineering related things. It is really fun to read about a process that is not described in a theoretical way, but as a pragmatic list of all the things one can do to improve teamwork.
  • Peopleware: Productive Projects and Teams, Tom DeMarco, Timothy Lister. Dorset House Publishing.
    As lame as "putting people first" sounds, this book makes profound (and exciting) sense.
  • Difficult Conversations. How to discuss what matters most, Douglas Stone, Bruce Patton, Sheila Heen. Penguin Putnam.
    A nice manual on human interaction that builds on the common sense most people alread have. If my head is filled with all these criticisms, misgivings and admirations concerning other people, then what do they mean? What should I do about them? When should I tell others about them, when not?
  • The Now Habit: A Strategic Program for Overcoming Procrastination and Enjoying Guilt-Free Play, Neil A. Fiore. Jeremy P. Tarcher.
    I do not like the title, but I like the content. This book is especially useful if you work mostly for yourself. It shows that being more efficient is not necessarily about discipline.

 

From http://2ality.blogspot.com/2010/12/eight-important-books-for-software.html

Tags:
Published at DZone with permission of Axel Rauschmayer, author and DZone MVB.

(Note: Opinions expressed in this article and its replies are the opinions of their respective authors and not those of DZone, Inc.)

Comments

Rogerio Liesenfeld replied on Tue, 2010/12/28 - 7:34am

Great list! Another essential book is "Code Complete" (2nd edition), by Steve McConnell.

Bob Manc replied on Tue, 2010/12/28 - 8:08am

"Clean Code" is in my mind the best programming book ever.

Cosmin Mutu replied on Wed, 2010/12/29 - 2:12am

:) guys, all books are great to read, except those that were not stated as junk ... so what I would like to see is an article named BOOKS YOU SHOULD NOT WASTE YOUR TIME ON :)

Axel Rauschmayer replied on Wed, 2010/12/29 - 5:48am in response to: sharpaw

Oh I would love to see the post “Books you should not waste your time on”! I am wondering if "Code Complete" shouldn’t be added to the “don’t bother” list. Now, *many* people seem to immensely like it. But I’ve started reading it and could not finish it (thus I’m not really completely qualified to make that judgement!). It gave me the impression of being too complete, more like an encyclopedia. I prefer books that are shorter and dispense clearer or more directly applicable advice. Can anyone who has finished the book comment?

Andrea Del Bene replied on Wed, 2010/12/29 - 11:06am in response to: bobmanc

I completely agree with you. "Clean code" is the best book I have read in the last years.

Comment viewing options

Select your preferred way to display the comments and click "Save settings" to activate your changes.