I was asked by a friend of mine to help his cousin who is doing his BE in Computer Science for placements and I jotted down a lengthy email regarding what topics he should be concentrating on. Then when I read that email myself, I thought – "Hey this can go beyond a mail and help more people too. So here it is:
Short intro to my interview experience to give you a context on my ability: I have taken Siemens, TCS, Sapient and CTS interviews as a fresher. Among these, Siemens and TCS were in my 5th Sem (on campus) and Sapient and CTS were post 8th Sem (off campus). I did not clear the written round in Siemens. I got offers from TCS (did not join due to low pay, relocation to Kolkata and 2 year bond), CTS (rejected offer since I had Sapient already whose pay was better) and Sapient(opted for the offer due to their friendly HR and now very happy with that decision).
College: RNSIT, Channasandra, Bangalore
University: Visweswaraya Technological University
Branch: Information Science and Engineering
Batch – 2002 – 2006
So now to our business:
For freshers in their 3rd year and those just out of college, the following are the most important topics quizzed on:
General Topic: Aptitude:
This is a common section in most written tests and constitutes atleast half of the weightage of your test score. Good books to practice from would be RS Aggarwal and also Shakuntala Devi’s Puzzles (my fav.). Instead of trying to practice solving more and more problems, try to solve a couple of generic ones in each topic in R S Aggarwal and understand the methodology and the thought process of solving such problems. If possible, also devise your own algorithm/logic to solve the problem. The questions will never be directly from the book so practicing every problem in the book still would not guarantee your clearing the test.
In the test, dont concentrate on solving max. number of problems. Concentrate more on getting all the questions you attempt correct. That will fetch you more marks than attempting 90% of the questions and getting most of them wrong due to silly mistakes made in a hurry to complete the paper. For example, in my college, in the Siemens paper-> There were 50 questions in the Aptitude section to be answered in 60 minutes (3 marks for each right answer, -1 for each wrong). Imagining to answer all 50 (right or wrong) is just a farce. Instead one should attempt to get all the questions he attempts right. The highest score in that test (in aptitude) was 16. Which is effectively just 6 answers right and two wrong of the attempted 8 questions (of a total of 50 questions!!). Simple to beat if I look back today. Think about it, all you would need is to get 10 out of those 50 questions right to top the college, and you have 60 minutes to do it (6 minutes per question!). Easy right!
- SQL – Writing simple SQL statements to select data from a table given a condition.
-> Theory based questions too are common – like the Types of Joins – Outer Join, Left and Right Outer Joins, Inner Joins etc, Normalisation – 5 levels of normalisation – What are they and how are they important for good database design. Good book to refer for this would be the prescribed syllabus book.
- C++ – Most important. Would be asked to explain object orientation concepts such as Polymorphism, Inheritance, encapsulation etc and how it can all be achieved in C++. Syntax for virtual functions are also common questions. Would be asked to write small programs such as generate fibonacci series, replace a character in a string without using any inbuilt string functions etc. An interview tip would be to explain concepts with as many real world examples as possible. For example, instead of explaining inheritance in text book fashion as to say one class inherits functionality from its parent class, you could explain to the interviewer with a real world example say a Car class as the base class having turn, stop and start as primary implementations and then classes that inherit from it could be Ford,Hyundai etc. which inherit the base functions plus add their own and override on existing functions as well (if necessary, to say Hyundai i20 has ABS brakes so it has its own custom Stop function) to make custom implementations. Now that would convince the interviewer that you have understood the concept rather than just mugging up the text book.
- Data Structures: Important to understand all types of queues, linked list etc. Most common questions are -> Reverse a linked list, Traverse a linked list, sort a linked list etc. Merits and Demerits of each type of data structure -> Arrays, Stacks, Queues, Linked Lists.
- Algorithms: Sorting algorithms are most common written round questions. Either direct or indirect. Binary search, quick sort, string search etc. Common problems such as Travelling Sales Person, Towers of Hanoi etc are also common. Techniques to determine the complexity of an algorithm may be asked too – like determining Oh, Omega and Theta of a particular algorithm.
- Computer Networks: Would be a crucial subject if applying for companies such as CISCO, HP etc. Hot Topics: OSI Layer, TCP/IP model, Routing algorithms *** (very important) and types of network discovery.
- Operating Systems: Crucial subject for companies that build low level system programs such as Symbian, Intel etc. Hot topics: Processor Scheduling, Memory Management and Page File Swapping techniques. Deadlocks – what, detection, avoidance and resolution, semaphores and other locking principles.
- Java: Since most universities cover Java in the end of 3rd year and placements usually happen before that, on campus interview dont focus much on Java. However, for off campus and post 8th Sem interviews, Java is a must (unless you are a MS guy like me and would rather stick to C# in which case proficiency in C# and .NET are required) There wouldn’t be very detailed questions on Java or C# for freshers and basic knowledge should be sufficient. If you do your 8th Sem project in Java or C#, it would be more than sufficient for you. So wisely choose your 8th Sem project. It could make up your career. And please please please implement your own project in your own code. Don’t download the code and showcase it. Your project is your portfolio in all the interviews you will face and your academic project will be the only project where you will implement end to end (all tiers) so this is a very important part of your career – to implement your own idea into a project and deliver it.
Apart from this, there may be certain niche areas that specialized companies may ask for but being strong in the above topics should get you through 98% of all interviews as a fresher.
Do post any questions you may have as a comment and I will get back to you.