Before I start rambling and giving unwanted 'gyaan', I would like to give a brief background about myself so that whoever is reading this can adjust the timelines for themselves accordingly.
I am doing my undergrad (2021) from VIT University, Vellore in Computer Science, with a CGPA of 8.37 (This ain't great or that bad, but it is advised to have a CGPA >= 8.5 believe me, this will help you a lot.) I started preparing for the campus placements in March 2020 and my placements were to start from July 2020 (again, better to start early.) I had prior development experience (personal projects) in Node.js, Swift, HTML, CSS, JavaScript, etc. Doing projects can be a great point on your resume but that isn't everything that you would be needing to get into a good company. With that said, I'll start with it.
-
Theory :
- Computer Networks (CN)
- Operating Systems (OS)
- Database Management Systems (DBMS)
-
System Design (Basics)
-
Behavioral Questions
-
Aptitude Questions
-
Data Structures and Algorithms (most important)
-
Computer Networks :
- Geeks For Geeks
- Gate Smashers (Great for understanding subnetting)
-
Operating System :
-
Database Management System :
The only source that you'll need for System Design is GKCS.
Big shoutout to @gkcs_ .
This is a section where you are going to introduce your 'real' self to the interviewers, and hence there is no fixed source to prepare on this, but for me this worked. Do check out this link for some sample behavioural questions. The pragmatic and structured method most commonly used in behavioural/managerial rounds is the STAR method, so do tailor your answers based on this.
On an extra note, do some research on the company you apply for. A basic review of Products, News, Culture, etc. will be benificial in the HR round. HR rounds are make or break moments, so do check out this link for structing situational responses.
The one stop to verbal and and quants aptitude is indiabix.
If you are familiar with GRE syllabus, that also works.
I can't appreciate this course enough. It is concise, to the point and covers all the important topics. Though it costs around ₹2500 (at the time of me writing) but it is worth it.
Important topics in Data Structures :
- Recursion
- Arrays
- Searching (binary search, two pointer technique)
- Sorting (bubble, insertion, merge, selection, quick, heap, Lomuto and Hoare's partitions)
- Strings
- Matrices
- Linked Lists
- Hashing (Set and Map)
- Stack
- Queue, Dequeue
- Trees (Binary, BST, n-arry)
- Heap (max-heap, min-heap)
- Graphs
Approach techniques :
- Greedy
- Dynamic Programing
Though the Geeks for geeks course covers almost everything I would recommend you to check out this Youtube playlist by Aditya Verma
this is the best video resource to learn dp hands down, dude unlocks your thinking capacity.
This is a question which 90% of your batchmates would be having. Now this is what I did and it might be wrong for you but worked for me. I practiced around 20-100 most popular problems each for the above mentioned topics from Geeks for geeks. After this I moved on to Leetcode, to utilize leetcode at its max efficiency see this video by Rachit Jain. After feeling confident about leetcode problems try to move on to Interview Bit Problems if you have time left.
Also, if possible do take part in code chef rated challenges.
One last thing, do not forget all the other areas to focus on, or else it will be very hard for you to clear Interview rounds after the Online Round.
*if I feel any thing major is left out I'll update this doc also, if you have any suggestions/modifications, please make a PR.