In general good programmers aren't very good at interpersonal relationships, especially with non-programmers.
There are some that are, and they are great programmers generally. But more often programmers with excellent social skills are mediocre technicians.
jwenting
duckman
8,392 posts since Nov 2004
Reputation Points: 1,662
Solved Threads: 337
The trick is to have people who can communicate with coders to shield them from most of the non-technical stuff :)
Of course we can communicate, but we tend to drift into technical details and might not understand why others have trouble following our reasoning.
jwenting
duckman
8,392 posts since Nov 2004
Reputation Points: 1,662
Solved Threads: 337
>I had one programmer who took my notes & started coding & didn't ask ONE bloody question.
Now that would be the kind of person I would classify as a bad programmer. I can't think of anything that can be understood and written well without asking at least one question. People like that are either so arrogant that they think they know everything or too scared of looking stupid. Both qualities do more harm than anything.
A healthy ego is a good thing. It promotes the confidence, creativity, and independent thinking that good programmers need to write good code. A certain lack of social skill is understandable due to the hacker phenomenon. I would never turn someone away in an interview because they were unable to express themselves comfortably, but I would turn someone away (and tell them why) if they failed to at least try to talk to me when solving test problems.
The first thing that most people need to realize is that programming is rarely a solitary activity. Beginners and laymen tend to think that programmers sit in a dark room all alone, constantly writing code. In the professional world, programmers work in teams and thus need to know how to ask questions and give answers. They need to know how to weigh options, make recommendations, and explain those recommendations sufficiently to both programmers and non-programers. Anyone who is incapable of doing that fails to meet my expectations of a professional.
Narue
Bad Cop
15,460 posts since Sep 2004
Reputation Points: 6,464
Solved Threads: 1,401
Well said. Of course in the real world there's often a layer of non-programming technical people shielding the programmers from the harsh world of the end user.
Whether analysts, helpdesk staff, or project managers, their task is to act as a kind of translators and intermediaries between two often disparate worlds.
While programmers and the end users of their products can talk, there's almost always a disparity brought about by completely different thought patterns.
The programmer thinks of how the product will do what it does, the user only thinks of the end result of that process.
They also often have different views of reality resulting in say a user interface designed by a programmer being extremely powerful but at the same time incomprehensible to the non-technical end user.
jwenting
duckman
8,392 posts since Nov 2004
Reputation Points: 1,662
Solved Threads: 337