Any discussion like this always conveniently forgets:
1. Japanese programmers wrote a huge proportion of cutting edge video games in the 80s, 90s, and 00s.
2. China (and Japan, and Korea, and India...) has a massive domestic consumer and b2b internet, written and scaled by domestic talent. It's much bigger than the US internet.
3. You better believe Koreans and Japanese write a WHOLE LOT of firmware. When was the last time your TV or BluRay player or Toyota ECU crashed? China is clearly playing catch up here - Chinese electronics crash all the time lol.
Of course then there's always the people who don't consider Japan to be "the east"... which always makes me laugh.
Comparisons between Japan, China, India, and Eastern Europe all seem spurious to me. The standard of living, educational opportunities, native language, cultural heritage, etc are all different.
Of course then there's always the people who don't consider Japan to be "the east"... which always makes me laugh.
I would consider anyone who's doing categorizations based on "east" and "west" to be a tad intellectually dishonest.
It's different not just among countries, but within a country. Good developers in big cities in China can make close to 100K USD.
There aren't many, if any, good developers in rural or extremely poor areas. Most of them move to technologically advanced urban hubs. This normalizes the differences a little and still make comparisons somewhat valid. At least less different than if you were to look at country-wide demographics.
People have a persistent blind spot for that one. I think there is Japan-developed software in, hmm, guesstimation, 60%+ of new cars in the US bought in the last 5 years? (Even in "American" cars. Japanese engineers and managers think that America is always one news story away from leading a witchhunt against Japan products. Recent events have, ahem, not diminished this perception.)
Software is rubbish across the consumer space: TVs, DVDs, home routers. To interact with, it feels like somebody has scraped some functions together in assembly to meet a broad requirement, and then left it as soon as they could get away with it.
I expect the projects are hardware-driven. The movers and shakers care about the hardware, and design this first. Then some hardware-oriented guy get the short straw and is told "build a software layer on this technology to fill these checkboxes". The result is the unresponsive, buggy, hard-to-use rubbish that we get in our consumer devices.
I think companies would need to take a different approach to device design to get around this.
I have found most Japanese video games to be really linear. Go from level to level following for the most part a set path. I know these things are popular but I find them pretty boring compared to western developer produced games.
There are exceptions. Pacman was great. But things like Mario and Donkey Kong are about pressing the button at the right time, timing skills, not problem solving or exploring.
With the exception of the major western RPG makers (BioWare, Bethesda), most western games are either just as linear as their Japanese counterparts, or their exploration is almost completely pointless.
Also, I've been very disappointed with the "problem solving" in modern western games, which boil down to "we liked Half-Life 2, so move some crates around!"
Well, "the east" is often shorthand for "low cost outsourcing countries", so in that sense Japan is a country apart from its neighbors.
These discussions also neglect the enormous selection bias present when you're talking about outsourcing. The vast majority of developers in Japan and China are not proficient enough in a foreign language to work with teams in other countries. We're gazing at these countries' developers through a very, very narrow lens.
Very true, but I was a little shocked to see how little of a software industry there actually is. Outside of embedded systems, there's a decent bit of B2B, but even in those more software oriented companies, programming is seen as an entry-level field to get promoted out of as quickly as possible, and a lot of projects are outsourced to India. This is probably related to the lack of 4-year CS programs in Japan - it's largely considered a vocational field, so you either go to Tokyo Tech, or learn English and leave the country.
How does the situation compare for startups (scarce as they may be) and foreign/US-owned companies in Japan? What you described has been a depressing reality for me as someone who majored in CS and Japanese.
There are foreign companies doing interesting work here in japan. People at ibm, google, ms, etc that I know are happy. Others that are still growing like Gilt are recruiting and offering above 10m yen/yr. I'm at amazon, really enjoying it, and we're hiring :)
There's a HN Tokyo group, but as far as I'm aware (I asked a few of them), most of those who have started businesses did it through their spouse - the visa situation is a little difficult for starting a business, but it can be done (I haven't asked patio11, though, he would probably have some insight on this). The guys at (now apparently defunct) starling software seemed to imply on their blog that they were successful starting in Canada and opening a branch in Japan.
On the other hand, getting hired is a touch difficult, too. Companies that post at websites like Career Cross are mostly looking for fluency and lots of enterprise experience - I never even had any luck getting a reply. Most companies who are looking to hire foreigners also only want people who already have the right kind of Visa (an Engineering Visa - btw, if you have one, GrouponJP is hiring a PHP+Perl programmer to do some marketing analysis stuff).
Things aren't all bad, though. I got my job in Japan by going to one of the Recruit/MyNavi events for Japanese students who had studied in English speaking countries. Recruiters chase down the few foreigners there, but admittedly only one company was actually hiring programmers, and I ultimately wasn't happy there - YMMV.
Some video game and consumer electronics companies also hire foreigners, but large companies usually make all applicants take a test that's difficult for native speakers - I applied to Capcom, but they expected me to be fluent and take the test like everyone else. Of course, that depends on the company - you might have more luck elsewhere, and if you're close to fluent, it's worth a shot either way. Try to apply as a "new college graduate" if you can - there's a whole lot of bias against anyone who's held a previous full-time position, and I'm sure it doesn't disappear when they look at foreigner's resumes.
The other route is through foreign companies - I know at least one person at Google Tokyo who originally interviewed in the U.S. On the other hand, I know someone else at Lockheed Martin who's been fighting to get into their Japan office for years now - so how difficult it is depends on the company.
My advice - do Study abroad, JET, or just a 2~3 month trip; go to Tokyo (I personally prefer Osaka, but the jobs are in Tokyo) and go to the HN Tokyo meetup; if no one knows of any openings, apply to a bunch of foreign companies there; if that doesn't work, get a nice black suit and go to a recruiting event.
I don't know who wrote the software, but my hard-drive video recorder crashes quite regularly. Further, I've recently replaced my television, and I've crashed that too.
The discussion on stackexchange focused more on whether programmers in the east, generally speaking, are of sufficient quality. Living in China and going to a local university learning chinese, I've feel that a lot of the symptoms described in the discussion are more of a result of education systems.
A lot of my Chinese friends have expressed the need to get a good job, thus there is pressure for them to be in a major that 'guarantees' that: computer science/engineering is seen as desirable in that light. Having attended one of the computer science classes, I've seen two striking things:
1) Only a small percent of the people in this major are have an actual interest in the topic. The rest hope to get some administrative job in a big company and that this degree will be their ticket in.
2) There is a mechanical sense to the way projects and assignments are done. The philosophy seems to be: if I follow the steps that the teacher gave then I am able to solve this problem. There isn't an emphasis on analysis or synthesis. I attribute this to the emphasis on rote learning.
These two things make it easier to see why the symptoms described in the discussion occur. In addition, I noticed that the level of education is quite behind my own college experience. They were learning things in their third-year first semester that I learned in my first-year second semester.
As a side note, I don't go to one of the top tier universities; I was told that my university is a second or third tier university, so I suspect that this is the reality for most Chinese computer science students.
Funny I noticed both (1) AND (2) to be prevalent at all 2-4 "western" (German, British) unis I observed. And my suspicion was that (2) was a direct result of (1).
Obviously these issues won't exist in UK Cambridge, MIT, Stanford. Also not in Masters degrees at most unis. But I wouldn't call it a Chinese thing at all. Happens the world over based on my anecdotal evidence.
I think it's related to the idea that people are going to college for "training". I see the word 'training', implying blue collar vocational education, used a lot nowadays for supposedly university education. Someone will train you, meaning show you the reproducible steps for operating the machinery or replacing worn brakes. So a lot of people getting these degrees (regardless of country) are expecting to be shown what to do step by step, and that no design will be involved on their own part, given specifications they mechanically translate the specifications into working code.
I attended Texas Tech as a grad student who had to take a number of undergrad courses. Except for a few really good undergrads, almost everything you said about the Chinese students is true of students in the US. Tech could probably be classified as a 3rd or 2nd tier university here. Unfortunately, to be a manager, you have to find a job first.
The problem is likely due to the gulf between good programmers and normal programmers being so substantial. All the normal programmers end up as below average due to the minority at the other end of the curve.
Hence a normal indian programmer is going to be below average. And a normal chinese programmer is going to be below the average.
But a normal western programmer is also going to be below the average.
I've worked with some really bad western programmers. And I read excerpts from western programmer blogs that make me cringe (e.g. the "real men don't catch exceptions or check for nulls" crowd).
The absolute 100% head and shoulders worst two programmers I ever worked with:
The westerner: a consultant from Thoughtworks who deliberately broke core parts of our project, some call it sabotage, others would call it billable hours.
The offshore indian: a completely useless twat who did no work whatsoever but just made excuses. You'd talk to him and get problem A sorted out and then repeat for problems B through H... and then the next problem would be problem A again. It was like it was a roundabout, the same 'reasons' why he couldn't get any work done just kept coming around and around and around again.
Overall, I would take the indian I guess, at least he can be safely ignored.
I've heard that even at top universities in China there are trends among the subjects that don't really exist at the likes of Cambridge, MIT and Stanford.
For example it might be that CS is currently more popular than maths/ physics/engineering, as a result all most top students (including high scorers in the math or physics olympiads) will apply for CS at university regardless of their interest in the subject. Those with the very best performance on the entrance exams will be accepted for CS at Peking and Tsinghau, the next tier of students would have a choice between math/physics/eng. there or CS at a 2nd tier university, and other students between math/physics/eng. at a 2nd tier university or CS at a 3rd tier university.
On top of that the popular subjects will shift with time, so not only is it hard to judge a student's motivation but you might think that on paper someone is a good student because they were accepted for CS, but perhaps at that time CS was picking up students rejected from engineering.
After working for a while as a programmer, I went back to uni to do some post-grad work (while still holding down a full time programmers job). I noticed a couple of things:
Doing the assignments was really easy. My reactions were something like "omg, they wrote a complete and proper spec!" - but it wasn't that. When I reflected upon it, I realised that the spec was very short, but they had removed all ambiguity from it, which made the assignments ridiculously easy compared to real life work.
Secondly although I swore I wouldn't do this, I turned into one of the 'mature students' (read as: grumpy-old-men types) who laugh at students whenever they complain about their workload.
One stark difference between programmers in the east and west is that in the east, people tend to stay in one company much longer. I think that effectively limit their development. Those who are in the west tend to be much more well rounded.
Do you have a citation for that? I worked for a pretty big American firm in Bangalore, and the execs were always complaining to us about attrition in India.
Same here in Vietnam, turn-over rate in the low-paying outsouring "factories" is sky-high. There's actually a real concern that a significant portion of the employees just don't come back after Têt (week long holiday for the Vietnamese new year.)
Part of it has to do with the fact that countries in the east have high brain drain problem. Those who are smarter end up in some college/univ. in the West. If you are in the US, look at the some of the best CS colleges and the number of foreign students studying CS - quite diverse and lots of students from East.
That's an interesting discussion on stackexchange. Don't miss the matching question posted at the same time, "How do programmers in the east see programmers in the west?"
A lot of the remarks there by eastern programmers reflect on their own view of their fellow programmers in the east. The answers show a high level of awareness of the problems caused by the cultural expectations to follow orders and obey the structure and hierarchy.
At first I interpreted this as east coast USA vs west coast USA... and in which case, that's an interesting comparison as well. It isn't nearly as interesting as the former but interesting nonetheless. And if that were the matter in question, I'm actually not sure what I'd think.
As a developer for a US based software company, I have experienced some of the differences first hand. We recently tried to farm out a near impossible task to an Indian company. They, as most of these companies do, promised everything we asked, and built in some contractual loop holes to protect themselves. The code we received is crap. It doesnt really follow our architecture, and will probably take just as long to clean up as it would to rewrite.
That said, I think the problem is that managers think code just needs to be "typed up" to work. Developers are viewed as interchangeable cogs and not technical assets. I'm actually amazed the "port" came out as well as it did with the set of circumstances we presented the company. I work with 3 Indian expats who are all very competent developers, I would say among the best I have worked with. Its just the combination of distance, cultural difference, and lack of problem domain familiarity that causes outsourcing to fail, not bad developers.
Please good sir, help me, me program doesn't run. You make me program run, ok? I need implementaton of program for work, you must write me back very soon, sir.
Numbers can be deceiving. It might not seem like there'd be much difference between 99%, 99.9%, or 99.99%, but there most definitely is -- the same difference as between 1%, 0.1%, and 0.01%.
Having lots of friends who worked in big outsourcing firms in India, and worked myself at a offshore research center for a US company I definitely viewed programmers in the west as better programmers than we were. However, being the US for a couple of years now, I've realized it has a lot more to do with the majority composition of developers in India.
(Of course all of the points below are just what I've seen or felt, and do not apply to everybody.)
New developers working in big outsourcing firms in India:
- Many college graduates who end up in these jobs, are only there because that is the best paying option they found. It is not something they want to do for a long period of time. It's not hard to see that there are not tons of people who are self-motivated to work on piece meal code that belongs to someone else.
- Like in the US, most good developers want some control over the architecture of the code they work on, or want to work on something that they are excited about. This is usually not afforded by the environments in the outsourcing firms. It results in working just for completing the work, and not being very involved in the products.
- Personally I don't think developers in the east are happier just following instructions and not imaginative. Working on different projects every few weeks, without much control over the projects assigned leads many times leads to such behavior. Again, many developers are just looking to do an MBA, move into a project management position, move to the US, or just do something else.
- My friends always talked about those strange people who were content by starting jobs at outsourcing firms. Some of these people really liked development, and were able to handle the lack of control and investment in the result of their work. Others, were more focussed on the money, or external concerns such as loans, marriage etc. These are the people who sometimes are seen as the yes men - working hard, but not smart. However, it's just that their smarts are targeted elsewhere.
- Developers working in outsourcing firms are the ones who come in contact with programmers in the US. The majority of that group, in my opinion, is not really looking to work long time in their position, not interested in development or move away into other areas if they are (or get) better. Only a small portion likes their work, and as mentioned - paid appropriately.
- Thankfully, there is an ecosystem for good developers who want to start their own companies. Also larger companies such as Adobe, Faceboook, Google etc have more equal sharing of responsibility between their US and India centers.
In the bay area most people who work in development roles, really like and want to be doing software development. On the whole, they have more say in the product, architecture and process of development, than developers working in outsourcing firms in India. Also, developers working in companies that value software engineering usually interact with a similar pool of people (which explains the surprise that most 'developers' can't solve FizzBuzz kind questions).
I've worked for a large US consulting company together with the deliverycenters in Manila and Bangalore. The main prominent characteristic of the eastern workstyle seems to me to be discipline.
I'm used from my western colleagues to a lot of discussions on "how"s and "why"s (which I think to be necessary, for the record) but which is absent in the coding practices of my eastern colleagues. They will usually follow a middle road which leads quickly to a usable result
The First/Third World East/West split isn't as concrete or relevant as it used to be, perhaps best explained by Hans Rosling: http://www.youtube.com/watch?v=RUwS1uAdUcI
The first proper comment in TFA hits the nail on the head for India, and is relevant elsewhere. If you approach programmers in a non-Anglospheric country adopting the cultural and business manners and expectations of the Anglosphere then your project is doomed from the get go. This is doubly true for countries like India that technically are too big and diverse to form part of the Anglosphere but have a massive number of English speakers, often as a second language.
I don't perceive programmers from any nation in any particular way, because there are good programmers, there are crap programmers and there are culturally different programmers.
What I will say is that for programmers who have English as a second or third language or not at all it's much harder for them to work as most of the tutorials, books, online resources are written primarily in English for an English speaking populous. Even the languages themselves are written in English following English idioms. How would you feel about programming in a language that uses Mandarin or Hindi as a base language?
44 comments
[ 3.0 ms ] story [ 109 ms ] thread1. Japanese programmers wrote a huge proportion of cutting edge video games in the 80s, 90s, and 00s.
2. China (and Japan, and Korea, and India...) has a massive domestic consumer and b2b internet, written and scaled by domestic talent. It's much bigger than the US internet.
3. You better believe Koreans and Japanese write a WHOLE LOT of firmware. When was the last time your TV or BluRay player or Toyota ECU crashed? China is clearly playing catch up here - Chinese electronics crash all the time lol.
Of course then there's always the people who don't consider Japan to be "the east"... which always makes me laugh.
Of course then there's always the people who don't consider Japan to be "the east"... which always makes me laugh.
I would consider anyone who's doing categorizations based on "east" and "west" to be a tad intellectually dishonest.
There aren't many, if any, good developers in rural or extremely poor areas. Most of them move to technologically advanced urban hubs. This normalizes the differences a little and still make comparisons somewhat valid. At least less different than if you were to look at country-wide demographics.
People have a persistent blind spot for that one. I think there is Japan-developed software in, hmm, guesstimation, 60%+ of new cars in the US bought in the last 5 years? (Even in "American" cars. Japanese engineers and managers think that America is always one news story away from leading a witchhunt against Japan products. Recent events have, ahem, not diminished this perception.)
...
DOT DOT DOT
Software is rubbish across the consumer space: TVs, DVDs, home routers. To interact with, it feels like somebody has scraped some functions together in assembly to meet a broad requirement, and then left it as soon as they could get away with it.
I expect the projects are hardware-driven. The movers and shakers care about the hardware, and design this first. Then some hardware-oriented guy get the short straw and is told "build a software layer on this technology to fill these checkboxes". The result is the unresponsive, buggy, hard-to-use rubbish that we get in our consumer devices.
I think companies would need to take a different approach to device design to get around this.
There are exceptions. Pacman was great. But things like Mario and Donkey Kong are about pressing the button at the right time, timing skills, not problem solving or exploring.
Also, I've been very disappointed with the "problem solving" in modern western games, which boil down to "we liked Half-Life 2, so move some crates around!"
And here's a translation of the original article: http://translate.google.com/translate?hl=en&sl=ja&tl...
He seems to think it's a technological and budgetary issue, not a Japanese-ness issue.
These discussions also neglect the enormous selection bias present when you're talking about outsourcing. The vast majority of developers in Japan and China are not proficient enough in a foreign language to work with teams in other countries. We're gazing at these countries' developers through a very, very narrow lens.
On the other hand, getting hired is a touch difficult, too. Companies that post at websites like Career Cross are mostly looking for fluency and lots of enterprise experience - I never even had any luck getting a reply. Most companies who are looking to hire foreigners also only want people who already have the right kind of Visa (an Engineering Visa - btw, if you have one, GrouponJP is hiring a PHP+Perl programmer to do some marketing analysis stuff).
Things aren't all bad, though. I got my job in Japan by going to one of the Recruit/MyNavi events for Japanese students who had studied in English speaking countries. Recruiters chase down the few foreigners there, but admittedly only one company was actually hiring programmers, and I ultimately wasn't happy there - YMMV.
Some video game and consumer electronics companies also hire foreigners, but large companies usually make all applicants take a test that's difficult for native speakers - I applied to Capcom, but they expected me to be fluent and take the test like everyone else. Of course, that depends on the company - you might have more luck elsewhere, and if you're close to fluent, it's worth a shot either way. Try to apply as a "new college graduate" if you can - there's a whole lot of bias against anyone who's held a previous full-time position, and I'm sure it doesn't disappear when they look at foreigner's resumes.
The other route is through foreign companies - I know at least one person at Google Tokyo who originally interviewed in the U.S. On the other hand, I know someone else at Lockheed Martin who's been fighting to get into their Japan office for years now - so how difficult it is depends on the company.
My advice - do Study abroad, JET, or just a 2~3 month trip; go to Tokyo (I personally prefer Osaka, but the jobs are in Tokyo) and go to the HN Tokyo meetup; if no one knows of any openings, apply to a bunch of foreign companies there; if that doesn't work, get a nice black suit and go to a recruiting event.
A lot of my Chinese friends have expressed the need to get a good job, thus there is pressure for them to be in a major that 'guarantees' that: computer science/engineering is seen as desirable in that light. Having attended one of the computer science classes, I've seen two striking things:
1) Only a small percent of the people in this major are have an actual interest in the topic. The rest hope to get some administrative job in a big company and that this degree will be their ticket in.
2) There is a mechanical sense to the way projects and assignments are done. The philosophy seems to be: if I follow the steps that the teacher gave then I am able to solve this problem. There isn't an emphasis on analysis or synthesis. I attribute this to the emphasis on rote learning.
These two things make it easier to see why the symptoms described in the discussion occur. In addition, I noticed that the level of education is quite behind my own college experience. They were learning things in their third-year first semester that I learned in my first-year second semester.
As a side note, I don't go to one of the top tier universities; I was told that my university is a second or third tier university, so I suspect that this is the reality for most Chinese computer science students.
Obviously these issues won't exist in UK Cambridge, MIT, Stanford. Also not in Masters degrees at most unis. But I wouldn't call it a Chinese thing at all. Happens the world over based on my anecdotal evidence.
Hence a normal indian programmer is going to be below average. And a normal chinese programmer is going to be below the average.
But a normal western programmer is also going to be below the average.
I've worked with some really bad western programmers. And I read excerpts from western programmer blogs that make me cringe (e.g. the "real men don't catch exceptions or check for nulls" crowd).
The absolute 100% head and shoulders worst two programmers I ever worked with:
The westerner: a consultant from Thoughtworks who deliberately broke core parts of our project, some call it sabotage, others would call it billable hours.
The offshore indian: a completely useless twat who did no work whatsoever but just made excuses. You'd talk to him and get problem A sorted out and then repeat for problems B through H... and then the next problem would be problem A again. It was like it was a roundabout, the same 'reasons' why he couldn't get any work done just kept coming around and around and around again.
Overall, I would take the indian I guess, at least he can be safely ignored.
For example it might be that CS is currently more popular than maths/ physics/engineering, as a result all most top students (including high scorers in the math or physics olympiads) will apply for CS at university regardless of their interest in the subject. Those with the very best performance on the entrance exams will be accepted for CS at Peking and Tsinghau, the next tier of students would have a choice between math/physics/eng. there or CS at a 2nd tier university, and other students between math/physics/eng. at a 2nd tier university or CS at a 3rd tier university.
On top of that the popular subjects will shift with time, so not only is it hard to judge a student's motivation but you might think that on paper someone is a good student because they were accepted for CS, but perhaps at that time CS was picking up students rejected from engineering.
Doing the assignments was really easy. My reactions were something like "omg, they wrote a complete and proper spec!" - but it wasn't that. When I reflected upon it, I realised that the spec was very short, but they had removed all ambiguity from it, which made the assignments ridiculously easy compared to real life work.
Secondly although I swore I wouldn't do this, I turned into one of the 'mature students' (read as: grumpy-old-men types) who laugh at students whenever they complain about their workload.
http://programmers.stackexchange.com/questions/50884/how-do-...
A lot of the remarks there by eastern programmers reflect on their own view of their fellow programmers in the east. The answers show a high level of awareness of the problems caused by the cultural expectations to follow orders and obey the structure and hierarchy.
That said, I think the problem is that managers think code just needs to be "typed up" to work. Developers are viewed as interchangeable cogs and not technical assets. I'm actually amazed the "port" came out as well as it did with the set of circumstances we presented the company. I work with 3 Indian expats who are all very competent developers, I would say among the best I have worked with. Its just the combination of distance, cultural difference, and lack of problem domain familiarity that causes outsourcing to fail, not bad developers.
(Wow, was that politically incorrect).
(Of course all of the points below are just what I've seen or felt, and do not apply to everybody.)
New developers working in big outsourcing firms in India:
- Many college graduates who end up in these jobs, are only there because that is the best paying option they found. It is not something they want to do for a long period of time. It's not hard to see that there are not tons of people who are self-motivated to work on piece meal code that belongs to someone else.
- Like in the US, most good developers want some control over the architecture of the code they work on, or want to work on something that they are excited about. This is usually not afforded by the environments in the outsourcing firms. It results in working just for completing the work, and not being very involved in the products.
- Personally I don't think developers in the east are happier just following instructions and not imaginative. Working on different projects every few weeks, without much control over the projects assigned leads many times leads to such behavior. Again, many developers are just looking to do an MBA, move into a project management position, move to the US, or just do something else.
- My friends always talked about those strange people who were content by starting jobs at outsourcing firms. Some of these people really liked development, and were able to handle the lack of control and investment in the result of their work. Others, were more focussed on the money, or external concerns such as loans, marriage etc. These are the people who sometimes are seen as the yes men - working hard, but not smart. However, it's just that their smarts are targeted elsewhere.
- Developers working in outsourcing firms are the ones who come in contact with programmers in the US. The majority of that group, in my opinion, is not really looking to work long time in their position, not interested in development or move away into other areas if they are (or get) better. Only a small portion likes their work, and as mentioned - paid appropriately.
- Thankfully, there is an ecosystem for good developers who want to start their own companies. Also larger companies such as Adobe, Faceboook, Google etc have more equal sharing of responsibility between their US and India centers.
In the bay area most people who work in development roles, really like and want to be doing software development. On the whole, they have more say in the product, architecture and process of development, than developers working in outsourcing firms in India. Also, developers working in companies that value software engineering usually interact with a similar pool of people (which explains the surprise that most 'developers' can't solve FizzBuzz kind questions).
I'm used from my western colleagues to a lot of discussions on "how"s and "why"s (which I think to be necessary, for the record) but which is absent in the coding practices of my eastern colleagues. They will usually follow a middle road which leads quickly to a usable result
The first proper comment in TFA hits the nail on the head for India, and is relevant elsewhere. If you approach programmers in a non-Anglospheric country adopting the cultural and business manners and expectations of the Anglosphere then your project is doomed from the get go. This is doubly true for countries like India that technically are too big and diverse to form part of the Anglosphere but have a massive number of English speakers, often as a second language.
I don't perceive programmers from any nation in any particular way, because there are good programmers, there are crap programmers and there are culturally different programmers.
What I will say is that for programmers who have English as a second or third language or not at all it's much harder for them to work as most of the tutorials, books, online resources are written primarily in English for an English speaking populous. Even the languages themselves are written in English following English idioms. How would you feel about programming in a language that uses Mandarin or Hindi as a base language?