Hill Climb Racing 2 Industrial Deals Beauty Best Books of the Month Shop new men's suiting nav_sap_plcc_ascpsc Learn more about Amazon Music Unlimited PCB for Musical Instruments Starting at $39.99 Grocery Handmade Tote Bags Book a house cleaner for 2 or more hours on Amazon Transparent Transparent Transparent  Introducing Echo Show Introducing All-New Fire HD 10 with Alexa hands-free $149.99 Kindle Oasis, unlike any Kindle you've ever held AutoRip in CDs & Vinyl Shop Now FFII_gno

Required reading for software development professionals

Andy K
The list author says: "Collection of important books for anyone that wishes to become a respectable software engineer."
The Pragmatic Programmer: From Journeyman to Master
The Pragmatic Programmer: From Journeyman to Master
"Although the covered material may seem "trivial" these are the basics that you need to know and adhere to."
Refactoring: Improving the Design of Existing Code
Refactoring: Improving the Design of Existing Code
"The bible on refactoring techniques.  You need this book."
Head First Design Patterns
Head First Design Patterns
"A simplistic approach to teaching design patterns.  A must have."
Design Patterns: Elements of Reusable Object-Oriented Software
Design Patterns: Elements of Reusable Object-Oriented Software
"The classic catalog of design patterns.  You need design patterns in your mental toolbox."
Clean Code: A Handbook of Agile Software Craftsmanship
Clean Code: A Handbook of Agile Software Craftsmanship
"Nobody knows software better than "Uncle Bob".  Read this book and adopt the suggested techniques to help make your code more maintainable."
Joel on Software: And on Diverse and Occasionally Related Matters That Will Prove of Interest to Software Developers, Designers, and Managers, and to Those Who, Whether by Good Fortune or Ill Luck, Work with Them in Some Capacity
Joel on Software: And on Diverse and Occasionally Related Matters That Will Prove of Interest to Software Developers, Designers, and Managers, and to Those Who, Whether by Good Fortune or Ill Luck, Work with Them in Some Capacity
"This is a great collection of articles from Spolsky's website."
Code Complete: A Practical Handbook of Software Construction, Second Edition
Code Complete: A Practical Handbook of Software Construction, Second Edition
"Nothing needs to be said here.  McConnell wrote a classic."
The Art of Agile Development
The Art of Agile Development
"Need to get familiar with Agile?"
Practices of an Agile Developer: Working in the Real World (Pragmatic Bookshelf)
Practices of an Agile Developer: Working in the Real World (Pragmatic Bookshelf)
"Another great book in the Pragmatic Programmer Bookshelf series.  Strong overview of Agile"
Refactoring to Patterns
Refactoring to Patterns
"Another book full of refactoring heurstics."
Effective C++: 55 Specific Ways to Improve Your Programs and Designs (3rd Edition)
Effective C++: 55 Specific Ways to Improve Your Programs and Designs (3rd Edition)
"You can't call yourself a C++ pro until you've read Meyers' books."
Head First Java, 2nd Edition
Head First Java, 2nd Edition
"Learn the fundamentals of Java quickly."
Interface Oriented Design: With Patterns (Pragmatic Programmers)
Interface Oriented Design: With Patterns (Pragmatic Programmers)
"A great source to learn why it is important to write clean, concise interfaces."
UML Distilled: A Brief Guide to the Standard Object Modeling Language (3rd Edition)
UML Distilled: A Brief Guide to the Standard Object Modeling Language (3rd Edition)
"UML is a great tool to have to help convey your new designs and the current codebase structure."
The C++ Programming Language: Special Edition (3rd Edition)
The C++ Programming Language: Special Edition (3rd Edition)
"Required reading by any C++ developer... straight from the creator of the language."
C++ Templates: The Complete Guide
C++ Templates: The Complete Guide
"Very important reading to help learn how to use templates to perform generic coding."
The C++ Standard Library: A Tutorial and Reference
The C++ Standard Library: A Tutorial and Reference
"The bible to consult on questions regarding the C++ STL."
Effective Java (2nd Edition)
Effective Java (2nd Edition)
"Required for any Java pro."
Learning Python, 3rd Edition
Learning Python, 3rd Edition
"Great resource to use to add Python to your repertoire."
Programming Ruby: The Pragmatic Programmers' Guide, Second Edition
Programming Ruby: The Pragmatic Programmers' Guide, Second Edition
"Want to learn Ruby?  This is the bible on the language."
Test Driven Development: By Example
Test Driven Development: By Example
"Learn how to write higher quality software and have corresponding unit tests at the same time."
Test Driven: TDD and Acceptance TDD for Java Developers
Test Driven: TDD and Acceptance TDD for Java Developers
"Excellent source to learn TDD in the Java context."
Agile Software Development, Principles, Patterns, and Practices
Agile Software Development, Principles, Patterns, and Practices
"Another classic from "Uncle Bob"."
Professional C++
Professional C++
"Another excellent C++ source."
Agile Software Development with Scrum (Series in Agile Software Development)
Agile Software Development with Scrum (Series in Agile Software Development)
"Learn the fundamentals of Scrum."
Agile Estimating and Planning
Agile Estimating and Planning
"Pick up some ideas on how to estimate and plan your sprints better."
User Stories Applied: For Agile Software Development
User Stories Applied: For Agile Software Development
"Excellent insight on how to capture the use cases for a feature through user stories."
Programming Pearls (2nd Edition)
Programming Pearls (2nd Edition)
"Great resource for problem solving with the appropriate algorithms."
Pragmatic Thinking and Learning: Refactor Your Wetware (Pragmatic Programmers)
Pragmatic Thinking and Learning: Refactor Your Wetware (Pragmatic Programmers)
"Change the way you develop by updating your critical thinking skills."
Extreme Programming Explained: Embrace Change, 2nd Edition (The XP Series)
Extreme Programming Explained: Embrace Change, 2nd Edition (The XP Series)
"Get familiar with XP, you'll thank me later."
Continuous Integration: Improving Software Quality and Reducing Risk
Continuous Integration: Improving Software Quality and Reducing Risk
"Learn how to improve your development process and deliver products at a steady pace with CI."
Working Effectively with Legacy Code
Working Effectively with Legacy Code
"Michael Feathers provides a plethora of techniques to use for fighting the good fight with legacy code.  You definitely need this book."
Head First Object-Oriented Analysis and Design
Head First Object-Oriented Analysis and Design
"Nice overview of the core design principles such as SRP, DRY, LSP, etc."
Head First Software Development
Head First Software Development
"Lots of useful information here to help improve your software development process."
Growing Object-Oriented Software, Guided by Tests
Growing Object-Oriented Software, Guided by Tests
"This is the best book I've read about TDD.  Not only will it motivate you to write unit tests, but it gets you to realize that mock objects are vital for improving your design and thoroughly testing your applications."
Switch: How to Change Things When Change Is Hard
Switch: How to Change Things When Change Is Hard
"So you think you're a software development guru?  That's great, now how do you mentor others and inspire your team (and department) to adopt better practices?  This book is full of great analogies, solid research, and an action plan to help make your workplace an environment geared towards developing "quality" software."
Grails in Action
Grails in Action
"Tired of the mundane JEE frameworks of yester-year?  If you're constrained to a JVM environment (and don't want to learn  JRuby for RoR) Grails is breath of fresh air in the web development arena."
Programming Groovy: Dynamic Productivity for the Java Developer (Pragmatic Programmers)
Programming Groovy: Dynamic Productivity for the Java Developer (Pragmatic Programmers)
"As the JVM continues to be the platform that keeps Java alive (the language is dying), Groovy should be one of the platform languages on your toolbelt."
Programming Clojure (Pragmatic Programmers)
Programming Clojure (Pragmatic Programmers)
"Remember our old functional friend, LISP?  He's back with a vengeance on a JVM near you!"
Unicode Explained
Unicode Explained
"True professionals know how to interpret bytes for differing character sets.  ASCII isn't for everyone!"