You have to know English to be a Programmer!
November 21st, 2008 . by Daniel HölblingScott Hanselman just blogged this interesting letter from Fabrice Fonck on Microsoft’s effort to localize Visual Studio and .NET entitled Do you have to know English to be a Programmer? and I wanted to share my thoughts on this as a non-native speaker:
As most of you may know, I am from Austria – so my native tongue is German. There should be about 100 million people speaking that language and so it’s rather natural that there are many sites discussing programming topics in German and also there are many books that get translated.
So, while I know that you could be a rather successful programmer in Germany/Austria without English, I really believe it’s utterly impossible to be a good programmer without being fluent in English!
Why? Simply, because being a good programmer is not about knowledge, ability or technology but about your ability to acquire even more knowledge and constantly improve and refine your skills.
And you really can’t do that if deny yourself access to 90% of the internet’s resources. You’ll miss out on great articles from people like Scott Hanselman, Ayende Rahien, Miško Hevery, Rob Conery, Carl Senguin and many more who have contributed great articles that have influenced my skill directly.
Not accepting that English is the predominant language in software development only fragments the community and hinders sharing of knowledge.
And to be honest, all our programming languages are based on the English syntax, so I can’t think about a way for somebody with no English skills to write code against the .NET framework anyway. The code we produce is in English and defines it’s context/meaning/purpose through naming. Not being able to understand the meaning of System.Net.MailMessage.To is a serious problem when trying to write software (when not copying snippets and samples).
One thing remains to be said:
When writing code I constantly encounter one problem: German speaking customers vs English speaking code.
Naming my objects in German doesn’t work for me, it starts to feel wrong if you mix two languages (English syntax and German variables), so I translate the German requirements and object names to English ones.
This makes it sometimes difficult to talk to the the customer during development, because I use words he doesn’t know and I constantly have to map his words to mine. This isn’t so much of a problem as long as you as a developer don’t mix things up and choose your translations right. Still it annoys a bit and I would be thankful for a English customer once in a while
.
Finally: I switched my blog to English almost a year ago because I felt that blogging in German created a barrier for me. I couldn’t point anyone outside Austria/Germany to my writings. And while many people since have asked my why I neglect German (mostly out of curiosity), I can’t say I have ever regretted this move (and my English did benefit from this).



So true. I'm always completely shocked when I see some code with German or (as I had the great pleasure once) Italian variables, methods, classes and not to forget comments. Extending this project was a complete nightmare. If I'm at the code level, one language is enough. Mixing languages (even if I just use German in comments) would just be to confusing.
Although I don't go that far as translating requirements and design documents into English if I have an Austrian or German customer.
I don't translate them, I write them in english first because I usually base them on some sort of class diagram that's already in english.
I also try to have a very strong relationship between my objects and the real world, so I end up showing the customer many class diagrams that come from the code etc.
[...] said in the past that I believe you have to know English to be a programmer, and sometimes I get a painful reminder about how right I [...]