I also agree that "changed my x" is a bit of a stretch; perhaps it's hyperbole and should be taken as such. There are very few "things" that change one's life. Perhaps being in a war, or a natural disaster or some such, having an encounter with death but averting it or some such event could singlehandedly change one's life, but I doubt that reading a book or a set of books is one of them.
Somehow related, Google right now demands interviewees to prepare using the Cracking the Coding Interview book. Pretty much it's like someone sells you a door and hands you a set of lockpicking tools instead of you using the key to enter.
This is a sign, that in order to solve the problem, you must move on to a job that isn't the problem.
I think the problem are the people who can’t abstract the message of the book and instead use it as their reference for absolutely everything, over-engineering the hell out of things. When I’m asked the sort of questions you describe, I also just ask if they could instead explain the problem, because being able to solve problems is all design patterns are about. If they can’t, I would respectfully ask how their knowledge of the design pattern will then help them in their job.
Advocating for a perverted cloudy way of overengineered sw that builds cvs and horrible enterprise sw.
There are much better ppl to read out there. Anyone actually writing long lived sw. Linus, sam neal, anyone actually DOING it rather than living off self indulgent books.
I think Fitnesse [1] is quite relevant. That said, not a lot of FOSS work from someone like him, to put the things he preaches in large and complex projects that we can look at the source and learn from.
The problem was with this person, not so much with the GoF book. In present days this person might have become an FP fundamentalist and come up with some exotic category theory quiz question that he was very fond of himself. The GoF book is now of course outdated but the idea of categorizing best practices from the industry was a good one. Unfortunately many good ideas will be abused by people who lack the common sense to know how and where to apply them. A similar thing has happened to the agile software development movement, to microservices architecture (every service is a microservice?!), unit testing (people trying to reach 100% coverage).
Abelson, Sussman's Structure Interpretation of Computer Programs also good recommend - helps show that whilst it's not magic, fact everything still works is magical
1. https://stackoverflow.com/questions/19546115/which-lang-pack... 2. https://eli.thegreenplace.net/2007/06/19/introducing-the-sic...
It doesn't do anything of the sort. It may try to codify some specific solutions to SOME specific types of problems, in a very narrow OOP'y context, but if "codifying coding as a sum or recipes" is what you took from it there's little wonder it has colored your view, so.
For me, there are books that had a negative impact on my work. The GoF book is one such book, and its impact on my development is so distructive I can't even begin to explain. It's not only because it tries to codify coding as a sum of recipes, but people reading it end up with the scary idea that there is only one way of doing things, and that one way has a clear name, and a single possibility for implementation. The GoF buffs are those that keep stressing the most autoerotic interview question: „describe me one design pattern, other than Singleton”.
Now worse than people who read the GoF book are people who dove deeper into the issue and learned about more design patterns from other books. One such people screwed my career development for 7 years because at one internal interview he asked me out of nothing about the „half sync half async pattern”, that solves a problem that he wasn't able to describe to me. And since I failed, I was forever on their s*t list.
I think there are good books that can influence your life in a positive manner, but those are incremental changes, things that add a few things here and there. I would expect to see on lists that „changed careers” books on programming languages, like Kernighan & Ritchie on C, or Stroustrup's or Alexandrescu's books on C++. Or books on fundamentals, like Hennessy and Patterson, like Tannenbaum's Network or Operating systems, Knuth, or Cormen&al on Algorithms. But since I rarely do...