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.

Personally, I try to speak and write impeccable English. I try to capitalize proper nouns, get punctuation correct, use parallel form, and employ precise verbiage. (I'm also a fan of the Oxford comma, can you tell?)

As a programmer, I put an equivalent amount of effort in the code I write, as code is read many more times than it is written. I pay close attention to style guides, use direct clear idioms, and try to follow recognized best practices. If I were looking for others to work with, I'd be looking for the same.

My question is: is careful usage of human language a trait that correlates with better code? If so, could human resource personnel use this to good effect to screen out applicants, or would they be reducing their qualified applicant pool arbitrarily?

share|improve this question

closed as primarily opinion-based by MichaelT, Jim G., Bart van Ingen Schenau, gnat, m3th0dman Jul 6 at 13:00

Many good questions generate some degree of opinion based on expert experience, but answers to this question will tend to be almost entirely based on opinions, rather than facts, references, or specific expertise.If this question can be reworded to fit the rules in the help center, please edit the question.

4  
Mastery of a spoken language is something that Dijkstra mentions in EWD498 ("Besides a mathematical inclination, an exceptionally good mastery of one's native tongue is the most vital asset of a competent programmer.") ... at which point, you can see this is likely to delve off into opinion and debate. –  MichaelT Jul 6 at 1:40
    
(and related question about the Dijkstra quote.) I'd be more than happy to discuss this in chat some time. –  MichaelT Jul 6 at 1:50
    
@michaelT: Well, the outsourced folks from india managed to write good enough design documents, and they definitely didn't have perfect english language skills. I wouldnt show the docs to paying clients, but they managed to communicate the information programmers need to understand the code. –  tp1 Jul 6 at 2:14
2  
I'll argue that while it appears off-topic, it's actually on-topic as a programming related question, and I think I'll see an answer that hits the nail on the head shortly. –  Aaron Hall Jul 6 at 2:55
1  

4 Answers 4

I can only offer that I've known very good programmers who spoke in monosyllables and whose written communications weren't much better. Certainly poor communication skills on a team are a problem, but they aren't necessarily linked to poor programming skills.

I once spoke to a manager responsible for hiring programmers in the late 60s and early 70s. They had programmers take a written programming test and then hired the candidates who turned in the neatest forms. It wasn't that they thought this indicated more programming aptitude, it was just that back in those days you wrote your program by filling out a coding form in pencil, which a professional keypunch operator turned into punch cards. Neatness counted for a lot.

If I may offer some food for thought, I think one of the biggest problems in our industry is that folks tend to hire clones of themselves. You are particular about English usage, so you want to hire people who are particular about English usage. Google likes to hire C. Sci. graduates from Stanford. Folks on Wall Street like to hire folks who went to an Ivy League. Twenty somethings at startups like to hire other twenty somethings. There seems to be some sort of fake syllogism going on: "I'm a good programmer, this person is just like me, so they'll be a good programmer."

There is no silver bullet in hiring decisions, any more than there is in software development.

share|improve this answer
    
Thanks for your answer. Seems reasonable to me. –  Aaron Hall Jul 6 at 1:55
6  
I've worked with many, many developers who were not native English speakers, and have come to the conclusion that good communications skills has little or nothing to do with language fluency. I've known native English speakers who couldn't coherently describe what they wanted to do to save their lives and non-native English speakers who could give you clear and concise descriptions of what they were doing in broken and ungrammatical English. –  Steven Burnap Jul 6 at 4:07

The other answers focus on formal correctness and communication skills. I would also say that those are orthogonal to good code.

However I'd like to weigh in on a third aspect: The implication of not caring.

If someone doesn't show an effort in the way he expresses himself I wouldn't expect that someone to care about his code quality either.

share|improve this answer
    
That's a good point. –  Aaron Hall Jul 6 at 11:25
    
A large portion of programmers and also good programmers have aspergers. Often (not always) people with asperger have a hard time expressing themselves but can still be good programmers. Seeing the someone expresses himself badly, and assuming it's about not caring enough is a big leap. –  Pieter B Jul 7 at 9:14
    
If they can't express their intentions to others, can they express their intentions to a computer, where accuracy is much more important. Even Asperger-syndrome sufferers can express themselves well, just that happens to be rather blunt and appears rude. Too often its an excuse for simple anti-social selfish and laziness. –  gbjbaanb Jul 7 at 9:32
    
@PieterB: I agree that lack of ability and lack of effort can be tough to tell apart sometimes. I surely didn't mean to say that everyone who expresses himself badly does so because he is too lazy to do otherwise! –  Roman Reiner Jul 7 at 10:52

This question asks

Is careful usage of spoken language a trait that correlates with better code?

Dijkstra said (click here for source):

The problems of business administration in general and data base management in particular are much too difficult for people that think in IBMerese, compounded with sloppy English.

...

Besides a mathematical inclination, an exceptionally good mastery of one's native tongue is the most vital asset of a competent programmer.

However, anecdotally we know that there are those who are considered very good programmers that do not communicate well, whether by choice or ability.

So I think the answer to the question is that while good human communication skills may not be a prerequisite for the programming, they are a prerequisite for many related tasks, including documentation, requirement specifications, feature scoping, etc...

In conclusion, and to answer the follow-on question, I think if I were considering hiring someone without an apparent ability to communicate well with humans, I would only do so if the targeted responsibility focused on programming itself, and I would carefully consider my alternatives before doing so.

share|improve this answer
    
Wow that Dijkstra quote is... on the edge of being offensive. What is the rest of the context? Perhaps including his definition of IBMerese could add some reason to his argument, or at least a supporting clause or two as to why exceptional mastery is vital. –  Patrick M Jul 6 at 6:11
    
I think it's pretty unclear what you're looking for. Sticklers for grammar? (The question made it seem that you equate being anal about grammar with being anal about clean code.) Good communicators? (I believe that's a rather different criterion.) In terms of spoken or written English? (Surely, written English is more analogous to written code, and many of the activities you list use written language, yet you originally asked "is careful usage of spoken language a trait that correlates with better code?") You pride yourself on grammar, but should you improve your critical thinking? –  Aleksandr Dubinsky Jul 6 at 6:34
2  
key point here is that Dijkstra said one's native tongue, whereas the OP asked for English language. The majority of programmers has a mother tongue different from English. –  dirkk Jul 6 at 9:49

I think the ability to use proper grammar, capitalization, neatness, etc., is not very important to a programmer. Nice to have, but not vital. It is more important if you have your programmers writing documentation, which sometimes happens.

However, the ability to communicate somehow, in both directions, with both team members and end-users, is very important. Don't care if they use proper Queen's English or not, it could be via circles and arrows on a whiteboard, but they must be able to understand, and be understood by, their team members.

share|improve this answer
1  
Why the downvote? –  user949300 Jul 6 at 15:55

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