I'm primarily a self-taught developer. Can anyone recommend some resources (e.g., books about professional software engineering practices) so that I don't end up like Bob?
I'm primarily a self-taught developer. Can anyone recommend some resources (e.g., books about professional software engineering practices) so that I don't end up like Bob?
To answer your question: The Pragmatic Programmer by David Thomas and Andrew Hunt, Writing Solid Code by Steve Maguire, and Code Complete by Steve McConnell.
Either people won't trust it's 100% anonymous, won't see an upside for themselves or maybe bad actors.
It's just as possible that Bob's colleagues were anally retentive simpletons that couldn't handle the truth of his code, as it is that Bob is a loosy-goosy house of cards coder whose results were always C- material (I've worked with both.)
Point being, if you want to keep your job you should aspire to be a good 'culture fit' and if you want to be a good developer then work with great people and read more source code than you write.
Books are good, but if you are new at the company or do not know how it works, find a few more senior folks who are doing well and ask them for advice. Run your architecture / solutions past them, ask for opinions, etc.
I think a vast majority of folks fired like Bob just did not listen to strong, non-subtle signals from the company trying to prevent the firing. My 2c.
I re-skimmed it recently, and it still held up, but the advice has influenced a lot of other writers so it may not feel as profound as it was then, but I think it's sound advice in terms of software craftsmanship.
It's also worth noting that Code Complete biases toward processes that work for a large company where there's lots of cross-team collaboration. The advice is good in general, but you should weigh certain parts less if you're working on a smaller company and especially a fast-moving startup.
Also Joel Spolsky's blog is fantastic.
Perhaps Bob was an engineer with a long record of success in other teams, who was surprised and justifiably defensive when his colleagues weren't happy with his work and demanded he do things differently for vague reasons that didn't make sense.
He's probably much happier now that he's in a more compatible team. Perhaps he's the guy in the photo.