This article was originally published in 2015, and some of the data & statistics used in this article might be outdated and not applicable to the present placement scenario.
What does it mean to take up a computer science job as an IITian? What are the various sides to the ever-present startup versus large firm versus higher studies dilemma in this field? What’s the future like, and what does it make sense to do?
In the final article of our career series, we uncover this and much more. With plenty of perspectives from alumni who’ve pursued a variety of paths, this should give you a good peek into the world of software and help you decide if you want to be part of it.
The content on this website is strictly the property of Insight and the Students’ Gymkhana IIT Bombay. If you wish to reproduce any content herein, please contact us:
Mail to: insight [at] iitb.ac.in
When you imagine a software engineer, the first mental image that forms is that of a person sitting at their desk all day long, typing code, coffee mug at their side. And if you buy into Hollywood’s stereotype, the person is probably a male, unkempt hair, and slouches a little to peer better into his screen.
Well, computer science has come a long way since this outdated stereotype. A 2012 Harvard Business Review article calls Data Scientist as the “the sexiest job of the 21st century”. Computer scientists making world-changing applications are common in the news. A computer engineer we are all too familiar with – Mark Zuckerberg – was Time magazine’s person of the year. It’s undeniable that we live in an era defined by software technology.
So what does it mean to take up a computer science job as an IITian? A software job on campus typically means working as a developer. But the ubiquity of technology and computers in all sectors has hugely expanded the fields where a computer scientist can find interesting work.
Typically, most of software/IT firms offer two types of jobs: development and testing. Software development refers to process of writing and maintaining the code, but in a broader sense of the term, includes all that is involved between the ideation of the desired software through to the its final manifestation, ideally via a planned and structured process. Therefore, development may involve research, planning, prototyping, modification or any other activities that result in software products.
Software testing is used to identify the correctness, completeness and quality of the developed software. In simple words, it is an activity to check whether actual results match the expected results and to ensure that the system is defect-free. Testing software is operating the software under controlled conditions, to verify that it behaves as specified, detect errors, and validate that what has been specified is what the user actually wanted. Once any software has been developed and ready to provide for end users, the software has to be extensively tested with the requirements to find any bugs within. This makes testing an integral part of any software, going hand-in-hand with development.
The majority of software development work undertaken on campus considers testing as a part of development, something which the developer themselves have to take care of. Although a few companies do offer slightly lower initial salaries to testing engineers as compared to developers, this is not a problem for in the long run. Both have essentially the same career paths, wherein they become team leads, project leads, project managers and so on, depending upon the company’s hierarchy.
Be it financial jobs which have complex algorithms running at the core, or a logistics app which relies, not only on a well-designed architecture to keep the business running, but also has rigorous analytics running in the background.
Positions that involves a heavy reliance on what is commonly perceived as computer science or research are few when it comes to campus placements, but engineers sometimes move to these kind of roles a few years into their careers. Then, there is the third kind of role that fits well into a lot of companies is that of a product manager that take charge of an offering and provide direction to the development.
The Science in Computer Science
Getting a computer science job with a big fat salary package and a posting in the States has been the easiest way to become the apple of all the neighbourhood families. However, the name ‘computer science’ is itself misleading, since most of the jobs on offer in this field are as remotely related to CS research as they could be. Yet, it would be wrong to say that a thorough knowledge of the fundamentals of computer science is not required for these jobs. A major chunk of CS companies offer positions that involve playing with and getting used to specific frameworks. Algorithms that comprise the CSE syllabus, while useful, are rarely implemented as is in practice. A lot of such profiles have people not only from the IITs, but also from colleges such as the IIITs. “IIITs lay a lot more focus on courses on coding than the IITs, which are much more useful practically”, opines Deepali Adlakha, a 2015 graduate, currently an engineer at Facebook.
One of the foremost reasons undergraduates do not generally land a research job directly after graduation is that they do not have in-depth knowledge about advanced concepts. An undergraduate degree is supposed to be a stepping stone for a Master’s degree or a PhD, something along the lines of a jack of all trades. At companies that offer research profiles, typically, graduates in computer science would stay in junior research roles unless they get a Master’s or a Doctorate degree. “Getting a core research profile as a fresh graduate is a quite improbable. Certainly not from a campus placement,” says Mukund Madhav, currently working as a Computational Biologist at Broad Institute, after completing his MS.
However, a number of students, even after opting for an MS, choose to take up developer positions. Antariksh Bothale, currently at BloomReach with a Master’s degree in Computational Linguistics asserts that he took up a developer role because “it is fun to make things and be able to see the end result in front of you”. As time passes, most developers either grow up to be product managers – one step further away from research, change fields or choose to head for higher education.
Startups vs Big Company vs Higher Ed
Just like other sectors, the decision to start a company of your own or to work in an existing biggie continues to be a inscrutable dilemma in case of Software/IT sector. Add to it the option of pursuing higher studies in core CSE, and you have a really tough choice to make. Many software enthusiasts actually end up choosing more than one of the aforementioned options. This naturally leads to an important question: “What should the order in which they should be done?” or rather, “What should I be pursuing immediately after my graduation?”
Doing a job allows you to directly interact with the industry and learn professional knowhow. Tarun Gujjula, who has worked as a developer at Oracle asserts, “In a job, you learn work ethics and professional mannerisms. That is why you should go to corporate [positions] before higher studies.” In addition, you’d often have scratch your head to arrive at feasible solutions to real life problems; something which might interest you if you’re into the applications of your technical knowledge. You also get to network with a wide range of industry veterans and pick up from their work experiences, which is a huge plus point if you consider a job as your long term choice. That being said, once you get accustomed to a big company, it is very difficult to get out of it, thanks to the sheer amount of added benefits provided to employees. “Perks are a large factor. Big companies do tend to pamper you a lot. It is extremely hard to say no once you take up a job.”, observes Deepali Adlakha. So if you are fascinated by hard problems and not so much by coding , getting a higher degree first could be a better option. Higher education in CSE is also a good option for students of other departments, who eventually want to do a CSE related job.
On the end side of the spectrum, pursuing a startup provides you all the freedom in the world to build around your own stuff. “If you enjoy solving a full range of computer science problems, there is nothing that matches the experience of building your own product from scratch” says Saurabh Das, who founded and currently works at SilverLeaf Capital Services. Besides, starting up also teaches you skills pertaining to time management, picking up new technologies, perseverance, and leadership, which are hard to acquire elsewhere. And that is why, in spite of the increased number of working hours, entrepreneurs usually have higher job satisfaction, irrespective of their success. Of course, there is always the joy of your company making it big. “It was never meant to be a big company, but in the end it turned out to be quite successful”, says Ankit Gupta, cofounder of Pulse, which got acquired by LinkedIn.
Tarun sums up the dilemna between corporate firms and start-ups, saying, ”If I were to give a one-liner advice to final year students, it would be this: If you’re really passionate and believe in yourself, you should go ahead and solve the problem. But If you’re not sure and yet to discover what you want to do, you should go to a corporate firm.” Elaborating on the fear of the competition beating you to what your potential startup wants to do, he says, “There is ALWAYS time to join a bigger firm… there are so many problems to solve. If you think your idea will be stolen– the whole deal is about making ideas work. If you believe you’re best to solve the problem, you will still be after 2 years.”
Is Software Right For Me?
This, of course, is the million dollar question. How do you know if this is what you want? Zubin Mehta, an alumnus from the 2010 batch who got placed at Morgan Stanley Technology Group gives sagely advice: “If you like programming and/or computer science, I think you would be fit for this role. Leave the fitness measurement to your employer and just show up.” And for the most part, a number of the graduates we interviewed agree. An interest in solving daunting problems is a big plus. “For software roles, a person should be passionate about technology, and should love problem-solving.” says Chaitanya Amdekar, who worked as an analyst at Deutsche Bank before moving to Carnegie Mellon University to pursue his academic goals.
It might seem like a big leap from something sounding interesting, to actually working in that sector. But the simple rule of thumb is how many graduates make their decision– most have never looked back.
For some, the choice was automatic “Most of us from IITB will be lucky in that we can afford the luxury of, if we so wish, not having to work only for the sake of money. So once that factor is out, you know a job is a right fit if you enjoy what you do as an intellectual exercise, have freedom to keep trying out things of your interest, and get to work with smart, motivated and friendly people,” says Dhananjay Sahasrabuddhe, analyst at SIlverleaf Capital. Or as Deepali summarizes it, “Day one company. Best option I had.”
It helps that a worst case scenario for these engineers is also quite rosy. As a software engineer or a computer scientist, not only is it easy to move to a new sector without losing the value of your experience – software jobs are everywhere – but computer scientists are also highly sought after in entirely unrelated profiles – from finance, to marketing and key managerial roles in upcoming startups.
Getting into CS as a non-CS student
As a student of a discipline other than computer science, it may seem like a daunting task to break into the industry. This impression is not entirely untrue. However, multiple avenues exist for students of other departments.
If you are interested in making this jump through campus placements, a grasp of computer science fundamentals – algorithms, data structures, and so on – is a prerequisite, since companies use these to filter out candidates for jobs. Typically, startups are more open to hiring graduates from diverse academic disciplines, but more established firms are usually open only for computer science students – simply because they can afford to be choosy, and still get the best. While applying off-campus, companies tend to focus on the parts you are more likely to use on the job. The emphasis is on experience with technologies and systems. Nitish Nayak, an Electrical Engineering graduate who worked at Quantiphi Inc. says, “Applying off-campus is completely different from campus placements. You can simply not get your foot in the door by having theoretical knowledge. Having a repository of projects that you have worked on, and can share, is all that counts.” But he adds, “You might have to answer some questions about fundamentals, but that is limited only to the interview process.”
A large chunk of the learning also happens on the job. So once at the job, everyone is at more or less an equal footing. “I don’t think I faced any major challenges due to not being from Computer Science. Though, at times, I have felt small gaps here and there due to a lack of a formal introduction to many areas that I now encounter, regularly.” says Zubin Mehta, who graduated in MSc. Chemistry. He, in fact, exalts the lack of formal training as a virtue, at times. “As I am not always aware of all the concepts, it gives me freedom of thought and my mind isn’t biased by too many known things. I believe this to be a mini-superpower in itself!”
In conclusion, the sector is swell with opportunities. Higher studies are required for core research roles, but one can nevertheless go on to pursue a fulfilling career without having a postgraduate, or often, undergraduate degree in the field. While corporate firms can help teach you about the professional world and work ethic, starting up is another, exciting option that’s becoming increasingly popular. With applications to various domains, there is always a demand for skilled software engineers in today’s economy. In the words of the famous investor, Marc Andreesenn, “Software is eating the world.”
Our four articles in the career series, on consulting, finance, core engineering and software/IT, have been a labour of love. We hope you’ve enjoyed reading them as much as we have in creating them. We’d like to express our sincere gratitude to each and every person who’s contributed to these pieces. We hope they help students across batches make their future choices.