

Comfort with meaninglessness the key to good programmers - marcus
http://www.boingboing.net/2008/12/12/comfort-with-meaning.html

======
Eliezer
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 _more_ meaning.

------
geedelight
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

~~~
mechanical_fish
If a musician has her instrument on hand, she can make music, every single
time. Musicians are really quite reliable. Their improvisations and crowd-
pleasers won't all be as good as the best works of Mozart, or Monk, or even
Billy Joel, but chances are that the crowd will be at least moderately
pleased. Cover bands do not routinely run 300% over budget and six months
late, and if they do you can be confident that the fault was entirely theirs
-- it's not that the gig, which seemed simple on the surface, turned out to be
completely intractable.

A skilled carpenter or vacuum-cleaner engineer might not produce a masterpiece
every time. But the result will probably be a house that doesn't fall down, or
a thing that picks up _some_ dust for at least a _little_ while. Vacuum
cleaners are a well-understood technology, and while carpentry projects do
occasionally go nonlinear (if you change the specs mid-project, or a freak
windstorm blows up, or they discover a natural spring while digging your
basement, or... well, just go read _Mr. Blandings Builds His Dream House_ ,
one of the greatest engineering books of all time ;) they are nonetheless
relatively predictable, and the more experienced the carpenter the fewer
surprises you can expect.

Now go read _Dreaming in Code_ , which shows that even if you are _Mitch "I
Built Lotus" Kapor_ and you hire _Andy "Mac OS 1.0" Hertzfeld_ your software
project may fly straight into a wall: You may blow the schedule by a factor of
five, and the budget by a factor of ten, and _still_ not ship anything. [1] It
has happened. People who write books about corporate IT throw around numbers
like _fifty percent_ when discussing the odds that a given software project
will succeed. And the reason why programmers don't stop talking about this is
that it is vitally important that our clients understand the risk _in
advance_! Which they often don't. Nothing in their everyday experience with
plumbers, dentists, and caterers has prepared them for it.

\---

[1] Note: These numbers are not the ones from _Dreaming in Code_. I made them
up. ;) I actually have yet to finish _Dreaming in Code_. It induces painful
flashbacks.

~~~
baddox
You ever heard of a one-hit wonder? There countless of them. There are also
numerous examples of extremely popular bands releasing an album that is panned
by critics, fans, or both (read: Metallica). I agree with your parent post,
every discipline involving art and talent is complex and difficult if you're
interested in it and delve deep enough into it. It's just that programming
gets a lot of attention on the Internet, especially Hacker News, but that's no
surprise, is it?

------
gruseom
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"?

~~~
JoelSutherland
"Meaninglessness" is the exact wrong word for this.

The test shows that those who consistently apply the same meaning to the types
of questions they are presented with end up being the best programmers.

~~~
yters
I've noticed this kind of mindset helps with debugging. I use it to eliminate
possibilities and to also keep going. The latter is especially important when
I think I've already tried all possibilities. It's a constant check that keeps
me from thinking it's a problem on the computer's end, instead of a problem on
my end. I can think of a number of times when I've been able to solve the bug
precisely because I kept the right mindset.

~~~
marcus
If I had a dime for every time a co-worker said it was a problem with the
compiler, I would have retired years ago...

~~~
Agathos
The problem with the compiler is that it implements a language whose rules,
applied to the code I just wrote, yield a bug. That this language is
consistent with the spec makes it no less a problem.

------
decode
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:

1) Can this mindset be taught?

2) Can this mindset be taught to anyone?

3) Can this mindset be taught more easily to the young than the old?

4) Is this mindset a disadvantage in some areas? E.g. does it hurt you if
you're a psychologist or a novelist?

I'd love to see some research to answer those questions.

~~~
LogicHoleFlaw
_4) Is this mindset a disadvantage in some areas? E.g. does it hurt you if
you're a psychologist or a novelist?_

It depends on what kind of novelist you want to be, I think. A good
illustration of the differences comes from Brandon Sanderson in his essay on
"hard" versus "soft" magic. Hard systems give the reader the satisfaction of
solving puzzles and difficulties along with the characters. Soft systems
preserve a feeling of mystery and wonder. Both can make for good writing.

On the one end you have Tolkien, and on the other, Asimov.

[http://www.brandonsanderson.com/article/40/Sandersons-
First-...](http://www.brandonsanderson.com/article/40/Sandersons-First-Law)

~~~
LogicHoleFlaw
As I think about this novelist mindset connection once more, I'm reminded of a
conversation I had with LE Modesitt who is the author of some of my favorite
'Hard' fantasy novels. He has an extremely large base of readers who are
engineers. They really love the logic and problem-solving he introduces in his
magic system. Interestingly, another large lobe of his fanbase is female
readers looking for intelligent romantic fiction.

------
sutro
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.

------
jderick
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).

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.

------
jrp
Cool- however

<http://news.ycombinator.com/item?id=215536>
<http://news.ycombinator.com/item?id=97515>

~~~
jderick
It seems this is roughly the same article as the one referred to in the link?

------
cgranade
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.

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.

------
michaelneale
"the machine will blindly follow its meaningless rules and come to some
meaningless conclusion"

I think that would have been better worded to read "mindlessness".

------
etal
This is interesting, but I strongly recommend reading Alan Kay's commentary on
the study:

<http://secretgeek.net/camel_kay.asp>

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.

------
jmtame
Wow.. Did the first comment actually say 20 20?

