It is important to score well in exams but gearing up for campus interviews is also necessary. Here’s how you can plan and prepare for IT campus placements
Towards the end of the college years, campus interviews become one of the biggest concerns of students. For an IT student, who is gearing up to crack a placement interview, the knowledge of programming and coding is not enough. You also need to impress your interviewer with your personality and resume.
The screening rounds of most IT companies focus on fundamental knowledge about common programming languages and problem solving skills. Most companies have standard questions to test the fundamental knowledge of programming languages like C/C++/JAVA. There are many websites which offer a list of standard questions. A couple of the important ones are GeeksforGeeks and CareerCup. They are greatly beneficial.
Besides, the book Let Us C/ C++ written by Yashwant Kanetkar is what I would recommend. The book is very well written, and revised over the years. I have learnt most of my basics in C/ C++ from the book.
In the next phase, which is problem solving through programming skills, companies have a number of questions designed to test the algorithmic and programming skill set of the student. These questions are mostly inclined towards the competitive programming paradigm. That is, they are mathematical in nature with a specified input/ output format, and time and memory limits. So if you are a good competitive programmer, it will be a plus for you.
If not, I strongly suggest that students take up competitive programming and practise coding on websites like CodeChef, Codeforces, HackerRank and several others. But these things cannot be learnt overnight. You will learn a lot about algorithms, data structures and the practice will make you more and more proficient in the programming language you use.
Plus, you will get to know about the skill level of others who are participating in those websites as well. That greatly helps one understand his/ her level in the industry, and inspires them to strive for improvement.
If you are a school student and want to become a programmer, there is CodeChef for schools, an initiative by CodeChef to teach school students programming and help aspirants prepare for Informatics Olympiads.
Some companies also have written coding rounds apart from the above. In that case, what they generally look for is the correctness, time and memory optimisation, coding style, documentation, proper method naming, and the general readability of the algorithm itself. People should keep these things in mind while they write code on paper. It is very important.
One can learn a lot here from the company’s past interview questions. Many companies like to stick to a particular area of algorithms and data structures. For example, some stick to binary search trees, linked lists and all these dynamic data structures. Others mainly ask dynamic programming based questions. It is clues like these which one can find from the company’s past interview questions. That way we can focus more on those areas while brushing up. I personally benefited by doing this.
At the interview round too, your main focus should be on algorithms, data structures and design thinking. Companies are interested in knowing whether the candidate can think of solutions to real life problems from ground up, at the same time thinking about scalability, simplicity, degree of correctness (depends on the problem at hand), and the candidate’s knowledge in algorithms and data structures.
To gain experience and knowledge in all these, people can do internships, competitive programming, personal projects, or simply prepare from interview preparation websites, whatever suits them. They should also try and have mock interviews with their peers/ seniors, to get the feel of an actual interview.
There is another great book, Cracking the Coding Interview, which I would also recommend. There are also great websites like InterviewBit, GeeksforGeeks and CareerCup that can teach you about past interview questions. Interviewbit, in particular, also allows you to submit code and test its correctness. They have a neat and fun structure with levels and rankings that candidates can utilise to learn.
The first thing that interviewers notice is your resume. You should aim at building a great resume right from the time you join college. You should have work experiences, a decent CGPA (at least to clear cutoffs), personal projects, maybe even some leadership work, and whatever you think will benefit you.
You should also speak out your thoughts to the interviewer while you are trying to solve the given question. It is not at all necessary to jump to the most optimised answer you can find. You should instead try to build the logic from ground up. For example, think of a brute force solution, then try to think which aspects you can optimise. Try to improve on those. Discuss the algorithms and data structures required for this, and the run-time or space optimisation you will achieve as a result. Let the interviewer know about all this thought process, so that he knows what you know and how deep you know. He may also be able to help you, if you are stuck somewhere.
A small, but also a required trait is that you should be a good team player. If the interviewer finds that your behaviour is impolite, or you are not very accommodating to new opinions, s/he can reject you. Being a team player is important when you work in a team in the company.
(Mayank Bhura is a software engineer at Google Hyderabad. He bagged an internship at Google and graduated with B Tech degree in Computer Engineering from National Institute of Technology, Karnataka in 2016.)