Computer languages are converging at this point. There's always going to be a difference between machine code and a compiled/interpreted language, but other than that, we're seeing similar stuff. Object-oriented code has a lot to do with this.
Design Patterns: Elements of Reusable Object-Oriented Software
Influenced much of how programmers think now: how to use abstraction to make programs that can easily be modified to do many different things. I recommend it to all of you codeheads.
Regarding programming as a job, yes it's ass -- most of those who are good at it are intelligent but not in any way beyond detail management. However, there are some great and genius programmers out there.
I don't get the impression that languages are converging. Its more like there are tons of flavor of the month languages who try to "fix" C++.
Design Patterns and "Extreme Programming" never really impressed me. Its a cookbook approach to patterns that have a very limited sense of abstraction.
I more or less agree with this guys thoughts on it, except he kinda goes overboard haha:http://xahlee.org/UnixResource_dir/writ/why_software_suck.html
... But on the whole, it (Design Patterns) hinders the propagation of quality languages. It stops advancements of language design. It reduces the awareness of real education needs like mastering mathematics and domain expertise. It is a fucking spoon-feeding formula designed to retard the mundane and drug the smart. It curbs creation ability. It is a plague, a bad-ass fashion phenomenon; a jargon-riding dimwit-pleasing epidemic...
I guess the crux of it is: conventions are both good and bad and the trick is knowing when to apply or discard them.