> Complex software engineering is inherently tied to innate ability, as painful as it is to admit.
Highly disagree. There is nothing in the field of programming that cannot be taught or learned. Being a good programmer doesn't make you smarter or better than an average programmer, or a non programmer, as painful as it is to admit.
My take is that the intellectual posturing comes from a social context, and has nothing to do with ability. People love to feel special, and pretending that you have to be a genius to be a top level programmer is easier (and nicer to the ego) than accepting that perfectly average people can excel in this field.
This is like arguing that there is nothing in mathematics that cannot be learned. Some people are simply not able to understand calculus, let alone measure theory and topology. Even fewer can take those abstractions and apply them to new domains.
I know there are some people in my workspace who are write software faster than I do, and their results are more maintainable than mine. This cannot be something that is "taught or learned", as I had years of experience in the field, while they had to learn it. The only explanation I have is the innate talent.
(disclaimer: this was not web, so no "technology of the day" problems)
What? This can't be learned, but they learned it? Why isn't it possible that they learned to write more maintainable software faster than you?
If anything, the opposite is true in my experience. People trained in writing clean interfaces write clean interfaces. The very purpose of abstractions (etc.) is to reduce the cognitive load on the programmer. The dumber the programmer, the more he needs those things.