tags:

views:

155

answers:

9

Greetings,

I am a software developer and English is not my first language. I always thought English is really important to developers as most APIs and tech books are written in English.

However, my friends don't think so. They say that as a developer, I don't need to talk to customers for example, so I don't need a high level of the language competence. One of them (who is not a close friend) even said to me 'You know X and Y are still doing development, 'cause they cannot speak English properly. '

What do you think? Do I only need a basic understanding of English to be a developer?

Thanks, Sarah

A: 

English is important if it is what is used for inter-office communication; even if you do not speak to customers, you still need to be able to communicate well with co-workers and management. It is also important that you are able to compose code comments in a way that others will understand. Because the bulk of reference books are in English, it is important to have at least a basic level of competence and at least a strong passive vocabulary. Even the best coder is useless if his co-workers can't figure out his code to make edits and fix bugs because they cannot read his comments or if he is unable to communicate what he is trying to do or why when asking for assistance or directing a crew in a project.

MaQleod
Assuming that English is used for inter-office communication. It could be Hindi or German. I agree with the point about the reference documentation though.
pst
+2  A: 

No, you need an excellent understanding of English to be a developer. If your friends think otherwise I am afraid they will have very limited career opportunities. Even if today you do not speak to customers, you still need it to get answers on Stackoverflow, read (free) books from the net, read specifications and requirements documents, read/write informal emails, etc...

The name of the game in software development is understanding with other people want in order to satisfy their needs. Till crystal-ball technology is sufficiently advanced, we will have to rely on communication, i.e. the written and spoken word. We are in the business of transferring ideas between minds, which is notoriuously difficult even between very good communicators.

Since all teams are increasingly global and many teams are built from multiple nationalities the only way this can work is if everybody speaks and understands a lingua france, which is today english.

If you can show technical proficiency and you can show a good ability to understand and make yourself understood, this will open on longer term considerably more opportunities. There is a big shortage of usable talent in the global marketplace, so this will be noticed.

Peter Tillemans
+4  A: 

You can make do being a developer with only a basic understanding of English.

However, being a developer is a lot more than knowing just enough syntax to be able to write code. It means constantly reading up on new concepts / technologies and as you rightly pointed out, a very high % of all technical documentation is in English.

Not just technical documentation, a very large number of popular online forums / blogs / discussion boards use English as the common medium and not having a good understanding on English makes it difficult for you to use these resources which can greatly help you grow as a developer.

Its very common nowadays for Programming teams to be in geographically disparate locations and that can span countries and in such cases, English has, atleast in the current scenario become the de-facto language of communication and not knowing it well enough can greatly impair your ability to work in such a environment.

English is not my first language either but from a practical perspective, atleast for the present, it is the standard for all technical conversation and not knowing it well DOES impair your ability to improve

Refer LINK for a immediate example of the pitfalls of not knowing English! :-)

InSane
haha..that is so funny!
sarahTheButterFly
+1  A: 

To be a developer, possibly, and without technical skills you won't get your foot in the door. However, at some point you will probably want some personal growth in your career, and team lead, architect and management positions will all require lots of communication skills. It would also seem that as your career progresses, soft skills / people skils are more important than technical skills - e.g. see here.

nonnb
A: 

English language competence is helpful in online forums like Stack Overflow.

Even if you aren't fully competent yet, it may be a good idea to write your questions (apart from code) in a word processor (such as MS Word) first, and let it check your spelling and grammar, so that people don't get annoyed by bad spelling or grammar.

Andrew Grimm
+1  A: 

I feel that a good grasp of English is important, even if only ever used for two aspects of communication: documentation and comments. No matter how brief your documentation, a good command of the English language can help you explain complex concepts clearly in your documentation, and the ability to do the same via comments in your code can assist others in understanding your logic.

I for one feel that as an English speaking programmer, I should expand my language portfolio to include German, as I have encountered a lot of documentation, and code commented in German, which I was unable to use. The linga franca may be English, but there are a lot of resources available in other widely spoken languages that would be of a benefit should you be in a position to access them.

Paul Stevens
A: 

Well you might see it this way: every skill besides of beeing an excellent developer is a plus. There are tons of developers out there with good skills. So how do you make yourself better than the rest of the pack? I speak five languages fluently. This gave me the possibility to do a lot of very interesting projects all over the world.

