52

It seems apparent that English is the dominant international language for programming based on previous P.SE questions (though a highly upvoted comment correctly points out that asking a question like that on a predominantly English site will skew the results).

However, is there benefit in learning a foreign language for software development? For example, do the Chinese have completely different software tools, languages, technologies, etc? How about Japanese, Russian, and other non-latin based languages? Is there an entire world of software development languages, tools and so on that only exist in these other languages?

Or do people that know these languages use the tools and languages we know and love?

12
  • 2
    +1. Nice question. I would be interested to know myself.
    – Neil
    Jun 26, 2013 at 10:39
  • 2
    Less common languages often have books/tutorials written in their author's native language. For example, for a long time most Ruby stuff was Japanese before it became popular. Jun 26, 2013 at 11:22
  • 6
    In olden times, it was useful to know Japanese if you were console video game developer. Jun 26, 2013 at 14:47
  • 2
    Interesting page related to this on Wikipedia about Non-English-based programming languages.
    – Alexander
    Jun 26, 2013 at 17:22
  • 1
    I have worked with Chinese and Russian developers and they worked in English, so I would say that while it is always beneficial to increase your skills, the effort of learning a difficult language (by which I mean it does not use the Western alphabet) is probably negligible.
    – Heatwave
    Jun 26, 2013 at 22:34

14 Answers 14

44

I'm going to answer your title question. The answer is yes, but not for the reasons you're after. Being multilingual in spoken languages, IMO, can help you separate ideas from the things used to express them. For similar reasons I recommend learning at least one non-c-based syntax language if you started with one.

7
  • 17
    +1 Knowing multiple human languages can help with abstract thought, and that is often applicable in software development.
    – Allan
    Jun 26, 2013 at 18:55
  • 4
    +1 (more if I could) I've seen far too many people create problems for themselves because they could not understand the difference between a concept and the words used to describe it.
    – Anton
    Jun 26, 2013 at 21:07
  • 3
    I find knowing a signed language, such as ASL, gives you a different perspective on languages in general
    – TruthOf42
    Jun 27, 2013 at 19:31
  • 1
    @TruthOf42 at least you won't find code commented in ASL.
    – nalply
    Jun 27, 2013 at 20:27
  • 1
    @EricDong I don't know. I learned Norwegian when I was 7-8 years old. I get the impression from interaction with people over the years that a lot of people don't regularly catch themselves thinking non-verbally. I think knowing more than one spoken language would help a lot with that. Knowing ASL would probably help even more. And of course learning multiple programming languages from very different schools of design helps a lot too. I'm a lousy poet but I suspect it's a lot like that. The more you see behind the curtain of words, the more efficient you get in expressing any idea. Jul 3, 2013 at 2:45
13

No. You are not missing out on any study material.
As a native dutch speaker I can promise you that my development environment + most of my reference material is written in English. There are a few syllabi that are written in a different language, but I can assure you that there isn't any magic in any of them.

However, I can imagine that documentation on API's/webservices/projects or comments in source code can be in a different language then English. For that I would suggest you cover some of the most spoken languages: Spanish, Arabic and Chinese

2
  • 5
    This will also of course depend on the chosen field - for games, I imagine Japanese might be quite handy.... Jun 26, 2013 at 16:27
  • I worked on code commented in three different languages: French, English and German.
    – nalply
    Jun 27, 2013 at 20:25
12

It might make sense when you want to specialize in a specific technology which was developed in a non-english country.

SAP, for example, is a German company. SAP ERP, the behemoth of a software usually referred to as "SAP", has most of its user software modules written in SAPs own programming language ABAP. As a developer you can (and often have to) look at the ABAP code.

A decade ago most of the ABAP development happened in Germany and there was no policy that comments and identifiers need to be in English, so you find a lot of German in legacy ABAP code.

As an ABAP developer I frequently need to debug legacy code written by SAP. I am a native German speaker so it's just a mild annoyance for me to mentally switch between German and English all the time, but I really pity everyone who doesn't speak German and suddenly finds himself in sourcecode commented in German.

You also find some German in older APIs. For example, the current time is found in the global variable SY-UZEIT. "Uzeit" is short for "Uhrzeit", which is German for "Time of the day". A customerID is a KUNNR ("Kundennummer"), an amount of money in house currency is a BETRH ("Betrag - Hauswährung") etc.

I've heard anecdotes of poor non-German ABAP programmers who have a German dictionary right next to their ABAP reference book.

