views:

1247

answers:

19

Is there a meaningful correlation between spelling and grammatical ability, and programming ability?

+27  A: 

I don't know about spelling/grammar in particular, but I'll say that programmers that are lazy in some regard -- this is especially noticeable in people that use 'u', 'r', 'y', etc as words -- tend to be lazy when it comes to development. This leads to poor designs, copy and pasting, etc. So I'd say that, subjectively, there's likely a pretty decent correlation there.

Edit: I'd also like to point out that this rarely has to do with actual spelling or grammatical knowledge or ability, but rather the amount of effort a developer is willing to put into expressing his or her ideas clearly. I believe that if you aren't willing to express your ideas clearly in written text, you're likely not going to express them clearly in code.

Cody Brocious
That's a great opinion, but is there any evidence you can cite to back this up?
Kip
I don't think there's empirical evidence to back this up, but my experience has shown it to be true. If the developer's not willing/able to communicate clearly, it will not only reflect in the code, but also his/her comments -- and that's where it will really bite you!
John Rudy
I totally agree, except for your choice of the word "lazy". Laziness in programming is a virtue. I think you are talking about apathy, not laziness. "I don't care if it's grammatically correct as long as you understand" == "I don't care if it's technically correct as long as it runs".
Jim
So by definition a dyslexic should never be hired as a programmer!!
Martin York
Martin, you are correct, because the reason dyslexia exists is because its sufferers are too apathetic to fix it.
Jacob
It's a shame that you cannot vote up comments, Jim.
innaM
I'm afraid the next generation of programmers is going to be exactly like this. Instead of createInstance() they will have canIHazInstanceLol()
Uri
@Uri: Yep, it's called LOLCode :)
RCIX
+1 This jives with my intuition as well. I found this question by searching Google for spelling correlation programming - and voila first hit is stackoverflow lmw! I'm sure there are plenty of competent programmers who just don't care about proper spelling or grammar. It all boils down to effort in the end I think.
Will Bickford
+7  A: 

Because attention to detail is such an important characteristic in this line of work, I would much rather work with someone who takes the time to make sure all of their communication is as correct as possible.

Jeff Hillman
A: 

I would say there is as far as spelling is concerned. For me, my spelling goes to pot when I am typing quickly, mostly from typos etc. and this often leads to all sorts of niggles where I've misspelled variable names etc. which can cause compilation errors and sometimes unexpected behaviour. I once spent about 3 hours trying to find out why an overloaded method in a sub-class wasn't being called, until I realised I'd misspelled the method name in the base class and was calling the misspelled name, not the correct one.

Other than that, spelling and grammar are good tools for conveying your intentions to other programmers and through documentation for the user. But, I don't think there is any inherent link between spelling / grammar and programming ability. I would expect them to complement each other, but not to require one for the other.

xan
Apparently my spelling is totally all over the place this morning... thaks to Chris Jester-Young for helping me out :).
xan
+1  A: 

Incidentally, grammar can be put to some good use (and a good programming habit IMO), to quickly identify local variable names.

  • aSomething: represents one object.
  • someManyThings: list of objects.
  • isAState or hasSomeThing: for boolean state.

Any variable which does not begin by 'a', 'some' or 'is/has' is a member variable.

When you combine that with the power of quickly renaming a variable throughout your code (like the rename option in java/eclipse), you quickly get rid of all those 'foo', 'bar', 'i', 'j' variable names ;)

VonC
surely 'aSomething' would just be 'something' and 'someManyThings' would be 'Somethings'?Grammar in variables can be terribly long winded and in most cases not needed.'SomethingWhichWhatDoesThatThing'
PintSizedCat
Nope... You miss the point of 'a' or 'some' prefixes: it is to make a clear difference from member variables, which are indeed 'something' or 'somethings'. See also http://stackoverflow.com/questions/111605/what-kind-of-prefix-do-you-use-for-member-variables#111736 debate.
VonC
+4  A: 

I think the above two answers are quite naïve.

As far as I've found it the best programmers are the ones with analytical minds, the ones who like to solve problems, not remember things.

