A never-ending debate is that about the quality of Indian software developers. It is said that most developers around the world begin coding at a ridiculously young age. However, it will surprise many to know that in India, only one in ten start coding before the age of 15. The number is three out of ten elsewhere!
See the difference? Hence, we have always heard time and again that Indian software developers are ok-to-mediocre coders, are not technically competent, and most times, clueless.
Robert Baptiste, a French hacker who challenged UIDAI’s security (the agency that issues Aadhaar) in 2018 tweeted,
“I use to work with Indian developers and sometimes it’s very painful. Seriously, you are a senior developer and you don’t know how to use Git? You are a backend developer and you don’t know how to do a curl request?” (sic)
Baptiste explained his statement in subsequent tweets. He stated the core problem of Indian developers was that they lacked curiosity. He further added that not knowing something is no biggie, but then one needs to be curious.
“Sometimes, the candidates are googling basic questions during the interview,” he tweeted. “Don’t get me wrong, there is plenty of good developers in India and it’s ok to don’t know something. But at least, if you don’t know something to be curious, try to learn it and understand. The lack of curiosity is really a blocker for me.” (sic)
It is a well-known fact that a significant percentage of people working for technology giants across the globe are none other than Indians. They are considered as high-quality resources there.
Also, the country houses top colleges and universities for computer programming, such as IIT Bombay, IIT Delhi, BITS Pilani, IIIT Hyderabad, and others.
So why are Indian software developers considered bad? Is the scenario different only in their motherland and not elsewhere? Let’s dig deeper:
Inefficient education system
Of course, the Indian education system doesn’t help. It is only focused on exams and knowledge is not a priority. Schools and colleges in our country aim to mold students with high scores.
Hence, a good percentage of students mug up textbooks. Also, most teachers rely on books, giving students little or no practical experience.
An engineering student, on an average, has to study more than 40 subjects in 8 semesters; this equals to almost 6,000 hours of attending classes and grasping more than 300,000 pages of information.
Of the 6,000 hours devoted to studying, only around 500 hours are actually spent on hands-on lab work. If a student is given so many books to read but not enough time to indulge in practical experience, what can he learn?
Also, students are mostly forced to take tests that show only their retention powers and not their actual capacity or knowledge.
It is said that the amount of new technical data doubles every 2 years.
However, most educational institutions still teach Java, Turbo C++, and pre-standardized C++. So, for students starting a 4-year engineering degree, half of what they learn in their first year gets outdated by their third year of college.
Research says, around 1.5 million engineers graduate every year in India, with 80% not even employable. Then some become teachers. Thus continues the vicious cycle!
Fault in hiring processes
Going by the current hiring patterns, it does not seem like the majority of the industry wants people who can code well.
Rudimentary coding knowledge and a degree seem to suffice, and most of what our so-called “graduates” are doing, is warming benches at plush offices.
With respect to developers, hiring at scale has been quite straightforward; shortlisting on the basis of academic performances, a FizzBuzz test (Read – Technical interview tips – Beyond Fizzbuzz test), and some pen and paper code that makes sense.
In the best case scenario, an Individual assessment for each candidate is ideal. However, it would not work at large scales. IT companies mostly do mass hiring with time constraints. Some IT companies in India hire as many as 3,000 – 5,000 students, from a single college.
Thinking about individually assessing each one of these candidates is simply preposterous to them. Companies need a thorough introspection; if they want good coders, they need to start by the way they hire.
And asking the right questions, of course! It doesn’t matter how old Jane’s mother is, given the age difference!
The customary, “How would you rate yourself in XYZ language?” doesn’t make any sense, when it’s out of the context of a real-world problem.
Coder by profession not passion
Most engineers choose IT as it is considered one of the most luring white-collar job industries. In India, a good percentage of students land in Engineering colleges due to parental/peer pressure.
Even those with a non-IT background end up choosing IT jobs at campus interviews, attracted by the lucrative salary. Not driven by any liking for the profession, they usually go with the flow as it is their source of income.
Many such resources work mechanically, without understanding what they do. This causes technology stagnation and stunts the growth of developers.
Passion has an impact on how well one does his job. If a coder is never trying to program out of his job, run side projects, and look for tech events, then “bad” coding is bound to happen.
Lack of opportunity to work on cutting-edge tech
The IT industry in India is mostly service-based, which means it primarily comprises companies that work on products already created by clients and provide services to them.
These companies generally undertake projects from product-based companies concerning software testing and handling the database and general consumer functions. Hence, there’s not much scope of indulging in R&D.
Also, there is less innovation and flexibility because one has to work on deadlines set by clients. In service-based companies, coders are only trained to work with existing technologies and manage them in comparison to product-based companies where they are allowed to learn technologies and let their creative juices to take over and develop something new.
Clearly, there is a strong correlation between the pointers stated above and the quality of developers in India. Maybe it’s the curse of rudimentary techniques.
Or perhaps the more experienced devs believe that the existing methods are fine and sufficient because, well, they have made a career out of the existing ones. However, there’s still reason to be hopeful as “change is the only constant.”
Most talented developers in India are underutilized or not utilized at all. The IT industry in India needs to equip itself with the right growth mindset and an ecosystem with active technology communities.
Furthermore, companies should promote participation of their employees in such communities to help our developers break the “monotony chamber” they are currently in.
How to find a good software developer in India?
Before we delve deeper into the question, it may be wise to define who a good developer is. A good developer
- Asks questions
- Has good communication skills
- Is Honest
- Is responsive
- Keeps deadlines
- Keeps integrity
- Suggests inputs
- Takes up requirements responsibly
- And the most obvious know how to code
Read more on how universities can use online assessment platform for students HERE
Look for specialized IT forums, such as StackOverflow and GitHub, where expert developers come to share their ideas and thoughts.
Coding platforms like HackerEarth help you connect with a developer community of more than 2.5M, who regularly interact through various coding challenges. These developers are on the platform to hone their skills and are keen learners.
Meanwhile, you can check out HackerEarth Recruit, a technical recruitment platform that helps in efficient technical talent screening, allowing organizations to build strong, proficient teams.
With a library of more than 15,000 questions, technical leads and even non-tech recruiters can conduct tests on a large scale to grade developers for virtually any technical role.
(Also read – Advantages of using online assessment for students)
Here's what you can do next
Check out FaceCode:
an intelligent coding interview tool