To me this reads like a list of problems of self-taught programmers who've only ever worked on their own.
I've met a fair few old school programmers who were around before CS courses really took off, they know everything on this list.
I disagree with all but the third, and I especially disagree with the 4th, the worst designed programs I've seen were written by CS trained people. They try and implement overly complex models because they've been taught them. Pure experience trumps book knowledge every single time in software design.
I know I have gaps in my knowledge, but if that's the best you've got I'm still happy I got a Philosophy degree!
You're absolutely right that every one of these problems tends to go away with time; that was the one disclaimer I forgot. The more dev work someone has done, especially on collaborative projects, the less likely they are to have these problems.
You're also absolutely right that CS training isn't a panacea. Actually I tend to suggest math or electrical engineering training to people looking to get into the field. CS programs tend to overcorrect in some areas. For example, new CS grads often want to overuse regular expressions.
I've met a fair few old school programmers who were around before CS courses really took off, they know everything on this list.
I disagree with all but the third, and I especially disagree with the 4th, the worst designed programs I've seen were written by CS trained people. They try and implement overly complex models because they've been taught them. Pure experience trumps book knowledge every single time in software design.
I know I have gaps in my knowledge, but if that's the best you've got I'm still happy I got a Philosophy degree!