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
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
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.
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
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
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
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.
Update: October 28, 2011: This post got way more attention
than I wanted. It was discussed and debated at various places
on the web. As a result, here is a follow-up post: Re: Infosys, TCS, or Wipro?