A few months after I'd left I got a phone call from the guy who'd taken over the project - he rang specifically to compliment me on the code and how easy it was for him to understand what was going on and how much better that had made his work. Didn't really know how to respond as I've never had that before, but it was nice.
Not blowing my own trumpet, so to speak (although it is something I'm kinda proud of) but to provide a counter data point to your PM's
Code that is: consistent in style and approach (even if it's different to mine) easy to to reason about has clear comments detailing why something was done the way it was
is hard to do consistently, and very often stands out from the spaghetti code that's present in other parts of the system.
The reason I do this is firstly to let the person know I appreciate the effort they have gone to, and secondly to signal to the other developers on the project that this is something worth trying to attain, and at least one person values these things.
One of the great things about joining a well-written project is that usually I learn something new. If that guy was so struck by your code that he called you up, I bet he learned a few things, too.
As in the OP's story, sometimes the code I learn most from isn't immediately obvious, and I have to "go with it" for a bit before I see what's happening. But that takes some openness, perhaps something like what Zen folks call "beginner's mind."
There are times when, like you, I have to start tearing things out and rewriting chunks of functionality, but in general I think programmers are too quick to take that step. My PM anecdote taught me the importance of reading other folks' code charitably, really trying to understand why they made the choices they did, and doing my best to respect and follow their approach. Textual interpretation has the "principle of charity," and reading code probably should too.
You mean a lot of persons? If you don't, I wonder where you got this from. Personal experience maybe?
Anecdotic: I have always been good at sports, popular, and confident, and I criticized this article because he used a kind of link-bait title (should have been "Today I learned about inheritance and it's awesome", something like that), and he also turned out to be selling programming books like he was an expert, which is scammy, and reinforces the fact that you can only find good books through recommendations from your peers.
Does it follow that his book is bad or wrong because it was not written with understanding of this aspect of polymorphism?
All of this blew me away."
I'm fairly certain this is a lie, given the way you've presented yourself in this thread.
Either way, I don't see how any of this matters. I explained why I criticized the guy, and instead of working on that, you tried to undermine the anecdotal part.
Also, it wasn't an ad hominem, since there wasn't any argument being debated. Get your fallacies straight.
I guess this is why you have 9999 submissions with 1 point. To be able to go around downvoting and incorrectly calling people out on a fallacy (the new trick you have learned).
I don't get it. What's the point of replying to a perceived false accusation of ad hominem with three more ad hominems?
"Get your fallacies straight", "I guess this is why you have ...", "(the new trick you have learned)"
I must have corrected the 'ad hominem' thing at least 5 times today, so I'm tired. It's not ad hominem if it's not trying to undermine an argument (it's just insulting or trolling), and it's not ad hominem either if it's relevant (eg: programmer does not know the basics, that fact comes to light, and is used against him in a programming discussion).
It's ok if that upsets you.
I feel ashamed when I touch it I dirty it up.