Take the 2-minute tour ×
Programmers Stack Exchange is a question and answer site for professional programmers interested in conceptual questions about software development. It's 100% free, no registration required.

I am reading this wonderful book called "Coders at Work: Reflections on the Craft of Programming" by Peter Seibel and I am at part wherein the conversation is with Joshua Bloch and I found this answer which is an important point for a programmer. The paragraph, goes something like this.

There's this problem, which is, programming is so much of an intellectual meritocracy and often these people are the smartest people in the organization; therefore they figure they should be allowed to make all the decisions. But merely the fact they are the smartest people in the organization does not mean that they should be making all the decisions, because intelligence is not a scalar quantity; it's a vector quantity.

Here at the last sentence, I fail to get the insight which is he trying to share. Can someone explain it in a little further as what he means by a vector quantity, possibly trying to present the same insight.

Further down, I get the point that he is not taking about having an organization where non-technical people (sometimes clueless) can be managers of the technical people for some reason that they can spend more time to write emails well, because the very next statement following the above paragraph was.

And if you lack empathy or emotional intelligence, then you shouldn't be designing APIs or GUIs or languages.

I understand that he is saying that in Software engineering, programmers should know how the users will see their product and design for them.

I felt the above paragraph was very interesting.

share|improve this question
1  
Intelligemce/talent/skill is multi-dimensional, not even finitely-dimensional, and the selected few are so much smarter than others, that intelligence is best plotted on en.wikipedia.org/wiki/Log-polar_coordinates –  Job Jan 18 '12 at 2:40
1  
+1 for Coders at Work, an excellent book that deserves exposure here. –  Michael Jan 18 '12 at 17:54
add comment

2 Answers 2

up vote 18 down vote accepted

A vector has both a magnitude and a direction. He is saying you can't describe intelligence by just its magnitude. You must also know the direction the intelligence is pointed toward. Einstein said:

“Everybody is a genius. But if you judge a fish by its ability to climb a tree, it will live its whole life believing that it is stupid.”

Bloch is saying don't assume your organization's best swimmer is just as good at climbing trees.

share|improve this answer
    
It is not seibel but Joshua Bloch. Thanks for explanation, it helps. –  Senthil Kumaran Jan 18 '12 at 4:26
1  
I think that's the jist, like Daniel concludes as well, but I wouldn't say he's claiming intelligence has direction per se, just that it's a multidimensional quantity. –  Owen S. Jan 18 '12 at 4:42
    
Very well put. I was thinking along the same lines before I read your answer, but you articulated it better than I would have. –  Mark Booth Jan 18 '12 at 10:57
add comment

… because intelligence is not a scalar quantity; it's a vector quantity.

I can't speak for the author, but I would read it as an analogy to the fact that there is not a single dimension for practical intelligence as a programmer.

Another way to put it might be that some people are awesome at dealing with people, some people are awesome at dealing with hard computer science problems, and some people are awesome at writing well engineered code.

None of them are "more intelligent" than the other, they are equally intelligent and equally skilled at different things - but unequally skilled at the same things.

I understand that he is saying that in Software engineering, programmers should know how the users will see their product and design for them.

I read that as saying that if you don't have the skills to understand how users of the tool work, how they feel, how they thing, then you shouldn't be designing the interface they work with. (Which includes the API, for values of "users" == "programmers")

In other words: just because you are awesome at one thing, don't assume you are awesome at everything.

share|improve this answer
add comment

Your Answer

 
discard

By posting your answer, you agree to the privacy policy and terms of service.

Not the answer you're looking for? Browse other questions tagged or ask your own question.