Blaming "rote learning" for lack of technical capability of a considerable majority of a "regular" Indian programmer is simplistic.
If I may list the issues that are possibly unique to Indian programmer, they are, in no particular order:
* Money triumphs everything. Most Indian programmers don't care for the technology as long as money comes
a) in ever increasing quantities
b) from a reputed, brand-name company
c) offers foreign travel, with US being first choice.
* Admissions to Engineering courses depends entirely on how "HOT" the market is for that degree. couple of years back it was CS. Now it is Electronics and Communcation Engg (ECE), just because it allows you to compete both for CS jobs and Electronics jobs.
* "Work Ethic" - that can be quantified as pride in one's individual contribution, quality of output, constant drive to improve one's skills and knowledge as a distant measure after social status, money for many Indian programmers.
* Enjoying Programming for the sake of it is considered trivial pursuit and not "serious". For instance, being a Python/Rails/Lisp/Haskell programmer of some capability is a matter of pride in US etc. Not so in India. If you are not working on "Enterprise" stuff, all you get is a "oh.. ok".
Of course generalising the above behaviour to ALL Indian programmers is a disservice and wrong. As a hacker(if I may claim so myself) and a native of Bangalore, I'm proud of many excellent programmers I have met in the last 10 years and I feel that many of us are on par with hackers from elsewhere in the world.
To answer your "selection bias" question.
There are many reasons why you will not get a qualified hacker to appear on your radar. Getting a US visa is a huge pain in the neck. If you want a H1B you will have go through a lot of circus.
Any self respecting hacker would balk at paying upto 60% of their salaries to body shopping firms.
H1B applications are flooded on the first day of applications by big name companies and body shoppers. This leaves no space for a hacker (who by nature are content to be hacking on their own) to "hustle" to get into USA.
I wouldn't touch a lot of these H1B programmers myself. My own hiring processes back home in India have been similar to yours. I would typically give a programming test and a computer to the interviewees and ask them to solve them for me. A significan percentage of candidates from large, brand name companies would fail. Some of them wouldn't even know how to use command line SQL query tools.
So, your sampling population is the one which is contaminated by people who are largely motivated by the desire to work in US and not by technology.
Your points are true for Indian programmers who work for outsourcing shops. Many don't.
Google probably has 10K+ H1B engineers from India working for them (and not via an intermediary). There are thousands of H1B engineers from India with graduate degrees from top US schools. A very large majority of these Indian programmers care about technology, as do most programmers in India who work for software (non outsourcing) companies.
By saying that "Most Indian engineers don't care for technology" you are painting these guys with the same brush. Even with your qualification that "not all are like this", it reeks of bias. A more accurate statement might be "Most Indian programmers who work for outsourcing shops don't care about technology".
/An admittedly biased but more informed opinion from someone who has worked as an H1B engineer, has a graduate degree from a top 5 CS school in the US
This was in reply to a question where the poster wanted to know why it is hard to find good Indian programmers who currently live in India.
Someone who has studied in US does not really belong to the "Indian Programmer" set I was talking about here.
If you read my comment elsewhere in the thread, I defended people working for non-SWITCH companies including google for bucking the trend. I know that the caliber of programmers working for Goog, Y!, MS, Adobe is much higher than the typical Indian programmer who aspires to a H1B visa, whose primary motivation for a US Visa is increased money and social status.
I'm not painting everybody who is on H1B as bad. But if you consider that nearly 100,000 apply to H1B visas from India, it not hard to see that a vast majority are not of the same caliber as potential GOOG/MS/Y! employees.
Well, I have worked in India for 8 years as a programmer and have interviewed dozens of potential employees to work for startup companies that I worked for AND I have had the opportunity to interact with a wide sample of H1Bs in the USA. I stand by my measure of "most programmers" even if it is anecdotal.
And your paraphrasing "Most Indian programmers who work for outsourcing shops don't care about technology" carries the same bias that you try to dispel. I personally know a lot of programmers who work/used to work for SWITCh companies while also being excellent hackers and FOSS contributors.
If I may list the issues that are possibly unique to Indian programmer, they are, in no particular order:
* Money triumphs everything. Most Indian programmers don't care for the technology as long as money comes
* Admissions to Engineering courses depends entirely on how "HOT" the market is for that degree. couple of years back it was CS. Now it is Electronics and Communcation Engg (ECE), just because it allows you to compete both for CS jobs and Electronics jobs.* "Work Ethic" - that can be quantified as pride in one's individual contribution, quality of output, constant drive to improve one's skills and knowledge as a distant measure after social status, money for many Indian programmers.
* Enjoying Programming for the sake of it is considered trivial pursuit and not "serious". For instance, being a Python/Rails/Lisp/Haskell programmer of some capability is a matter of pride in US etc. Not so in India. If you are not working on "Enterprise" stuff, all you get is a "oh.. ok".
Of course generalising the above behaviour to ALL Indian programmers is a disservice and wrong. As a hacker(if I may claim so myself) and a native of Bangalore, I'm proud of many excellent programmers I have met in the last 10 years and I feel that many of us are on par with hackers from elsewhere in the world.
To answer your "selection bias" question. There are many reasons why you will not get a qualified hacker to appear on your radar. Getting a US visa is a huge pain in the neck. If you want a H1B you will have go through a lot of circus. Any self respecting hacker would balk at paying upto 60% of their salaries to body shopping firms.
H1B applications are flooded on the first day of applications by big name companies and body shoppers. This leaves no space for a hacker (who by nature are content to be hacking on their own) to "hustle" to get into USA.
I wouldn't touch a lot of these H1B programmers myself. My own hiring processes back home in India have been similar to yours. I would typically give a programming test and a computer to the interviewees and ask them to solve them for me. A significan percentage of candidates from large, brand name companies would fail. Some of them wouldn't even know how to use command line SQL query tools.
So, your sampling population is the one which is contaminated by people who are largely motivated by the desire to work in US and not by technology.