The 3rd year internships are probably the most important one a student will do over the course of their degree. Providing students with important industry skills, research experience in their fields, contacts in companies and institutes; hence, these internships are a very integral part of one’s career.
In Computer Science and Engineering there are loads of opportunities for students, with both well-established companies and upcoming start-ups looking to attract the talented individuals. These articles cover how the process of getting an internships works, how to be a good candidate, and other such related things. In IIT-Delhi, there are two ways to get an internship, either through the Training and Placement Cell(T&P), or taking the path less travelled and arranging one on your own. This article will also cover the differences between these two options, and how to choose between them.
In this, the student applies to companies coming on campus for interviews. This path is a bit easier than getting a self-arranged one since the hassle of finding and filtering companies is reduced manifold. The first criteria is the CGPA of the candidate; that is, each company sets a certain minimum CGPA, below which students cannot even sit for the first round. After this, the remaining students have to give a test. This is a very basic test, usually comprising of basic CS questions. After this, there is a group discussion (GD) round. Herein, a group of candidates are given a topic, keyword, or some real-life scenario, to which they have to apply their knowledge, innovate, and present ideas. Although, a lot of CS Core companies skip this GD round. Lastly, students selected from the GD, are then interviewed by panels, both technical and human resources (HR). Again, HR interviews are fairly rare, but we will talk about them nonetheless. The objective of the technical panel is obvious, to test one’s knowhow of core CS. The HR interviews evaluate one’s soft skills, focusing on how the candidate reacts to stress, etc. It’s a test of how well he/she can communicate.
Here, a student looks at the companies he/she might be interested in and then applies to them, usually via email. It helps if one has a contact within the company, as then they can help the candidate secure an interview by putting in a good word. Again, after getting selected, which itself is a pretty daunting task considering these companies get hundreds of resumes, the series of litmus tests begin to evaluate the worthiness of the candidate.
How to be a good candidate
This is common for both T&P, and self-arranged interviews. Broadly speaking the evaluation is twofold, technical skills and soft skills.
In these interviews/tests, the company will test the candidate on how well he/she is versed with the fundamentals, how quickly and correctly the candidate can apply the knowledge to different scenarios, to solve real world problems. The fundamentals they test are primarily, basic coding ability, knowledge and application of data structures (DS), and algorithms. Some companies additionally test the candidate’s proficiency in probability and statistics. The basics of the aforementioned subjects are covered fairly well by institute courses, however to gain expertise in these fields, especially the ones related to coding, require a lot of practice. Also, another important aspect of the technical tests is the projects the candidate has participated in. Over the course of one’s degree, a number of required course projects will be assigned by the professors, and a student might participate in more projects of their interest. It is best to create a repository on sites like GitHub, to display coding projects, and also mention non-coding projects undertaken on their resumes, eg. an electronics project with the robotics club. The panel might grill the candidate regarding his/her projects, especially if the company has substantial work in that field. Therefore the best way to increase one’s odds of clearing technical tests are as follows:
1. Follow courses properly and do all the work assigned, this will help build up fundamental knowledge.
2. Practice, especially for topics related to coding. There are multiple online resources available for this. Competitive coding provides a good, albeit hard way to improves one’s application and innovation of data structures and algorithms taught in lectures.
3. Indulge in projects, i.e., do all the project work required by the coursed diligently, they too will provide invaluable practice time. Additionally, a candidate should try and take up projects of his/her interest.
The methods listed above are, however by no means an exhaustive list of things one can do to increase his/her knowledge. Also, the interviews might differ slightly based on the type of companies, and the philosophy of those companies, however no company will test a candidate’s pre-requisite knowledge on specialised and advanced topics, unless he/she has done a project in that field.
2. Soft skills
As mentioned before this will be a test of a candidate’s communicative abilities, and how he/she interacts with other people. These are something which cannot be taught within the walls of a lecture hall. This skillset is something that is earned by interacting with other people, and being part of a team. Hence, it helps if the candidate is a part of a club in IIT. For example, a person in the debating society may find it much easier to frame and present his/her thoughts. It is therefore advised that a candidate takes part in non-scholastic activities, as these help in building one’s confidence, people-skill, etc.
How to select a company?
This is the most subjective part of the whole process. It’s important in getting a self-arranged internships is apparent, and it also helps in the T&P process. The main part is to see if the company suits the candidate. Here “suit” means whether the company does work in a field he/she is interested in, whether the company is focused on researching a new field, or maintaining existing infrastructures, whether a small start-up or a large MNC with multitude of projects under its wing is better. However there are certain important facts one should take into account. For example, a small start-up won’t be able to offer the candidate a PPO but offers a varied and intense experience, but a large company might offer a PPO in the future, but the work a candidate does is very narrow and focused in one field only. Such facts often create a perplexing situation for potential candidates. Therefore, it is important that a candidate looks at the companies carefully, inspects what each company offers him/her, and then chooses one that aligns with the career path he/she wants to walk on. For example, a candidate wanting to pursue a master’s degree later might want to prioritise research oriented companies like IBM Research Lab, or a candidate who aims to be integrated into the world of algorithmic trading, might prefer a company like Tower Research. The options are endless, whether it be machine learning, or designing a website, a candidate should work towards his/her interests, do projects he/she enjoys, and apply to company which aligns with his/her career plan.
Experiences within the companies
These are the personal experiences of a few third year CS students currently doing their internships
- Samsung (as told by Kushagra Madaan)
The selection process of samsung only had a technical test and a GD round, no personal interview.
In the initial training period the interns were explained the ins and outs of their tasks, and assigned to projects. They were given documentation to study and this was followed up by a meeting in which all doubts were clarified. The person I talked to was in a team who were working on a next generation modem communication technology. Now, this project was not a prototype, and will actually we deployed in real life. The work these interns do will actually be affecting people and technology all over the globe. The project was divided into subtasks with a priority order. Along with this, each team has a mentor assigned to them who are there to discuss any ideas, clarify documentations, and help them implement things. The work mainly relates to the software front (using C) of the technology, however basic knowledge of underlying hardware is required.
- Research at Carnegie Mellon University( as told by Nikhil Gupta)
This was a self-arranged one and mainly focuses on data analytics.
The professors decide the project the interns work on based on their recommendations and projects. They provide the students with a weekly outline, and meetings and discussions are held every week. They report directly to the professors and no such teams are present. The initial weeks are used for reading various research articles and papers related to the project. The student I talked to was working on bank data to trace out fraudulent transactions and users. Basically, using the data they made plots and graphs of the general spending trends and detect suspicious users and transaction using graph detection algorithms to rank outliers. The scripting language used was Python. 3. Tower Research (as told by Ayush Bhardwaj).
- Tower Research (as told by Ayush Bhardwaj)
Tower research is a HFT firm. For the selection process, basic knowledge of OOPS, and coding is needed. There was no GD round, and the interviews were telephonic. The questions asked were based on algorithms and codings. The coding part was similar to competitive coding, but the algorithms part was a mathematically rigorous interview. In the initial days, students were assigned projects and had discussions on how to work on them. Mentors, who were senior employees at the firm, were assigned to the interns. The language used by the student I talked to was C++. He worked in the core engineering part, developing tools which checked the quality and correctness of market data received from financial data centres.
- Kushagra Madaan
- Nikhil Gupta
- Rachit Arora
- Ayush Bhardwaj