Software Developer
>4 months
- Recommended: Interviewbit: Complete till and including Level 7 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 2-3 questions 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, Trees, Hashmaps (Imp for interviews, knowing syntax and use is good, not that frequently asked) BFS, DFS, Binary Trees (usually asked in interviews, BST), {{Greedy approach, backtracking, Hashing,Lists (mostly syntax and use). Dynamic Programming (Level 7)} (Important if you want to avoid ‘Time Limit Exceeded’ and clear all test cases). *See point 9 and 10
- Try to do all questions from each bucket in InterviewBit. You can do more if time permits. Plan according to your time
- Imp Theory topics for Online Tests: Theory of Operating System (Scheduling algorithms, 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), OSI Model: Different layers (Computer Networks, by Ravindra Babu Ravula)
- Highly recommended to use STL libraries for C++ (check for others): and in-built libraries like .sort(), vectors, .begin(), .end() etc so that you don’t waste time during coding questions. Link: Learn C++ STL in 45 minutes | Containers | Algorithms | Comparators | Competitive Programming.
- 180 SDE Problems - by TakeUForward (Do min. 3-4 from each Day, can reduce if doing interviewBit/other platform also)
- Try to take one language and master it. Stick to one platform and gain more number of star ratings, participate in competitions.
- 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).
- 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.
- Build your profile accordingly, you can look for internships in the domain or work on personal projects. Youtube solutions for questions you can’t understand that well
- Imp Topics for Interviews:
- Must Do coding Questions: Imp: Arrays, Stacks, Queues, Implementation of stacks and queues using arrays : 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
- 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, inheritance with examples, #define
- Explain Class and Object with sample code
- 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
- Important OS Topics: Basic definition and use BIOS, Multiprocess, Multicore, Job scheduling, CPU scheduling, Swapping, Dual mode, 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, prevention (deadlock), avoidance (deadlock), Bankers algo, Deadlock detection, deadlock recovery, Semaphores (v.v. imp), Memory management Strategies, Storage systems (asked less frequently), Virtual memory and thrashing (very high frequency question in interviews)
- DO NOT limit your preparation to these guidelines, adjust according to your time
- 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 (Start really fighting the questions. Couple your interview bit preparation with some actual competitions on CodeChef. Try to go till code ninja, with good consistency it is really easy to do that. Take streaks seriously.) → 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 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
Other links: C#.NET Tutorial Videos | Mr. Bangar Raju(explains OOPS concepts well), CareerCup: Programming Interview Questions (has good forums for discussion and also good questions), Operating systems (Deitel) (3rd edition)(1).pdf - Free Download PDF(for Virtual memory, thrashing, storage systems, memory management), Best playlist for pointers: Pointers in C/C++, Operating System Concepts, 8th Edition (for other topics)
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.
Data Science / Machine Learning
>4 months
- You don’t need to specifically do something different. The above mentioned guidelines will be applicable as is. The interviews for DS/ML companies are strongly Resume focussed. So knowing your resume and projects in and out is a must.
- If you're targeting a particular company just do a Google search of - {Company name} in analytics or AI. Then you can frame your resume by doing work that will make your resume more appealing to the company .
- Sometimes the interviewer throws a real world problem involving a ML model at the interviewee. Be prepared for such questions, they are fairly easy to answer if you have practical experience training ML models and basic intuition regarding working of the different components.
- You should be knowing Machine Learning algorithms basics: Linear Regression, Logistic Regression, Decision Trees, Random Forest, SVM and so on.
- If you have worked on some projects related to Data Science/ML be thorough with it and practice explaining it for interviews.
- IFYOU HAVE a Data Science/ML Projects in your resume take note of guidelines mentioned below:
- Have clarity on the motivation behind using a particular algorithm for your models. You should know why you used a particular model. Example: Why did you use resnet and not inception net?
- In case of a neural network architecture , learn how the data drives the number of nodes, activation and hidden layers and not vice versa , can establish that if you're able to create graphical visualisations of your out and in metric ( Explaining your projects or any solution in such a way goes a long way in establishing your understanding of the topic for the interviewer).
- So when describing a project, make sure to highlight each of the following points: (1 or 2 sentences for each point should be enough, ask interviewer if you should explain that part in detail, if they give the green signal then elaborate)
- 1. What was the motivation?
- 2. What were you trying to achieve in terms of performance?
- 3. What all experimentations did you carry out ?
- 4. What worked and what didn't and why?
- 5. What problems did you face, how did you overcome these challenges?
- 6. And finally what was the ultimate solution you arrived at
- 7. For ML projects it is always important to give numbers such as value of performance metrics(example: xyz model gave an accuracy of y% etc) along with the practical utility of a project or the motivation behind it under the project description.
- Aptitude: Follow point 15 of Software Dev.
- Consulting firms do mostly analytics projects , tech or product based companies like IBM , Schneider , Phillips etc are working on creating their own machine learning models , choose accordingly .
- GATE prep videos are the best source to prepare for interviews. It is literally the same syllabi.
Other Links -towardsdatascience.com ,medium.com, 10 basic ML interview-questions for concepts , analyticsvidhya and kaggle for data sets and hackathons
(See HR Round point at the last of “Software Developer” Category.)