Books I Read about Programming
Thursday, October 20, 2011 9:42:49 PM
Now Reading

Growing Object-Oriented Software Guided by Tests
This is a book with an actual application created step-by-step. I am about half way through it, maybe I will finish reading it this year.
The book's web site...

The Art of Unix Programming
This is a book of why and not how in programming, and more precisely why are programs made the way they are in the UNIX world. The book starts with a short history of UNIX, continued by a series of concrete, real world examples and the motivation behind their design. This is a must-read for any programmer, not just UNIX / Linux programmers.
Read the book online or order it here...

Growing Object-Oriented Software Guided by Tests
This is a book with an actual application created step-by-step. I am about half way through it, maybe I will finish reading it this year.
The book's web site...

The Art of Unix Programming
This is a book of why and not how in programming, and more precisely why are programs made the way they are in the UNIX world. The book starts with a short history of UNIX, continued by a series of concrete, real world examples and the motivation behind their design. This is a must-read for any programmer, not just UNIX / Linux programmers.
Read the book online or order it here...
Recently Read

Writing Effective Use Cases
This was boring for me. I give up at some point. It is very educative and probably highly applicable in certain teams and projects but it's far from universal. It is a book with valuable information but it may not be for everyone.
The book on amazon...

The Pragmatic Programmer: From Journeyman to Master
The book is basically an older version of Clean Coder. It is very useful even in our days when many of the then revolutionary ideas are common knowledge. Also, the book offers an exclusive view over the brightest ideas of the late 20th century and reading it rises some nostalgic emotions.
I recommend this book to each and every programmer.
The book's web site...

Domain-Driven Design: Tackling Complexity in the Heart of Software
Probably the most abstract book I've ever read. It presents the principles behind Domain Driven Design, explains certain design patterns and their use in a DDD model. Even if the book is hard to read (I can't go more than 30-40 pages a day) it provides a unique insight and point of view about the problems with large enterprise applications.
More details on domaindrivendesign.org...

The Clean Coder
The latest book of Robert C. Martin as of writing this blog entry. I very much like the style of how Marting writes, but this book is even more absorbing. This is one of those unusual readings, not a book about code, principles or patterns. Instead it is a guideline for a professional programmer. Robert C. Martin exposes the reader to the most important principles about the code of conduct of a professional. My favorite chapters are "When to say NO" and "When to say YES", but each chapter has it's importance and charm. Almost everything said in the book is supported by Martin's own experience or by descriptive examples.
Everyone can find something new in this book, every programmer can learn something, can find something he/she did wrong in the past or can get the assurance that his/her approaches were correct.
The book on google products...

Agile Principles, Patterns, and Practices in C#
In this book, Robert C. Martin, explains the basic principles of Agile development. The firs couple of chapters introduce the reader in the world of agile development. Then follows an extensive list of design principles, design patterns and general best practices. I recommend this book to any programmer who wants to get familiar with the basics of agile programming and design patterns. If you prefer, you can read the Java version of the book "Acme Software Development: Agile Software Development, Principles, Patterns, and Practices".
More on amazon.com
Working Effectively with Legacy Code
This one is easy to present... So, you just inherited a software project from a fellow programmer / team and you have to work on this project. Let's say it was written in several different programming languages over several years. Many programmers "contributed" to the project, most of them being juniors. Yes, you have to modify and work with a legacy code base which probably defies all known programming paradigms. But the system works and you have to add new features, or some feature has a bug and you have to fix it. Of course nobody can tell you what to do and where to look ... Right then, you should look in this book. It will introduce you too the special techniques used and mostly required when you have to fix legacy code.
More on google books...

Refactoring: Improving the Design of Existing Code
If "Working Effectively with Legacy Code" explains how to apply and use different refactorings on a legacy codebase, this book presents the refactoring techniques themselves. The reader will learn a set of well known refactorings, how to apply them and why are they good.
More on pearsonhighered.com ...

xUnit Test Patterns: Refactoring Test Code
I almost forgot about this one. I actually did not read the whole book, but I read a lot of it, most of the time I used it as a reference book for unit testing. This book helped me learn unit testing and see the whole testing process differently. It was the start of my journey toward TDD.
Find out more on xunitpatterns.com

Code Complete 2nd Edition
Does this book require a description? Well, if you don't know it, you should. This book, even if it's pre-agile era, is a masterpiece. This is an extensive presentation of object oriented programming. It starts with the most basic principles like variables, functions / methods, classes, etc. and finishes with complex designs and theories. Some parts of it can now safely considered outdated, but most of it is still what we, programmers, do day by day every day.
The book even has it's own site! Check it out ...
Looking Forward to

Pragmatic Thinking and Learning
The book's web site...

The Passionate Programmer
The book's web site...

Patterns of Enterprise Application Architecture
The book's web site...

Clean Code: A Handbook of Agile Software Craftsmanship
The book on the ObjectMentor's blog...

Agile Testing: A Practical Guide for Testers and Agile Teams
The book's web site...
MORE DETAILS ABOUT THE BOOKS COMING SOON!






