Software Developer
Less than 1 month
- Recommended: Interviewbit: Complete till and including Level 3 thoroughly (OR Leetcode Top Interview Questions Easy and Medium are enough according to time OR corresponding topics from other platforms).(Continue practicing even during the placement process) Do one question from each bucket in InterviewBit, unless you see a staple question.
- Make GFG your bible. For example, if you are stuck at some question in Interview Bit, instead of revealing a solution in the website, go on GFG and only look for the part of the solution you are stuck with. Don’t look at code directly, try reading the explanation and retry. Don’t copy paste, if you are that tempted and stuck, just reveal the solution.
- Imp topics for Coding Questions: Arrays, Strings, Vectors (Highly recommended to learn syntax and try questions from interviewbit, 1D and 2D), Bit Manipulation, DFS and BFS , Hashmaps (Imp for interviews, knowing syntax and use is good, not needed for coding test) Dynamic Programming (Level 7) (only if you are done with other topics). *See point 10 and 11
- Do one question from each bucket in InterviewBit. You can do more if time permits
- Imp Theory topics for Online Tests: Theory of Operating System (Scheduling algorithms,multi threading, Notes for OS GfG); DBMS (ACID Properties, RDBMS, Diff bw rdbms and dbms, Types of Joins with examples)DBMS by Sanchit Jain (imp for interviews also), , should know code of basic sorting algorithms for Online Test, OSI Model: Different layers, IP Addresses Basic Subnets, subnet masking, Supernetting, Access control methods, Multiplexing, ASK, FSK.(basic topics should be enough for non-networking profiles)(Computer Networks)
- (If you have time): Highly recommended to use STL libraries for C++ (check for others): and in-built functions like .sort(), vectors, .begin(), .end() etc Link: Learn C++ STL in 45 minutes | Containers | Algorithms | Comparators | Competitive Programming.
- (If you have time): 180 SDE Problems - by TakeUForward (Do min. 2 from each Day)
- Youtube solutions for questions you can’t understand that well. Sanchit Jain (DBMS), Ravindra Babu Ravula (CN), The New Boston (only for OOP coding), MyCodeSchool (pointers)
- Imp Topics for Interviews:
- Must Do coding Questions: Imp: Arrays, Stacks, Queues, Implementation of stacks and queues using arrays, trees : These are most important topics, rest may be attempted according to time left.
- DBMS Theory: Diff b/w RDBMS and DBMS, ACID Properties (DBMS by Sanchit Jain)
- 4 pillars/concepts of OOPs: Data abstraction, Inheritance, Polymorphism, Encapsulation, you should know what they mean and how are they different from each other, examples for each in real world scenario
- Have some unique examples handy for all 4 pillars. Everybody gives the same Person-Employee-Manager example. Be ready to write OOP code for a Bank Management System, this is the most asked one. Interviewer will look for the following:
- Are you representing entities as classes, or just using primitive data types. For example, for representing money, are you using `double` or have you created a Money class.
- Don't start writing getter and setter for your classes. That is not a real thing.
- OS Scheduling Algorithms: Revise Theory (Sanchit Jain, youtube)
- Get ready to write code on paper, without a compiler and fancy colored syntax.
- Difference between C++ , Python, Java (whatever is more prominent on your CV, mention ONLY what you REALLY know)
- Fast and Slow pointers questions (If time permits, watch myCodeSchool pointers in C videos)
- Constructor overloading in C++, friend function with examples, inheritance with examples, #define
- Explain Class and Object with sample code. Avoid writing getters and setters as you do in college
- Explain inheritance with sample code, friend functions, constructor overloading)
- Project based questions (based on resume) 3 words:DO NOT LIE.
- During the interview, think out loud so that the recruiter gets to know your thought process. If you know the solution don't jump right into answering it. Start with brute-force approach, then see corner cases and finally present the best time and space complexity solution you know
- (If you have time) (Advanced level): For top companies: It is important to know DFS (both recursion and using stack) and BFS using queue. Apply this with reachability problems and/or shortest distance variants. Bonus if you learn Dijkstra (most definitely won’t be asked during screening test).
- (If you have time) (Advanced level): Learn basic DP problems such as coin change, staircase problem, matrix chain multiplication, 0-1 Knapsack problem, Floyd-Warshal, Dijkstras, Peterson's, Travelling-Salesman etc. Initial screening tests of the early companies had simple DP/Graph problems which if you crack, guarantees you to get shortlisted. Points 9 and 10 will take time to master and is an added plus point if you want to get into the top companies. Attempt solving after having a strong grasp of basics.
- Aptitude onIndiaBix, GfG and puzzles from InterviewBit are good. Keep a comfortable time range for the first day, such as 20 questions in 40 mins. Try to reduce the time taken after every 4 tests. The aptitude questions should also be a mixed bag, after completing the time bound tests, look at the questions you got wrong or found difficult, see which bucket they fall into and solve at least 10 different varieties of questions from that bucket (non time bound) till you are comfortable with that type.
- DO NOT NEGLECT APTITUDE! Sometimes it can make the difference!
Process: Spend 5mins understanding the question → Try it on your own for at least 15-20mins → If not able to solve see solution (due to time constraint, but not without trying, You will most probably remember the solution if a similar problem comes in your interview) → understand the solution and try to reduce the time each concurrent week
On the weekends, try solving questions from a mixed question bank for example “Top 100 liked problems” on Leetcode under the Easy tag. This will improve your capability to realise which data structure/ algorithm to apply. If you haven’t done that data structure yet it’s completely fine, but if you get stuck and the solution is a part of the bucket that you've already solved then try and understand the pattern that you missed identifying. And if you do solve it then good it means you're able to identify patterns
- Important OS Topics: Basic definition and Job scheduling, CPU scheduling, Swapping, Process and PCB, Job queues, Short term/ medium/ long term scheduler, Context switch, IPC (shared memory and message passing), Synchronization, Scheduling Algorithms, multi threading and multicore programming, Synchronization and related algos (including bounded buffer, reader writer, dining philosopher and monitors), Deadlocks (v imp), deadlock conditions, Deadlock detection, Semaphores (v.v. imp), Memory management Strategies,Virtual memory and thrashing (very high frequency question in interviews).
Other topics: BIOS, Multicore, Dual mode (Read), Storage systems, Prevention, avoidance, recovery of deadlocks, Banker’s algorithm(only read)
(If you don’t have time, Refer to Notes for OS GfG. (Scheduling algorithms is easy and very scoring)
HR Round:
This is a very important round as it decides if you cross the finishing line or not.
Some important points:
- Have answers ready to general questions. Refer to “interview tips” category of the chatbot
- Usually HRs will look out for red flags in your personality, motivation, enthusiasm too
- Be confident and be prepared for any kind of questions.