As the title suggests, 97 Things Every Programmer Should Know is a buffet table of delicious best practices including small functions, unit and performance testing, version control, command line tools and more. However, just as many chapters focus on personal traits such as perseverance, reflection, professionalism, continuous learning and other traits that only apply to the reader. Finally, there are stories from the trenches such as the importance of realistic test data, (there are a lot of error message that lead to "career limiting" events) as well as requirements gathering and project management.
From Chapter 25
It was getting late. I was throwing in some placeholder data to test the page
layout I’d been working on.
I appropriated the members of The Clash for the names of users. Company
names? Song titles by the Sex Pistols would do. Now I needed some stock ticker
symbols—just some four-letter words in capital letters.
I used those four-letter words.
It seemed harmless. Just something to amuse myself, and maybe the other
developers the next day before I wired up the real data source.
The following morning, a project manager took some screenshots for a
This book is an easy read, since each chapter is a maximum of 4-5 pages. This makes it a great book to read on the train, or as part of a brown bag session at work. However, none of these chapters provides enough background to start a new development exercise. For that reason, I would suggest this book to new programmers who are looking to become professional developers. Many of the concepts in this book are not covered in a university CS program, and developers need to learn the lessons at some point. For current professionals, I found the book to be an easy read (and a reminder for certain practices which you may have let fall by the wayside).
From the preface:
There is no overarching narrative: it is for you to respond to, reflect on, and connect together what you read, weighing it against your own context, knowledge, and experience.