From reading a lot of these responses, I think the debate stems from the meaning of two words, “passion” and “talent”.
I love Jimi as an example, but it does also expose the problem in your argument. No matter how much hard work he put in, Jimi also had a talent — we all know a lot of musicians who’ve put in as much time on their instrument over their much longer lives, even professionals, and yet did not produce nearly so memorable music.
And again, using the musical metaphor, there are plenty of untalented musicians, and all the practice in the world won’t make them entertaining to listen to.
My claim is that you need some passion and some talent to write computer programs — that if you have no talent or passion then you are in the wrong business.
There is a secondary point that we are still in the early days of computer programming. It is absolutely not like there is a recipe to do things and we just follow that and end with something that works. We don’t even know what best practice is beyond a few rules of thumb — and we know for a fact that there are a huge number of pitfalls, some obvious and some extremely subtle.
This means that you have to be some sort of experimenter and scientist and tinkerer to get decent results — you can’t just put together the pieces from the instructions on the back of the box. This favors people with at least some degree of passion and talent.
Twenty years from now, this hopefully won’t be the case. I’m surprised it has gone on this long — 35 years ago when I was in school, I anticipated that CASE would have destroyed the market for programmers by now and yet it seems that they need more of us than ever.