Reviewer: Mike James
This is a classic and its 20th Anniversary edition, its second edition, give us a chance to catch up with it.
The Pragmatic Programmer is 20 years old and this new edition is a celebration of this fact. It is a hardback, unless you opt for the Kindle version and nicely produced. The Kindle version is even readable and this is partly because there isn’t a lot of code in it and so the layout is easier. To give you some idea of the type of book this is it is worth observing that there is an audio book version! Is this the only programming book that is available as audio? I can’t see it catching on to anything with a high degree of program code.
If you have heard about this book you most likely will have heard nothing but good about it, but there are some things to be said that you need to know before you buy a copy.
This isn’t a “how to” book it is more an inspirational self-improvement book angled towards programming. It does make reference to things that only programmers would know about, but it isn’t “technical”. It also isn’t a methdology book in the usual sense. It doesn’t cover agile, pair programming or anything similar, except as just a brief description. It certainly isn’t a theory book- it doesn’t do patterns or the ideas of OOP. It is best described as advice your mother might have given you if she was a programmer. It presents you with the programmer’s equivalent of “don’t run with scissors”.
You can get some idea of the content from some of the titles of the topics in the first chapter which is largely motivational in content:
- The Cat Ate My Source Code
- Stone Soup and Boiled Frogs
In Chapter 2 we have discusion of more programmer topics – DRY, Orthogonality, Domain Languages and Estimating. If you don’t know any of these ideas then you will enjoy learning about them.
Chapter 3 is about tools and here I disagree very much with the sentiment, which is something that is difficult to do with the rest of the book as it is so full of common sense. It takes the point of view that a text editor is your best tool – it’s the “don’t waste time with an IDE argument”. This is mostly silly, but many programmers still believe that working with a text editor that they integrate with is the most productive way of working. This misses the point that programming isn’t just about generating and editing text. A good IDE is a productivity booster and most certainly the easiest way to get started with, or learn a language, is to use an IDE.
Chapter 4 is more about general approaches to getting the job done – Design by Contract, Assertive Programming, Don’t Outrun Your Headlights and so on. Chapter 5 is called Bend or Break and deals with some of the problems of modern programming – decoupling, inheritance and so on. Chapter 6 a short meditation on concurrency without getting into the details.
From here we have three final chapters that return to to the inspirational and motivational topics such as
- Listen to Your Lizard Brain,
- Naming Things,
- Test to Code,
- Working Together,
- Pragmatic Teams,
- Pride and Prejudice
and so on…
This is a well written book that is easy to read. For many readers it will be enjoyable and almost inspiring. What isn’t so clear is whether at the end of reading it you will be a better programmer. It reminds me a lot of the tradition of making New Year’s resolutions which are so quickly forgotten.
If you are looking for a book that is fun to read and will make you think about what you are doing when you program, then you will want a copy of this book.
Original post: Source link