

How do programmers in the west see programmers in the east? - nsoonhui
http://programmers.stackexchange.com/q/50831/468

======
m0hit
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).

------
kaptain
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.

~~~
dualogy
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.

~~~
bugsy
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.

------
S_A_P
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.

------
iuguy
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?

------
bugsy
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?"

[http://programmers.stackexchange.com/questions/50884/how-
do-...](http://programmers.stackexchange.com/questions/50884/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.

------
ireadzalot
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.

------
blago
The sane among us think that 99% of developers here in the States are mediocre
at best. The EAST is no different. Does this answer the question?

~~~
wnoise
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%.

~~~
blago
Of course, once you find yourself in the realm of decimal points someone will
bring up margin of error :-)

~~~
wnoise
And it's a fair point too. And I'm not meaning to claim that these particular
numbers are actually relevant to the debate.

~~~
blago
agreed

------
ggeorgovassilis
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

------
cray64
Through telescopes... <squint>

------
biobot
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.

~~~
microarchitect
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.

~~~
cycojesus
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.)

------
tastybites
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.

~~~
DannoHung
3: Uh, crashed or were terrible? Former, not so often. Latter...

...

DOT DOT DOT

~~~
cturner
Your wording is odd but this is a great point.

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.

------
TimothyBurgess
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.

