Top positive review
This is hands-down the best programming book I've ever read
Reviewed in the United States on January 2, 2019
How many have I read? Cover-to-cover, none except this one. But I've had a habit of leafing through software books for the past 15 years and collecting ones that interest me.
There are many classics, like "The C Programming Language," or Knuth's "The Art of Computer Programming" series. Then there are modern classics, such as "Design Patterns," and more recently "Learn Python the Hard Way." But this book excels them all in several ways.
The programming world has long-lacked a normal approach to itself for outsiders. This is why so many programmers are self-taught. We work in a budding field that still hasn't come of age. If the authors continue to revise and improve this work, I would go so far as to say this might the _the_ classic for introducing practical-minded outsiders to the befuddling world of computer programming.
I've always been a geek at heart, but my interests expanded easily past computers to things I can understand better. I found programming books verbose and filled with not enough "why" answers, except when those "why" answers served as rationalization for the author imposing their bias and subjective understanding of various problems onto your entire view of computer science.
The Pragmatic Programmer does not do this. It assumes you are intelligent and can think for yourself about problems, and need help solving them, but not necessarily to be told _how_ to solve them. So much of "teaching" software development is just faulty teachers trying to impose implicit software paradigms on incomplete problems and expecting you, the learner, to be not only satisfied with the completeness of their answer, but to understand why they picked the particular subjective approach that they did.
In truth, this happens in all fields, but it gets especially religious in the field of computer programming. Most people apply the reverse of the sour-grapes fable from Aesop to their own programs. In other words, "My programming grapes are so juicy and sweet that everyone else's in comparison taste quite sour."
Programmers love to take the religious experience of making a computer do something and assume that they should be all-powerful just because they figured out an effective, repeatable way to solve a problem. News flash: There are 1000 ways to tell a computer to do the same thing in 1000 different programming languages. The real test is not whether your software works, but if it works well enough given the constraints you faced in creating it.
So few people understand this and think it's just about the code. It's not about the code, it's about problem solving, and not just formal problem solving, but real-world and practical problem solving. What problem does your software solve, and does it solve it the most effective way you can think of? If you've been frustrated by the approach of most software books, you should give this one a try.