Ask Slashdot: 2nd Spoken/Written Language For Software Developer?
ichimunki writes "I am a mid-career software developer. I am from the Midwestern U.S. and my native language is English. I've studied a few languages over the years, both human and computer. Lately I've begun to wonder what is the best second (human) language for someone in this field to have. Or is there even any practical value in working to become fluent in a non-English language? I am not planning to travel or move/work abroad. But if I knew a second language, would I be able to participate in a larger programming community worldwide? Would I be able to work with those folks in some useful capacity? Perhaps building products for foreign markets?"
The best 2nd language for a programmer is naturally English. What your first language is depends on your nationality.
for most programmers.
That's because most programmers don't have english as their first language.
Just saying it like it are.
The kind of questions that people end up asking seem to scream of "I'm so unsure about myself and what I want and I need somebody to tell me what to do". I just don't get it. These questions asked on Slashdot depress me.
Obviously, if you can and want to, do learn a language. And learn the one that makes the most sense wherever you go and whatever you do. Why are you asking others to tell you what to do?
I'd say that for a software developer specifically there isn't a particular second language that would be useful, as the lingua franca in the software development world is already English. Even in non-English speaking countries it is common to write code and documentation in English, converse in English, etc.
So if you want to expand your potential I'd say choose a second language that's generally useful. If you want to limit it to your own geographic area I'd say Spanish. If you want the largest possible expansion of your potential market I'd say Mandarin Chinese.
You're American - you're going to need Spanish to sound like a local soon -
how else are you going to know what the guys and gals at the local store are saying behind your back.
but seriously - Chinese , Japanese , Korean , Finnish , German are all good starters
who where what when now?
Communication is challenging because Chinese and English are completely different. Why do we expect him to do a better job learning Chinese than the Chinese developers did of learning English, even though they had a lot more incentive to do so? Maybe, occasionally, it might help him if he can clarify things in Chinese. But you have to weigh it against the risk that what he'll be misunderstood because his Chinese is too poor. When things go wrong, do you want him or the Chinese developers to be blamed? If he communicates something very clearly in English, they're at fault if they mess up. If he tries to speak Chinese, there's a good chance that he'll eventually get blamed.
In IT, there's little need for foreign-language skills, unless you happen to live in bilingual country (and even there, it's mostly used as a filter by HR departments). Everyone speaks English and there's a reason why he's a mid-career developer and never had to speak a foreign language.
That being said, learning another language can be a valuable experience. Just don't expect it to be useful on the job.
Coming from someone who has English as third language, I'd say you're fine without, since all documentation is available in English and most discussion is going on in English. I have actually never used my first or second language for participating in software community discussion. OTOH, these are minor languages with 6-10 million speakers worldwide, all of which learn English in school anyway.
However, among the worlds greater languages, there are certainly a lot of people who can't communicate well in English and there is a lot of discussion in these languages. So I would say, pick one major language that could be useful in all walks of life. Or just pick any language that you are interested in. However, for the sole purpose of participating in the programming community, I don't think time invested will pay off.
There are two crucial reasons for learning a language: necessity and personal motivation. If it isn't necessary for you, you'll have to go with motivation. So, pick a language that you want to learn, because you want to learn it.
Lemon curry???
Well, maybe Chinese today and for the next couple of years.
But when labour costs start to rise in China where is the next place that the big multi-nationals will seek to keep their cost base as low as possible? If you can determine that and then learn the local language then you could reap big rewards when the off-shoring goes there.
Of course you can always just go for the long game. Eventually that low labour cost will be found in English speaking countries.
I'd say Russian, Japanese, or German; those three countries seem to have a pretty big focus on technology.
There is a lot to be said for learning a second language in order to understand your own language better, and to realize its deep structures and biases. In the evolution of English, much of the Germanic structure of Old English was eroded away, and the resulting language lost much of its surface logic.
My take is that English speakers benefit from learning a more obviously structured language, and that learning about the structure in itself helps with the programming mindset. To be an effective programmer, after all, you do not only need to be able to make the computer/compiler/interpreter understand you: your code must also be understood by those who integrate with it and maintain it. Thus, all communications skills also contribute to programming skills.
Therefore, my suggestion, only partially tongue-in-cheek, is to study Latin. While you won't find a lot of Romans to speak with nowadays, much less program with, and although other languages exist that also have a great deal of surface structure, the teaching of Latin has always been highly focused on grammar and structure, and a lot of excellent teaching resources exist in many languages.
The major language in India is English (it was a part of the Empire for a very long time). While many try to push Hindi, it is not truly "national", so English is the standard in business and technology. You're unlikely to find much discussion of the finer points of Python list comprehensions in Hindi....
Got them moderator blues I blieve I walk out the do', With these mod-points I been gettin', I 'most never post no mo'
Ditto for me in Japanese. English is incredibly important in the workplace, other languages are not particularly so. Even if you want to move to a country which speaks the language you are learning, it is just as easy to get a job in English it seems. At least in Japan, large developers are mainly working in English anyway and small developers are not interested in hiring foreign talent.
Having said that, it is fun reading both the English and Japanese Ruby mailing lists. I wouldn't learn Japanese just to do that, but it's a nice perk.
I think, though, that even though it hasn't benefited my career to this point, achieving adult level fluency in another language has been incredibly beneficial for me. No matter what language you pick, it's a massive task. It has changed the way I approach long term goals. Most people quit learning a language sometime after they learn how to ask directions to the toilet. Getting to the point where you are functional as an adult in society is at least an order of magnitude different scale. It changes your life.
My advice to the OP is to pick a language whose culture you are interested in. Don't worry about career.
Many language varieties in China would be seen by linguists as distinct. Compare putonghua or guangzhou hua with holooe. Whether you call these 'dialects' or 'languages' or fangyan depends on how you define the term 'language'.
While it is true that some spoken variants of English are quite difficult for other English speakers to understand (such as Black Country English, or the Glasgow Patter), there's not the linguistic range that you would find between the Chinese languages/dialects. Most English varieties are mutually intelligible, and differ primarily in pronunciation and a few words.