Couple of years ago when me and my friends appeared for campus interviews in IITs, NITs and BITs we faced many challenging interview questions like N petrol bunks arranged in a city, Sort Stack in place etc.
So, today I will post some interview techniques to prepare for campus selection.
This article we are focusing more on MTech because of several reasons, which you’ll shortly find.
Stage 1) Don’t Start From JUST Before Placement session.
Start preparing for campus selection from day 1 of your college, try to utilize all facility and free time to build your knowledge.
Reason is Btech students staying in campus have proper understanding from super seniors and seniors about type of questions and Seniors would have guided them how to prepare for campus, so they would be almost ready for interviews when you join MTech course.
So its better to start preparing with them instead of waiting till pre-campus selection vacations.
What to prepare ?
Stage 2) From Day 1 Start preparing from the concepts of coding , C and C++ and/or Java.
Additional knowledge of Python or Perl kind of language will give advantage.
Stage 3) Prepare for introductory Data Structure
like Array, LinkedList, Tree and its twisted logic and twisted algorithms from books like Data Structure and Algorithm – Karumanchi.
Here You need to build logic for Questions like reversal of linked list with recursion. Mirror of binary tree, Finding Pythagorean Triplet or kth largest element in BST etc.
Such Questions are very preliminary questions to build your logic and coding.
Stage 4) Write all code from scratch and store it.
– Write all such questions code on your own and store it in any platform say ideone or dropbox etc.
– Create and Keep APIs ready. example code for linked list creation, and binary tree or code for Swap etc must be kept ready to use any time for coding. This will help you in written test of your campus.
Very IMP :
Stage 5) Start hard logical questions and concepts .
After plenty of practice of code and normal data structures start building logic for hard problems,
example greedy algorithms, graph, dynamic programming and understand concepts behind it.
sample questions may vary like 0-1 knapsak, travelling salesman, LCS, LIS, DNA Matching.
This coding practice and logic should be kept till end of campus selection.
Stage 6) Parallel to Stage 4) keep your OOPs funda clear.
their usage in Python , java and C++ is different while writing code , be aware for that.
Example , for late binding C++ uses virtual while java don’t. so concepts and implementation must be clear.
ABSTRACTION, INHERITANCE, ENCAPSULATION
Polymorphism , Static Binding, Dynamic Binding, Pure Virtual function, & Over loading
Also read this Java Books to clear your concept on Java Programming
Stage 7) Fundamentals of OS, CN and SQL will give be +10 for your candidature
Like :
OS : Locking (mutex, shared memory etc) and if such concepts to implement in real life coding, how can you.
SQL : indexing, joins, triggers, normalization etc are imp
CN : TCP-IP,UDP, FTP,and etc protocol, if in C you need to write code then how to write basics of it, port creation etc.
Stage 8) Must have for any Master level graduate and MTech with experience :
Fundamentals and implementations of Design patterns.
basic is singleton , abstract factory etc.
Software Development life cycles like Agile (is best which is being used in all companies currently), Waterfall etc.
Stage 8) OOPs Designs.
Interviewer will love to see class designs and concepts from you for different problems,
Several problems :
Design a game in which two players fights and one wins. Methods, functionality u can include as per your imagination.
Design parallel processing for a file with the use of thread and all file processing (say count of words) should be updated in one file ( here to use shared memory concept ).
Stage 10) Design of Data Structure.
In toughest interview he may ask you to design your own data structure
sample questions like :
search minimum element in O(1).
implement LRU cache with own data structure.
Implement Dictionary and search option with own data structure manipulations (use Trie + Hash)