Because of that I've found that programmers generally aren't quite as up to scratch on grammar and vocabulary as most other people. This results in bad commenting and very different communication (not worse communication, it's definitely wrong to say that because someone does not have good grammar and vocab they are a bad communicator) but better code and quicker development times.

From a personal stand point, I'm not willing to use 'u', 'r', 'y' in comments and most communication, but I'm not to bothered if I spell 'the', 'teh' or if I don't have a comma in the correct place. If someone's going to gripe about these then they're probably in the wrong line of work.

Edit: There was a question/answer somewhere about how if you comment your code and go to a lot of effort to make it understandable you probably haven't understood the current domain. I can see how this can be true and I think it also highlights that those without such good grammar are going to give you better code.

Edit:

Reply to comments:

I'd disagree, not only is pedantry not necessarily a requirement (by any means) for being a good coder, but it can definitely slow things down. Which would you rather, your coders worry about grammar or about code?

As far as I've found it, in the world we live in, miscommunication happens regardless of grammar, especially when business crosses with technology (it's mostly from the business side I see the lack of communication).

PintSizedCat
Pedantry is probably a good thing in a coder. If I have one minor error in a function, then it is probably going to affect the function's performance. This attention to detail is surely going to rub across into the pedant coder's writing, too.
Matthew Schinckel
I agree with Matthew, and I'd also like to point out that a lack of proper grammar and spelling can easily lead to miscommunication, a problem that is already common in teams consisting of members with different mother tongues.
Cody Brocious
I don't believe that coding skill and grammar are mutually exclusive. Because of that, I don't believe that using proper grammar should or has to slow things down, and I don't believe that it's something coders really need to be concerned with. [...]
Cody Brocious
I simply believe that there's a correlation between the two.
Cody Brocious
Code *is* grammar.
Ed Guiness
can anyone spot the grammar mistake in this answer? =-O
Nona Urbiz
Will Bickford
+5  A: 
RAGNO
er, that would be "there", not "their". Sorry, I'm a pedant.
Mike Woodhouse
Um, I think you spelled "Maths" wrong?
Jacob
@Jacob: The spelling of maths versus math is a distinction between British vs American English, as far as I know. :-)
Chris Jester-Young
So, what do you deduce when you hear "bear"? "bare"? Of all languages, don't use English as an example of logical spelling.
Torsten Marek
+5  A: 

As far as I've found it the best programmers are the ones who have good problem-solving skills and also abhor things being wrong. The former without the latter results in code that, at best, only its author can maintain, and at worst is totally unmaintainable.

This usually has the side effect that the good programmers are hard on their own spelling and tend towards pedantry with grammar.

moonshadow
A: 

Proofreading and manual code syntax checking seem like related skills, but their correlation in concept doesn't guarantee that a patient coder is also a patient speller, nor do all great writers have any concept of computer programming. For example, I know an English professor that uses the computer he was provided by his university as an ashtray. I also know of expert programmers whose grammar is completely awful.

devinmoore
The existence of any correlation doesn't /guarantee/ such things, it just means they're likely (for some value of likely) to correspond to each other. There are obviously exceptions to anything of this sort.
Cody Brocious
+1  A: 

I've got a couple of points to add first...

  • Don't confuse bad spelling or grammar with typos (My fingers and brain work at completely different speeds, causing my to make lots of typos, even when I know the correct spelling)
  • In this global economy, lots of programmers do not have English as a first language, so some allowances have to be made. (Their English is, however, much better than my insert language of choice here)

Considering the intelligence required to become even reasonably good at coding, it still amazes me how many coders confuse 'your' with 'you're', 'there' with 'their' & 'they're', etc. Non-coders who can't spell could possibly be explained by the person not being exposed, to much degree, to the written word, but coders probably read a lot more than other categories of people, so should see correctly written text on a regular basis and, frankly, have very little excuse.

Having said this, I'm sure that there are many brilliant coders who have a poor standard of English (And vice-versa), so it's very difficult to judge.

I now await (and welcome) spelling/grammar corrections to the above text ;-)