1
  • I had a similar experience working with TYPO3.
    – liori
    Jun 26, 2013 at 23:35
9

Unless you plan your career in place like China with self-sustaining market I'd bet that English is more than enough. Hobbyist may use other languages but in every paid works I saw anywhere around English was the mandated language. For practical reasons too.

On the other hand knowing more languages can help your career in satellite activities. Many programs are localized, and both translation and testing requires people knowing the target language. It is a valuable "skill". So if you have affinity for this, just go ahead and learn up.

2
  • 1
    IMO it is generally be a mistake to employ a translator who was not raised speaking the target language. Many Americans may be quite competent to translate a foreign language to English, but very few will be competent to translate English to another language. Jun 26, 2013 at 16:55
  • 2
    sure, and a programmer would be a waste as translator too -- but it's good if he can spot problems related to l10n
    – Balog Pal
    Jun 26, 2013 at 16:59
8

Yes, learning another language will further your programming career. This is because in my opinion, learning another language will further any career.

This is for several reasons, some of which have already been touched on above:

  • Learning another language will expand your horizons; it will necessarily expose you to aspects of another culture and way of thinking and give you experience in mapping this to your own thoughts. Obviously, this has parallels with programming, but it is also a generally useful skill for inter-person communication.
  • Learning another language (especially your second) will help you understand how your own language works, because you are forced to analyse how the grammar of the new language works and how it maps to the grammar of your own language, rather than blindly accepting that "that's how it is". Even if you only use your native tongue in your career, better understanding it will help you communicate more effectively.
  • Having even a little knowledge of another language can make you look really good. All but the smallest companies will have to deal with foreign suppliers or customers. Even if you both conduct your business in English, being able to exchange small pleasantries (greetings, for instance) with people in their native tongue creates a good impression. Being available to create that good impression will increase your standing with your company.
  • Knowing another language will help you communicate more effectively with native speakers of that language, even if you are using your native language. This is because you can spot attempts to use constructs that are common in the foreign language and get the meaning from them, even if they are not so clear in your own. Similarly, it will help you spot and understand any false friends that may crop up.
  • Knowing a language well opens up the possibility of working in countries where that language is spoken. This widens the pool of potential jobs available to you, which in turn means you will have more opportunities to further your career.

So, to answer your questions directly: Will learning a foreign language open up an amazing new range of programming languages and learning resources? No. Will it make you a better software engineer? Probably not directly. But will it help make you a better, more-rounded, more-employable person and advance your career? Absolutely.

2
  • 2
    +1! To say it more broadly: This is because learning anything (for most values of any) will further any career. But not only that. A more educated human simply has a better life.
    – Ingo
    Jun 27, 2013 at 18:19
  • Non English people see the weakness of English when API are not focused on technical mathematics or business. Thinking in a language, and translate in another (with different rule, syntax, grammar) need creativity, imagination, and humor.
    – cl-r
    Jul 4, 2013 at 7:07
7

If English is your native language, learning a foreign language will probably not help your programming career much directly. Personally, I think that knowing foreign languages is a very good general exercise that expands your horizons ("Wie viele Sprachen du sprichst, sooftmal bist du Mensch"), but if you are only looking into instant gains, it's probably not worth the fuss.

Self-realization aside, here are some situations in which I think you could benefit from knowing a foreign language for purely pragmatic reasons:

  • Cooperation with partners or customers from abroad. Even if you don't know the language well enough to communicate, knowing some basics may make you aware of issues which may arise in the communication or of problems which users of foreign languages may have with your product.
  • Working on any product that needs to be internationalized well. Without knowing the basics of some foreign language, you may be left wondering what all the complex i18n libraries are for (like why the message "%d new messages" may require several different translations to the same language depending on the value of %d).
  • It helps in understanding the complexities of proper Unicode handling.

However, as mentioned earlier on, in many situations the benefits won't be worth the effort if you only look at the immediate gains.

6

English is the dominating language in the field, not only in EU/US.

As a native speaker of Chinese, I know people there are using the same set of OSs, programming languages and tools. Some of them are translated into Chinese, the rest are not as difficult as English novels. There are a few "Chinese programming languages" that has Chinese keywords, they are not widely used or even considered serious stuff.

Currently I am living in Japan and I see similar things here. So at least I don't think knowing Chinese or Japanese or other mysterious natural language can grant access to irreplaceable resources.

On the other way, I did benefit from (non language-specified) theory of semantics. In both natural language and programming language, it helped me to distinguish and refine expressions in a way similar to code review.

