English is not my first language. Sometimes I can not understand some technical papers or articles because of the language of the author, not because the topic is complex. Does it mean "I cannot enhance my programming skills except via enhancing my English first"?
Absolutely. English is not my first language either but things got a lot easier when I was able to understand not only the language but its nuances. Nowadays there is no way you can properly program if you are not proficient in English.
Happy learning.
Unfortunately, that is a likely requirement. A lot of technical papers, especially those concerning computing, are published in English and then they may be translated to different languages later. If you want (or need) to read an article or paper that isn't available in your language of choice and you can't understand it how it is currently written, you need to wait for it to be translated or improve your english in order to understand it as it currently stands.
As an English speaker I have limited objectivity here, but I imagine that the vast bulk of literature being in English is indeed going to make life harder for a non-anglophone, particularly in the corner cases of coding which are going to get less coverage in general.
From what I've seen googling my own bugs though a wealth of support does exist at least in Spanish, French, various forms of Chinese, Japanese, and Portuguese (I put the latter down to the Brazilians).
In the United States, many graduate-level programs in different disciplines require that a student also take time to learn a language other than their own. This is generally so that they can comprehend peer-reviewed literature in that language, as there's much work from those speakers. This is a little more common in the liberal arts. In the sciences (including computer science), it's understood that English has become the language for everyone to know. This has to do with a lot of social trends concerning the English language, and isn't soon to go away.
I would say that it's very important to master English if you'd like to read scholarly papers in it. You don't need to be fluent; you can always use a dictionary or ask a native speaker friend. By improving your skills in natural language, you may also find your talents as a programmer and your talent at learning programming languages improve as well.
Learn some english if you plan to do products in English, please. We're sick of broken english in error messages etc that doesn't make sense
If you are not able to speak english fluently, you will most likely not get an acceptable job in any IT company. If you can't speak it, you might get an underpaid job in some small company with work times way beyond what you contract says, but if you want something that ensures a living, better learn english asap.
As a native English speaker I can only extend my sympathies to you. Some technical publications are written so badly even native English speakers have trouble with them. This can be especially true of academic papers where use of obscure terms, extremely long sentence length and multiple nested clauses seem to be the marks of "good style".
Having struggled through German Language banking regulations, and, the French documentation for payment card systems (only on the second reading did I realise that it was just a very poor description of EMV!) I know how difficult it can be to read jargon filled papers in a foriegn language.
I'm not a native English speaker myself. I learned the basics at school and improved by reading English literature. Even though i am not too familiar with the language, i never had any trouble understanding documentation or papers. Actually i prefer and regularly use English books instead of German ones (my native language). Everybody should be able to easily reach my language level by simply being interested in English and occasionally looking up and learning a new word. Of course, this is not easy at first, but you might come to enjoy it once you get the hang of it and it will surely work out.
Things get more difficult if you want to actively participate, but for improving programming skills, that's rather a minor part.
I'm not a native speaker myself, but I feel that English has, if anything, enhanced my programming abilities because there are not that as good resources available in my native language (Dutch). There are some for more generic topics (e.g. explaining languages and common data structures) but those tend to be no more than awful translations of the original source. Specialist topics are even worse because research papers hardly ever get translated and the number of people that are proficient in those areas and speak my particular language are very small.
As a programmer, you should realize the essential convenience of a single intermediate language. Rather than having N^2 translators for N languages, we can get away with 2N translators. Can you imagine what it would be like if you had to learn French, German, Russian, Hebrew, Japanese and Chinese, rather than just English? These countries have active and important coding/computer science communities, and English happens to give you access to all of them.
Certainly there are things you can do to get better at programming without first getting better at English. (For example: write more programs.) I'm surprised that all ten answers so far tell you to learn English, instead; I thought programmers were a literal-minded bunch.
Better English would help you, though. On the other hand machine translation keeps getting better all the time; ten years ago it was a joke.
This may cast be as a bit of an "Ugly American", but here's my opinion.
What you suggest is true, but it is not limited to the IT industry. The entire world is moving toward speaking English, so to exist in the global environment, you will have to speak English.
The evidence abounds: The vast majority of Internet web pages are written in English. In almost every situation where people speaking different language need to agree on a common language to interact, whether is international air traffic controllers or states of India, that common language is almost invariably English.
I think it is exactly the opposite
Getting new programming skills, will enhance your English.
When I started learning to program I have very basic knowledge of English, yet, by reading technical articles, book, papers, tutorials etc. I managed to learn the new technology in turn and improve my English knowledge in the process.
As a matter of fact at some point I thought I knew English already, so I decided to read a book ( non technical book ) in that language and for my surprise there were a LOTS of words I didn't knew. And of course, non of them were technically related and words in my recent acquired vocabulary weren't present in that book ( very few books talk about polymorphism , encapsulation, abstraction and inheritance , well about inheritance, they use "heir" a lot in the Hobbit :P )
When I get some programming books in my native language, they do hinder my progress. Because everyone uses a different term for the same thing, and at the end I don't know what are they talking about, until I get the english version.
Of course, a basic knowledge and a good dictionary ( or google translate ) is mandatory to such endeavor ( he heh I have never used endevor before... :P ) but about 50% or less of English command is needed to start learning about programming. The rest, you would learn it in the way. After all, the native speakers would have the learn the same new terms as well.
One thing that troubled me a lot was the word "instance", for "instance" in my native language is seldom used, but it exists "instanc*ia*".
Here's a somehow related entry:
Quite the contrary, learning programming can help you learn English and vice versa. My vocabulary widened by reading programming books and online articles. Some words I frequently encounter in programming books and articles that adds up to my vocabulary: misnomer, rationale, drawback, chicken-and-egg, lack thereof, interim, pedantic, infer, intuitive, analogous, mundane, run-of-the-mill, dabble, tinker, redundant, superfluous, piecemeal, corollary, oxymoron, quite the contrary, etc.
One good technique so you can easily lookup some unknown or technical words/phrases you encounter while reading online, on Chrome: Press Ctrl+T, type: define:some word or phrase here. On Firefox: Press Ctrl+T, Ctrl+K, type: define:some word or phrase here
Google's define functionality is an amazing tool for English learners, you can easily lookup the meaning of words and idioms.
Microsoft should go ahead and discontinue at least the German releases of Visual Studio. You got at least three major disadvantages:
- English Google requests will give much better results, but you need to know the magical catch words.
- Parts of MSDN are translated nearly impossible to understand in German. They even translate their own Buzzwords!
- Money is better spend in fixing bugs in IDE.
(Best computer made "translation" which I ever found on MSDN: Winterschlafbundesland! Does anybody guess the original meaning?!)