• We’re currently investigating an issue related to the forum theme and styling that is impacting page layout and visual formatting. The problem has been identified, and we are actively working on a resolution. There is no impact to user data or functionality, this is strictly a front-end display issue. We’ll post an update once the fix has been deployed. Thanks for your patience while we get this sorted.

Must Have Software Development Books!

m0ti

Senior member
Just wondered what people considered books that are an absolute necessity.

I'll knock off the super obvious Gang Of Four's Design Patterns to get things going (I linked to amazon.ca on purpose. You get it for $52 CDN, while at amazon.com it costs $55 american!).
 
Originally posted by: m0ti
Just wondered what people considered books that are an absolute necessity.

I'll knock off the super obvious Gang Of Four's Design Patterns to get things going (I linked to amazon.ca on purpose. You get it for $52 CDN, while at amazon.com it costs $55 american!).
I've never understood why people like this book. Almost everything in the book is based on 'common sense' programming. What's the big deal?
 
Originally posted by: singh
Originally posted by: m0ti
Just wondered what people considered books that are an absolute necessity.

I'll knock off the super obvious Gang Of Four's Design Patterns to get things going (I linked to amazon.ca on purpose. You get it for $52 CDN, while at amazon.com it costs $55 american!).
I've never understood why people like this book. Almost everything in the book is based on 'common sense' programming. What's the big deal?
No offense, but that's BS. While the GoF themselves admit that patterns are not unique or novel, they are the result of years of OO practice and professional discussion. A developer in the field doing his own thing w/o collaborating with smart colleagues would not discover all the canonical Design Patterns or other well-known patterns indepedently. At least that's what your comment suggests.

Hmm, other classics:
  • K&R C
  • Stevens' UNIX Network Programming (I only own volume 1 but the whole set is excellent)
  • McConnell's Code Complete
There are a lot more, but those are the ones off the top of my head.
 
Originally posted by: manly
No offense, but that's BS. While the GoF themselves admit that patterns are not unique or novel, they are the result of years of OO practice and professional discussion. A developer in the field doing his own thing w/o collaborating with smart colleagues would not discover all the canonical Design Patterns or other well-known patterns indepedently. At least that's what your comment suggests.

What I meant was that, if you're at least an above average programmer, then the book really offers no unique insights that would help you in any significant way. The only benefit of reading and understanding the book, I think, is that it outlines some common OO concepts (patterns) that you can use to better communicate with your colleagues.
 
Originally posted by: singh

What I meant was that, if you're at least an above average programmer, then the book really offers no unique insights that would help you in any significant way. The only benefit of reading and understanding the book, I think, is that it outlines some common OO concepts (patterns) that you can use to better communicate with your colleagues.
I know you to be a confident programmer, but unless you're a guru, I respectfully disagree with that assessment.

I think the popularity of the book and the patterns movement amongst both academics and professionals fully demonstrates many intelligent and normal people have learned a lot from the analysis, and as you pointed out, learned a lot about communicating some fundamental patterns in OO software with a standard vocabulary. Essentially where I disagree is you apparently place patterns somewhat on par (or just above) with basic OO concepts, i.e. encapsulation, polymorphism, etc. I hate putting words into anyone's mouth, but you dismiss patterns as if you're a genius (and I'm not saying you aren't).

In conclusion, a programmer would have to read thousands upon thousands of lines of well written code to learn many of the GoF and other patterns in the literature (as an aside, what's the percentage of production code that would be considered well written? Which patterns in source code do you adopt?). Like I suggested in the previous post, I can't see even the above-average B+ programmer having an excellent grasp of a majority of the patterns out there without years of hard-learned practice collaborating with other talented coders. Programmers are somewhat well-known for taking shortcuts. In this case, patterns are a shortcut to solving various common problems in designing OO software. Why reinvent the wheel yourself through years of practice when the literature is already there?

One last point. I think the readability and the full admission by the GoF that the patterns they've published are not novel (remember that's the essential quality of patterns: they are well known and reused) is one of its best selling points. Not everybody (but God himself, Don Knuth) writes TAOCP and not everybody reads it either. I think precisely where we disagree is that you feel well known means most good coders with some experience already know them just from day to day work.
 
I know you to be a confident programmer, but unless you're a guru, I respectfully disagree with that assessment.

I think the popularity of the book and the patterns movement amongst both academics and professionals fully demonstrates many intelligent and normal people have learned a lot from the analysis, and as you pointed out, learned a lot about communicating some fundamental patterns in OO software with a standard vocabulary. Essentially where I disagree is you apparently place patterns somewhat on par (or just above) with basic OO concepts, i.e. encapsulation, polymorphism, etc. I hate putting words into anyone's mouth, but you dismiss patterns as if you're a genius (and I'm not saying you aren't).

In conclusion, a programmer would have to read thousands upon thousands of lines of well written code to learn many of the GoF and other patterns in the literature (as an aside, what's the percentage of production code that would be considered well written? Which patterns in source code do you adopt?). Like I suggested in the previous post, I can't see even the above-average B+ programmer having an excellent grasp of a majority of the patterns out there without years of hard-learned practice collaborating with other talented coders. Programmers are somewhat well-known for taking shortcuts. In this case, patterns are a shortcut to solving various common problems in designing OO software. Why reinvent the wheel yourself through years of practice when the literature is already there?

One last point. I think the readability and the full admission by the GoF that the patterns they've published are not novel (remember that's the essential quality of patterns: they are well known and reused) is one of its best selling points. Not everybody (but God himself, Don Knuth) writes TAOCP and not everybody reads it either. I think precisely where we disagree is that you feel well known means most good coders with some experience already know them just from day to day work.

I was going to write a big response, but I don't want to hijack the thread 😉 I agree with most of your points, and I will respectfully submit that this book is a lot more benificial to a Designer than a programmer. Over the years, I've used most, if not all, of the 'patterns' described in the book and this book formalizes those concepts software developers use everyday in OO programming.
 
Back
Top