5

The only direct benefit to learning a different language is to give you a better appreciation of the issues around i18n. That is, just like date formats, there are different rules for grammar, such that localisation can't be done by just adding placeholders for strings.

If you just want to improve your programming career, there are much more effective uses of your time, such as brushing up your existing skills, or learning a different programming language, preferably from a different paradigm.

Having said that, there are many beneficial direct and side effects to learning a different language, especially if you are monolingual. A lot of things that seem obvious to multilingual people are actually not so obvious if you haven't been exposed to different languages, for instance I've noticed a lot of monolingual people don't seem to realise that language-dependent jokes (such as puns) don't work at all when translated. This can help stop you from making insensitive blunders, of which my favourite example is the apocryphal story of Pepsi's "come alive" ad being mistranslated in Chinese as "bringing your dead ancestors alive". Having this extra sensitivity is helpful in any career.

In conclusion, I think learning a new language provides great benefits; I just question if it's an efficient use of your time.

2
  • I guess english is your mother tonge. Jul 4, 2013 at 17:24
  • @user61852 I have no idea how you'd get that, but you're wrong. Jul 4, 2013 at 23:13
3

English is the language of problem solving.

Watch this short video.

"Your native language is your life, but with english you become part of a wider conversation, a global conversation about global problems, like climate change or poverty... mathematics is the language of science, music is the language of emotions and now english is becoming the language of problem solving."

-- Jay Walker, american inventor and entrepreneur

I guess if the Roman Empire had not collapsed, we would be writing in latin right now.

Definitively english is the language to go. My native tongue is spanish and though spanish is one of the most widely spoken languages, the amount of technical material, documentation, tutorials, blogs, Q&A sites, etc. in spanish doesn't even come near the vast a amount of resources in english.

Also english has a concise quality to it that makes it unambiguous in many contexts.

Other reason: iTunes U.

2
2

I am fluent in Chinese, and on occasion have peeked into the world of Chinese programmers. Most of their learning material is translated English stuff, so you are not missing anything on that front. However, It is interesting to see cultural differences in programming technology choices. For example, Go seems to be more popular in China than in any other country. You can check doing a google trends search for 'golang': http://www.google.com/trends/explore?q=golang#q=golang&cmpt=q

2

While English is the de facto software developers' language, a few times I've been able to find hints & solutions on community sites in other languages. Automated translation makes mush out of such pages, so it's nice to be able to read it as is.

Of course, if you're working with people who are more proficient with another language it can be very good, in both a professional and a personal sense, to be able to communicate in their native tongue. Depending on their level and yours, it may be easier to learn a couple technical words in their language and have them express themselves in the most comfortable way than to shoe-horn their understanding into a language where they are more likely to make semantic mistakes.

1
  • Automated translators translate "table" into spanish "mesa" which means the furniture you are served food on, regardless of the context being about database tables. Jul 4, 2013 at 17:21
2

It depends what you understand as career.

If you have work as employee in your country, and you want it to stay so, there's usually no need for you to know any language except your native and English. An exception may be, when your company's main client is foreign company, and you should know the language of that company. For example, many companies from west Poland are cooperating mostly with German companies, and knowing German is a great advantage, or even requirement, for working as senior developers (while juniors don't have contact with customer, they are not required to speak German).

However, if you want be a freelancer, you need to be fluent in the language of your customer. You can of course target English-speaking countries only, but knowing for example German or France gives you more opportunities, and potential better payed contracts.

If you want to work abroad, it depends. Of course, going to USA or UK, the English is the correct choice. In small countries (in Europe) there are many English-speaking teams, so as a foreign contractor, you can hope for many English-speaking jobs for example in Denmark or Netherlands.

But in big countries such as Germany, English-speaking jobs are an exception, and without knowing German good you have little chances of finding something. To get best payed contracts, you need to speak German fluent, but you can then get really good payed jobs.

2

This is a good question. I would argue that it is useful to learn another spoken language for the same reason it's useful to learn another programming language: it allows you to think about things in new ways.

For better or worse, English is the universal language of programmers. So you're not likely to miss out on much due to only speaking English.

1

Its seems that all people here seem to agree that there is no immediate benefit of learning another language for programming directly (programming languages are mostly based on english, it is the language of computer science textbooks and journals, etc.).

Nevertheless knowing a foreign language is beneficial in a lot of ways. That is at least what my experience learning several foreign languages tells me. You will learn different ways of expressing things in other languages and it will open new ways for you to look at things.

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