Our company, Farata Systems, hires lots of offshore developers who work for us and our clients from the Eastern Europe, which has plenty of good developers. Ten years ago, Indian developers were more competitive comparing to Russian-speaking programmers for only reason: their English was better. You may not believe me, but not only they could read, but all of them could even speak English!
The situation is slowly changing and more and more developers working from behind the iron curtain (btw, is the cold war over yet?) can speak English. While interviewing developers living in the Warsaw Pact countries, I speak Russian for the most part, but always switch to English for five minutes or so.
Why do I want them to speak English? Of course, some projects require direct communication with our clients from the USA. But we also run internal projects where no communication in English is needed – the entire team can speak Russian. We still want them to know English, and for a different reason. In today’s IT world, almost 100% of the latest and greatest information is being published in English: books, blogs, screencasts, videos, conferences, Stack Overflow, and other forums. Sure, some of the books will be translated into other languages… in several years. It’s a bit too late. Google Translate might somewhat help, but it’s a stretch.
If a software developer does not know English – s/he doesn’t belong to our profession. S/he doesn’t care to master the latest and techniques and technologies fresh from the oven. Your English doesn’t have to be perfect (I’m sure some of the native speakers will find poor grammar in this blog too), but you must know and use English to be better programmer.