And your friends are wrong when they tell you that developers don't talk to customers. Good developers do actualy talk and even more listen to their customers.

Yves M.
WOW...you speak 5 languages! What are they?
sarahTheButterFly
English, Czech, German, French and Italian (some Spanish as well...)
Yves M.
+4  A: 

I don't know why nobody mentioned it before, but you need to be proficient at English, because source code should be written in English only. Otherwise you will gen an incomprehensible mess. I've come across software that used German variable names ($zeile) and used German comments. Since I have only basic understanding of this language, it was really big pain. BTW. this source code (or entire company) was acquired by Big Corporation of U.S.A.

Paweł Dyda
This is so true.
Yves M.
I disagree. If it will be read primarily by German speakers, the source should be written (as much as possible) in German. The point is to be readable, and that is relative to the readers. As for Americans some day buying out the company and needing to read the code - why is it so hard for an American to learn to read a few words of German? Why is it supposed to be so much easier for a German to learn English? And what do you expect when you buy out a German company? The Docs will be German anyway, so why expect the source code to be English? Seems strange to me - and BTW I'm English.
Steve314
Source code should be written in English? No. Source code should be written in some computer language (ha ha). Source code comments variable names etc should all be written in any language your organisation likes, but it should be one language across the whole code base. In multinational organisations, I accept the only practical langualge is English.
JeremyP
@JeremyP - agreed. Also, an extra point - if you acquire a load of source code with all the identifiers in some language you don't understand, can't you fix that with a dictionary and a refactoring tool? - or careful use of search-and-replace?
Steve314
@JeremyP: Well, the only programming language I came across which didn't use English keywords was Logo. Therefore I still think that good software should be written entirely in English. Otherwise you'll get horrible mix like that: catch(NullPointerException wyjatek) { throw new NieprawidlowaOperacja("jakies brednie"); }. How comprehensible is that? Even the native speakers will have to switch languages, which requires additional brain power. It is tiresome and good developer should be positively lazy.
Paweł Dyda
@Steve314: Refactoring is fairly limited if you're not the owner of the code, but still have to implement changes... And idiomatic phrases don't translate well with a dictionary.
Paweł Dyda
@Paweł - It just took me three seconds to google "dictionary Nieprawidlowa Operacja" and discovered that it refers to an invalid operation. I now know the Polish for "invalid" and "operation", increasing the odds that I'll understand the next exception name without Googles help. As for native speakers - the other words are C++ (or Java or whatever), not English. The English language doesn't have a concept of throwing exceptions. Mixing languages to make new languages is a very common thing, and what we have here is a simple example.
Steve314
@Pawel Dyda: If you're a Polish Java programmer, it would be perfectly comprehensible.
JeremyP
@JeremyP - he *is* a Polish programmer - that's why he chose that language by default. He just has the (probably understandable) belief that every English speaker will recoil in horror at the thought of learning another language.
Steve314
@Steve314: I'm firmly of the opinion that when we English (and, dare I say it, Americans) recoil in horror at other people's languages, it's our problem not theirs. This is in spite of the fact that I speak only English with any degree of proficiency.
JeremyP
+2  A: 

Yes, you really need to know English language. The problem is not only with the fact that most popular programming languages are based on English words and phrases. Another issue is with the documentation.

I am a developer from Russia. Also I am a researcher in the field of computer science. Trust me, without English language you will never become a great developer. The primary reason is that you need to study constantly. Some important documentation is available in English only. For example, when I read Joel Spolsky's article where he mention the classical work in MIT about data structures (Abellman is the author, if I remember it correctly) based on Scheme language, it was my natural wish to read this classical work. However, I never found an official translation of this work for Russian readers. Therefore I downloaded the original version and studied it (great book, BTW).

Therefore the situation is like this: you can be a great doctor without knowing a word in English (although you will have to study Latin) or a great physician, but not a great programmer.

Also don't forget about open-source projects that are developed by distributed teams from different countries. Without speaking English you will never be able to participate in such projects. Generally, without having an universal language to communicate, any open-source development will sooner or later turn in building a Babylon tower.

Related question is - how well should a programmer know English? You do not need a Pro or Advanced level of knowledge, but you should have at least basic level.

SPIRiT_1984
True about this.
Yves M.