Code Complete, Second Edition

I recently finished reading Code Complete, Second Edition (Steve McConnell, 2004, 914 pages). And this was a fantastic experience.

This is a book I first got back in 2010, and I used it for reference a couple times since then. Last year, however, I decide to start reading it completely again, since I thought it could help me at work, in both software development (or software construction, as the book says), and also with organizational aspects around people and products.

The book is long, but it contains a huge amount of high-quality pieces of information and insights. And, the best of all, it is very solidly based on previous books and scientific papers, which turns it into some sort of literature review as well. But in an accessible and pleasant language, which is even better!

The topics covered goes from overview of where a software product is on the “technology wave”, to programming languages, high level architecture, to solution design, to software construction complete overview, to testing, to quality in general, to people and teams, etc.

Although there has been many developments since this version of the book was first published, it is surprising to see how much of the central questions and dilemmas in software development still remain surprisingly similar to what it was one or even two decades ago.

Of course, as the book also says, 10 years in Computer Science is enough to lay one or more abstraction layers on top of existing technologies, which makes some of older challenges disappear from our eyes. Out of sight, out of mind. For example, the book spends some pages discussing styling and formatting alternatives and their pros and cons. Even if this is still relevant today, I would argue that built-in formatting styles on most of the modern IDEs (Integrated Development Environments) make this less of an issue than it probably was before. Another example is the concept of goto, which the book also discusses, but which is something I personally have never met in my now 15+ years' career in and around software products.

To conclude, this book has lots of great insights, many of which made me reflect over my own experience, and it certainly has changed some of my perceptions and work practices. Even if not completely up-to-date, in some few areas, I would definitely recommend it as a great journey to learn, reflect and discover more about this fascinating field of computer programming.

1 comment:

Kist said...

É bom pra colocar o monitor em cima.