Wrong title is wrong! The good programmers take a guess at the laws governing what's going on, and apply that law consistently. They are capable of seeing laws apart from ordinary, everyday situations. They see <i>more</i> meaning.
I don't know whats all the fuss about programming being so "special".Everything is hard - music is hard, carpentry is hard, poetry is hard, designing a effiecient vacuum cleaner is hard , but wonder why only we programmers make so much noise all the time
I don't think "meaninglessness" is the right word for this. It smacks of journalistic spin. I wonder what a better word would be... maybe just "abstraction"?
The researchers posit that the students who start by applying rules consistently across problems learn programming better than those who don't. For me, this raises some questions:<p>1) Can this mindset be taught?<p>2) Can this mindset be taught to anyone?<p>3) Can this mindset be taught more easily to the young than the old?<p>4) Is this mindset a disadvantage in some areas? E.g. does it hurt you if you're a psychologist or a novelist?<p>I'd love to see some research to answer those questions.
Perhaps this "deep comfort with meaninglessness" explains why -- anecdotally at least, in my experience -- there seem to be higher levels of atheism among programmers than among the general populace.
As a grad student, I was a TA for an intro Java class, and I remember the students who just didn't get it. It is hard to say why they failed. Most of the worst students fell behind quickly, and never really had a chance to catch up. It would have been interesting if I had had more of a chance to try and figure out where they were stuck and help them out, but I think most of them gave up trying to understand the basics once they realized how far behind they were and just spent their time copying off other students to get a passing grade (many of them were later caught).<p>As far as the article goes, it says that no other successful predictors have been found for programming aptitude, but when I looked at one of the references cited, it didn't even include HS GPA or SAT scores. I would be surprised if there was no correlation there.
Really, from what anecdotal evidence I've seen, the ability to deal with things abstractly is crucial. Moreover, it has seemed to me that the ability to maintain multiple abstractions and switch between them is also crucial. Note that this isn't "inconsistency" (to borrow the article's terminology), but rather an awareness of context.<p>This is precisely why I find that the hardest programming language to learn is your second. To learn the first, you just memorize some arbitrary rules. To learn the second, you must develop abstractions for both, and realize how they differ.
"the machine will blindly follow its meaningless rules and come to some meaningless conclusion"<p>I think that would have been better worded to read "mindlessness".
This is interesting, but I strongly recommend reading Alan Kay's commentary on the study:<p><a href="http://secretgeek.net/camel_kay.asp" rel="nofollow">http://secretgeek.net/camel_kay.asp</a><p>In addition to his work on Smalltalk and OOP, Kay spent a major portion of his career on the problem of how to teach students to program.