Super coder, founder of games club, a major contributor in food force 2, internship in Microsoft and an excellent placement in Texas Instruments, Computer Science engineer from the batch of 2010, Mohit Taneja seems to have got the correct blend of success and fame at NSIT. He spills his beans of success in a candid chat with NSITonline. A few excerpts from the interview are:
1. Many dream of it, yet only a few are able to get an internship in ‘Microsoft’ How was your experience of working there?
My stay at Microsoft was a brief one and the majority of the learning experience was based upon how to write organized, readable, “beautiful “ codes in C++. I became familiar with the way such big companies work.
2. Your association with food force 2 has been quite long and eventful. You have been recruited yourself, coded the game board, recruited juniors to continue the work and mentor them in order to ensure the sustainability of the project! How was your experience?
I was contacted by a senior Deepank Gupta, to work on this project. I had worked with him earlier for organizing AI challenge, so he knew about my coding somehow.
We started with an initial aim to make a game for WFP, with some simple controls and a village scenario, to be completed in 2 months. I thought that this opportunity would be a great platform to learn Python, Pygame (a gaming module in python), develop my coding skills, develop GUI’s and get comfortable with linux. Though now looking back I would agree that food force2 taught me much more than I had initially anticipated. I also got to learn as to how a software project is actually worked upon in a professional environment, the ability to adapt to the changing requirements, the difference between a code and a software, the difference between a code which just runs and a code which is good, how to manage people and get managed by them, and a lot more
3. Was food force 2 an inspiration for setting up the games club in NSIT?
There were many people in NSIT who were working on game development projects specially in the junior batches. Food force had taught me that game development is not an individual subject, its best done in groups. This led me and Aditya Vishwakarma to think of getting a game development club set up in our college.
4. Even with the internship in Microsoft and pressure of working on food force two, you managed to secure an extremely good placement in Texas Instruments. How did you prepare for the placements?
I started studying for my placements only after my summer internship had ended and felt that I was a little late. I believe that there are a few basic things that one must know before sitting for the placement procedure of a software company:
- Basic concepts of C, YK or Ritchie whichever you are comfortable with. (I did YK and test your C skills)
- Basic and a bit advanced OOPS concepts (not generic programming) and their implementation in C++.
- The basic Data structures, linked lists, arrays, trees of different kinds, heaps and how to tweak them and intermix them, different operations on them and their implementation. (Tanenbaum should be referred, not read)
- Algorithms: figuring out complexity of any algo, searching sorting with their analysis, algorithms on different data structures, some more common algos on graphs (optional).
- Operating system: this is a tricky area as one is not just expected to know the concepts in Galvin but their application in real programming too. Don’t be surprised if you are asked to answer questions like how would memory be allocated to a program, issues with stack overflow and why one algo would run faster with or without paging.
- Many companies have their preliminary written round containing aptitude based questions which are either repeated from last year papers (freshersworld.com) or are typical “MBA type” aptitude based questions. It is sometimes good to prepare for them, maybe a day or two before the company is coming.
5. Doesn’t that seem like a lot? What is the best way to study all the things listed above?
Reading all of these topics one by one can be pretty boring and is thus not a preferred method. The best way is to start with some question answer material like “Crack the Interview” and learn these concepts on the fly. Start reading such materials and in case you are not able to answer a question or are doubtful about the concepts then revert back to your books for a better overview of the concerned topic.
If you have never read a subject for e.g. OS or Data structures or algorithms then it is best to first read them briefly and then move on to Q/A material.
One can also join online portals like Target Placements on Orkut made by our alumni which are still going good or subscribe to Career cup on google reader. The latter generally contains tougher questions but is updated with the recent trends.
6. What differentiates an excellent coder from the rest of the people?
The key to being an excellent coder is to write the code thinking of the problem as a real life situation and correlating it with whatever resources you have. The best solutions to the coding problems are the most optimum solutions but one should not straightaway think about optimizing it. First figure out the way to solve the problem , and then look to optimize the solution.
7. Many of your juniors are facing the dilemma of whether to go for M.S. or choose to pursue an MBA. What advice do you have for them? And how do you think should they go about achieving their goals?
It is generally observed that most of the students end up going for MBA before trying any of the technical opportunities. I urge all the first years to never make the mistake of taking a decision in the first year itself. You must all try your hand at coding before going for MBA. All of you must make it a point to actively participate in 'INNOVISION" as it is an excellent opportunity to engage in technical activities. In recent years, the level of interaction between seniors and juniors has gone down because of which juniors are often clueless as to what to do. The students should try and engage in projects with their seniors or teachers. It is not always necessary to reinvent the wheel because thinking of the raw concept is not an easy task. For opportunities, students should not hesitate to approach the alumni if they can since they are always willing to help.
For the second years, I suggest that they try out their hand at both the technical and managerial opportunities for the sake of trying out hand at different things and gaining perspective rather than getting things for CV. I also want to remove the popular “misconception” that percentage does not matter, since it does .
8. Don’t you think the seniors must also have a sense of duty to help out the juniors?
Yes, of course. The seniors have a very crucial role to play. They must take an initiative in this regard. When you get some work done from your juniors you should always explain the concept and show them how the work is to be done before expecting completion of the work. The juniors have to be shown what they would gain out of doing that activity.