Sometimes computer science, IT or electronic and communication engineering students get placed in two or three major Indian IT companies and they find it hard to decide which one to join. "Infosys, TCS, or Wipro?" is one of the most common questions I have faced from such students. The answer is much simpler than they think it is.
This blog post is not about how these companies feed the stomachs of lakhs of people. This blog post is not about undermining the efforts of these companies. They are probably good at keeping their customers happy. This blog is not about offending the employees of these organizations. That'll be an unintentional side-effect.
This blog post is about a choice that freshers usually have to make and the information they should have before they make the choice. This blog post is about urging the freshers who want to make a career in engineering to not make a mistake that I did because I did not have the necessary information at the right time; a mistake that I could correct two years later after I realized it. This blog post is about some very unpleasant facts about these major Indian IT companies that you wouldn't know unless you have been a part of it.
ALERT: If you are not interested in making a career in engineering, lack the confidence to do so, or you are very content with working for one of these three companies for reasons that are valid to you, this post is not for you. It won't make any sense to you. Do not proceed.
Now, let me start slaying the different myths that exist about these organizations one by one and I am not going to mince words while doing this. You have been warned.
- Training: People think that these organizations are good for freshers because they get a lot of training which they wouldn't get in other organizations. I must remind such people that attending training programmes is not equivalent to learning. Indeed these organizations provide a lot of training to freshers but only about 1% of the trainees actually absorb the knowledge. The 1% that do absorb the training do not stick to the organization for a long time because sooner or later they realize that they want to do some real engineering. The figure '1%' isn't merely a guess. This is my observation across various trainee-batches that have been trained in one of these organizations. Think about it. Can you learn a new programming language in just 3 days? If your answer is "no", you shouldn't join one of these organizations. If your answer is "yes", you shouldn't join one of these organizations.
- Engineering: One can find engineering problems in these organizations but no trace of engineering. For those of you who work in one of these organizations and are offended by this statement, please go and open your engineering textbooks again. Try to remind yourself what you studied and what you learnt. Consider what you do now.
- Engineers: The number of engineers in these organizations are very very few; perhaps only 1 in every 200 is an engineer. This is a guess, albeit not a wild one. This is why there is no engineering in these companies despite the presence of engineering problems. "But isn't the minimum qualification to get a job in one of these organizations bachelor's of engineering?", you might ask. It is. Yes, all of them have a degree in engineering or computers of some sort but only about 1 out of 200 is an engineer. The rest 199 do not understand why a bitcount of 1's complement of bitwise XOR of two variables would give you the number of similar bits in corresponding positions in both variables, why one can not create a POSIX compliant regular expression to match only strings with balanced parentheses, or how to find the shortest chain of connections between two friends in a social network. Note that I have used 'or' as the conjunction and not 'and'. They may be good software users or good "software-tailors" who can create software by stitching together many library functions but they aren't engineers.
- Culture: One of the worst cultures you can find in the whole of software industry. Very few are busy trying to learn a few things mentioned in the previous paragraph. Some employees are busy figuring out ways to impress their female colleagues using the resources provided by the organization rather than learning and solving problems in better ways. Others are busy cribbing. Here is a shocking piece of information for those who have never worked for one of these organizations. One can also manage to find mud-slinging in company forums once in a while. Professionalism is at its worst here. But they convince themselves that they are professional because they speak English fluently and know how to wear a tie. Employees feel their salaries are pathetic. I feel they are overpaid. How much should a good software user earn?
- Onsite: Contrary to the popular belief, the number of trips to foreign lands isn't a measure of one's technical prowess. It is mostly (but not always) a measure of how dispassionate one is about engineering and his profession, and how greedy one can be for wealth. Some of the best engineers I have met in these organizations were never eager to go onsite, never went, joined an organization where they could put their knowledge and skills to better use and then flew to a foreign land because their knowledge, skills and understanding of technology were needed there.
So, my answer to the question "Infosys, TCS, or Wipro?" is "None." That's not very helpful. Here is a more helpful one. One can consider applying for a job in an organization where he or she can get an opportunity to solve some engineering problems. One cannot learn engineering and programming merely by attending trainings. One has to learn it by doing, solving problems, observing what experienced engineers do, experimenting, screwing up a few times and reworking, talking to good engineers, etc. One can try looking for an organization where the leaders of projects are very good engineers. Start-ups are more likely to have them. Some matured ones are Gluster, Parallocity, SlideShare, etc. New start-ups come up every year. Software companies which develop famous and successful products are more likely to have them. Some good examples are Adobe, Amazon, Google, Phoenix, etc. So, how does one figure whether a certain organization is an organization of engineers or an organization of good software users?
The clue is: Interview.
Remember the questions they ask in the interview. Think about them later. Try discussing the questions with your friends who are known for solving tough engineering problems. An interview is not only an opportunity for an organization to evaluate an applicant, it is also an opportunity for the applicant to evaluate an organization.