belugabob
I believe that the fact that many programmers not having English as their native language is a big reason why (English-native) programmers need to put more effort into spelling and grammar. [...]
Cody Brocious
Not doing so leads to miscommunication, an issue already prevalent when team members speak different native languages.
Cody Brocious
Grammar and spelling look pretty good to me.:)
Mike Woodhouse
+3  A: 

I don't think there's much of a correlation: I know three very good dyslexic programmers.

Bart Read
And I know four very bad dyslexic programmers. Do I win?
Ed Guiness
A: 

"How can I get those damn kids off my lawn!?" That's how I read this question anyway.

The answers given thus far are all anecdotal or opinion based. Some linguists have studied texting and found that hostility toward abbreviated words is unfounded. I think similar arguments could be made here.

It might help for a programmer to use good spelling, only insofar as programmers are often the type of people to get up in arms and make posts on sites like StackOverflow complaining about bad spelling. So if you spell well, it will help them focus on understanding your code rather than wasting half an hour fuming about your grammar.

Kip
A: 

Yes and No. On one hand, I believe there is a direct correlation between one's writing skills, in general, and the tendency to select meaningful variable names, comments and even procedural structure has favorable linguistic properties that lend themselves towards overall code clarity. The ability to invent new metaphors and to make terminology choices that are perfectly succinct can also be linked with being generally aware of relatively minute details such as spelling. On the other hand, it is often bad practice to create Class, object or variable names that are easy to misspell. Hence, this is a case where programmers should not be showing off but should opt for good names that will "roll off the fingers" whenever typed by another developer.

Ryan Delucchi
A: 

I would be surprised if presented evidence that good spelling and good programming correlate. Good spelling and good programming both are based on the level of experience in performing the respective activities, and there is no reason to assume that such experience itself would correlate.

Anecdote: I used to be a terrible speller until I started keeping a daily journal in a word-processor that griped about my mistakes. Now I'm OK.

Jeffrey L Whitledge
+1  A: 

Ulimately, software development is about communication (and not with the computer!). Any complex task that involves many people relies on good communication. Many projects fail because of poor communication. Because software projects are so intangible in terms of all sorts of metrics like quality and content, it's not so obvious that something is wrong (unlike with, say, building a large building) and so mistakes get propagated all too easily. Going out on a limb, I'd say that the personality types that are attracted to programming are often the same types trhat would prefer to do their own thing and find communication either difficult or do not fully realise its importance.

Mitch Wheat
A: 

Programmars can't spel ;)

Ola Eldøy
A: 

All the realy good programmers I know are terrible at spelling, but they also speak English as a second language so I'm not really sure what to think of that.

Stephen Belanger
A: 

Programmars can't spel ;)

Amateur grammars, on the other hand... ;)

I know a great programmer (a fellow student and a friend) who spells like shit. It's possible that with effort and time invested in it he could get somewhat better, maybe mediocre. But what would be the point? Either you do it perfectly, close enough to perfect, understandably or not understandably. He'd (probably) stay in the "understandable" class, so what would be won?

User edg quoted ESR saying

"We've found by experience that people who are careless and sloppy writers are usually also careless and sloppy at thinking and coding (often enough to bet on, anyway)."

That may be true, but some people, for some reason, have a low return on the care and effort they put into trying to spell well. Why should they? And why should we require it of them?

Jonas Kölker
A: 

PintSizedCat has got it right.

Good programmers need an analytical mind. And an ability with mathematics, not language, is the best way to demonstrate an analytical mind.

Don't discard a candidate because of an error in a CV. If their experience is right, call them and do a phone screen. If they get past that get them in for an afternoon and pair with them on a programming task (if you don't practice XP you should not be hiring developers).

ewalshe
I'm not sure that pair programming with programmers having no ability with language is going anywhere, though...
mghie
@mghie Many of the answers indicate that spelling errors/grammar in a CV indicate that a job candidate will be a bad developer. I'm saying that that is not necessarily true. The best way to determine if someone is a good developer is to work with them. Pairing is the best way I know of to do that.
ewalshe

related questions