Books For Programmers

I’ve seen many lists about the best programming books and I am sure there are a lot of books that are specific to a programming knowledge or technology – that I have not included in my list.

The books I have chosen are those that are meant to inspire, increase productivity and improve your programming design skills.

Note: This list has no particular order.

Code Complete 2

Steve McConnell

The main focus of this book to help you improve your programming design skills.


The Pragmatic Programmer: From Journeyman to Master

Andrew Hunt and David Thomas

This book focuses on the best practices of programming (i.e. what you should and should not do).


Pragmatic Thinking and Learning: Refactor Your Wetware

Andy Hunt

From the author of The Pragmatic Programmer, this book takes one-step back from programming and focuses on your everyday thinking and problem solving skills.


The Productive Programmer

Neal Ford and David Bock

This book will teach you different tools that you can use to make your programming life more productive.


Algorithms in a Nutshell

George T Heineman, Gary Pollice and Stanley Selkow

Unless you’ve memorized the implementation of every algorithm, this book is a handy desktop reference with pseudocode examples.


Alternate: Introduction to Algorithms

Thomas H. Cormen, Charles E. Leiserson, Ronald L. Rivest, and Clifford Stein

This book has become a staple in many undergraduate computer science programs. Containing much more information and details on algorithms.


Head First Design Patterns

Lisabeth Freeman, Eric Freeman, Bert Bates, and Kathy Sierra

The people at Head First have a way of explaining things in a straight-forward, non-technical approach – a good tutorial and desktop reference.


Alternate: Design Patterns: Elements of Reusable Object-Oriented Software

Erich Gamma, Richard Helm, Ralph Johnson, and John M. Vlissides

Also a common computer science textbook by the Gang of Four (GOF), this book has much more information and more detail on design patterns.


Clean Code: A Handbook of Agile Software Craftsmanship

Robert C. Martin

This book covers the best practices, case studies and first hand experiences with creating “clean” code.



Refactoring: Improving the Design of Existing Code

Martin Fowler, Kent Beck, John Brant, William Opdyke, and Don Roberts

This book covers the best practices in modifying existing code.



How To Design Programs: An Introduction to Programming and Computing

Matthias Felleisen, Robert Bruce Findler, Matthew Flatt, and Shriram Krishnamurthi

This book is geared to the beginning programmer and focuses on the design and creation of programs.



Structure and Interpretation of Computer Programs

Harold Abelson, Gerald Jay Sussman, Julie Sussman

Picking up where How To Design Programs left off, this book explores ways to look at code from an object-oriented point of view.



Coding Standards

Do you adhere to a certain coding style or standard when programming in your language of choice? If you are not following an official coding standard or a standard set-forth by your place of employment – perhaps you should start.

Why follow a coding standard? Standardize coding practices allow code to be more easily read by other programmers. Just imagine if you inherited code that was labeled as follows:

This might look like the code you wrote when you wrote your first program. However, if you saw this coding style in a professional environment you might have a difficult time understanding the meaning behind the variable names.

Coding standards are not necessarily dictated by the creator of the language. Many have just evolved into standards among the programmers who use the language.

I have compiled this list of several coding standards and styles. If want to start adhering to coding standards, I suggest you start with the official standards (if available). Also, check with your organization to see if they have a coding standards document already created.










If I left out your favorite programming language, check out the Coding Conventions for languages at wikipedia.

Do you know of any other coding standards resources that I should include in the list above? Please share in the comments.