Honest Guide to Campus Placements in Software Engineering
Welcome to the final boss level of college life: Campus Placements. This blog is written to serve as a simple walkthrough for the game of campus placements, hope to see you clearing all levels.
Note: This guide is based on my personal experiences and insights and should not be considered as any official guide. If ‘not getting placed yet’ is your struggle, then think of me as a fellow ex-patient offering a recommendation based on what worked for me and not as a doctor with a guaranteed cure.
Checklist for Placement Readiness
High Priority — Needs Daily Practice
- Data Structures & Algorithms [Coding Questions]
- Any Domain’s Knowledge & Version Control
Medium Priority — Needs Weekly/Bi-Weekly Practice
- Aptitude [Logical Thinking & Problem Solving]
- Core CS [OOP, DBMS, CN, OS]
- Basic Tech MCQs [SQL Queries, Outputs, C++/Java, Time Complexity]
- Puzzles
Less Priority — Can Be Prepared When Interviews Are Near
- Tailored Resume
- Behavioural & HR
- Read Interview Experiences
- System Design (Basics)
Resources & Roadmap to learn:
- Learn Programming Language: Python
a. Neetcode Crash Course — Only the essentials needed for solving problems in Python
b. Neetcode Cheatsheet — Revise here everyday - C++ (If you don’t want to learn Python)
a. Cppreference
b. Tutorialspoint
c. Cplusplus
d. C++ STL
Data Structures:
- Arrays & Strings
a. Read about Arrays
b. Read about Strings
c. Pick problems from this sheet and solve - Linked List
a. Learn concepts from Striver’s Playlist or from FaadCoder Oneshot
b. Some Important Questions [Solve on Leetcode]
- Middle of a LinkedList
- Delete middle of LL
- Detect Loop & Remove loop from a LL
- Reverse a LL
- LinkedList is palindrome
- Delete duplicates in sorted LL
- Delete the whole LL
- Separate even and odd nodes in a LL
- The intersection point of two LL
- Sort a LL - Stack & Queue
a. Aditya Verma Playlist
b. Some questions tagged with them
- Stack
- Queue - Hashing
a. Anuj Bhaiya (Lecture #26, #27, #28, #29, #30 from DSA1 course) - Trees (Basic things like Tree traversal, and some common concepts are enough)
a. Tree traversals (Preorder(DFS), Inorder, Postorder, Level Order(BFS)) - Graphs are rarely asked in college placements, study if interested.
- Heap (Have a basic understanding on how it works and practice problems if interested t study)
Algorithms & Approaches:
- Recursion — useful in DP and Trees
a. Most of this will be covered during Tree problems
b. Resources if you want to learn more
- LeadCodingByFraz
- Pepcoding - Sorting [from GFG]
a. Merge
b. Quick
c. Bubble
d. Insertion
e. Selection
f. Searching
g. Binary search related problems [Try easy level ones] - Dynamic Programming — 2 distinctions — you can start from the end and recursively find the sub problem answers OR start from the starting and work your way upwards. It’s all about you using the solution of the previous problem to benefit to solve the current one.
a. DP on Leetcode [Try easy level ones]
b. Top 20 DP Questions
Domain Knowledge & VCS
[This is needed for enriching your Resume]
Domain Knowledge: Projects on your resume prove your skill in Software Development world and your experience with team collaboration to the interviewer. You need to be good at at least one of the existing Domains of Computer Science. It can be App Development or DevOps or Web Development or Game Development etc.
Once you pick your domain of interest, start by outlining a roadmap for yourself covering the important topics in that domain. There are plenty of free YouTube playlists available to cover most of the necessary material. Remember, watching is not equal to learning; you need to practice through implementing your learnings on side projects.
Checkout my blog on Web Development Roadmap & Resources. Also, look at some common software engineering tracks other than just web dev.
Version Control System — Git & Github
a. Git Cheatsheet
b. Coding Train Playlist — best out there
c. Kunal Kushwaha Git & Github
d. Freecodecamp
Aptitude
- FreshersWorld — Simply search any aptitude concept, and they will have a video on it.
- Practice Problems — Indiabix
- Some Common topics:
a. Numbers, HCF and LCM
b. Works and Wages
c. Pipes and Cisterns
d. Time, speed, distance, Trains, boats, and streams
e. Percentages, ratio proportion and partnership, mixtures
f. Algebra, Average, Age
g. Profit and loss
h. Simple Interest, Compound Interest
i. Mensuration 2D, 3D
j. Clocks, Calendars
k. Progressions
l. Logarithms
m. Permutations and Combinations, Probability
n. Geometry
o. Trigonometry and heights and distances
p. Coding-Decoding
q. Race
r. Simplification and Approximation
Core CS Fundamentals
[For Technical MCQs and Interviews]
Find a collection of Notes on Google Drive
- QUESTION SHEET
- OOP
a. Anuj 1 hr
b. InterviewBit - OS
a. Gate Smashers Playlist
b. Interviewbit - CN
a. Gate Smashers playlist
b. Interviewbit - DBMS
a. Jenny Playlist
b. Interviewbit - Cloud Computing (Optional — if you have time & interest)
a. InterviewBit
Basic Tech MCQs
Google and Solve: Use sites like Javatpoint and Indiabix for practice. GFG Mock tests are also highly recommended. These MCQs typically include:
- Guessing the output of a code snippet
- Identifying the wrong line of code
- Determining the time complexity of code
Most of these concepts will be covered while solving DSA problems, so additional dedicated time might not be necessary. However, if you want to focus more on this, it’s up to you.
SQL Queries: These might be asked in some interviews. Spend some time practicing SQL queries whenever possible. Resources like GFG are excellent for this. Try solving some SQL MCQs on GFG
Puzzles
[Not always asked, but rarely to check your solving abilities]
Tailored Resume
- Set up an ATS-friendly resume template: Ensure your resume is readable by ATS. Use standard fonts like Arial, Calibri, or Garamond in 10pt size, and save your resume as a PDF file.
- Fill up your template with well-framed content in a meaningful order: Prioritize sections such as Contact Information, Skills, Experience, Education, Projects, and optionally, Certifications or Awards.
- Use appropriate keywords: Include keywords from job descriptions, and ensure important skills and experiences are highlighted.
- Test your resume: Use tools like Jobscan to test the readability and relevance of your resume.
Do not use tools like Canva or online resume builders, as these can cause formatting issues with ATS. For crafting your resume, I recommend using Overleaf, which is based on LaTeX. It offers clean and professional templates.
Behavioural & HR
- Understand the STAR Method: Structure your answers using the Situation, Task, Action, and Result framework to give clear and concise responses.
- Reflect on Your Experiences: Think about your past projects, teamwork, leadership experiences, challenges, and achievements. Be ready to discuss them in detail.
- Align with Company Values: Research the company’s mission, values, and culture. Prepare examples that demonstrate how your values align with theirs.
- Practice Common Questions: Some example behavioural questions I was asked during my interviews
- Tell me about a time you faced a significant challenge at a project.
- Describe a situation where you had to work with a difficult team member.
- Can you give an example of a goal you set and how you achieved it?
- How do you prioritize tasks when you have multiple deadlines?
- Describe a time when you had to adapt to a major change. - Checkout some QnA on Indiabix
- Google other resources, search for common behavioural interview questions and practice answering them.
Read Interview Experiences
You will find them on GFG and Striver
- Identify Patterns: By reading multiple interview experiences, you can identify common patterns and frequently asked questions specific to the companies you are targeting.
- Understand Expectations: Get a clear understanding of the level of difficulty and the types of problems that are typically asked in interviews.
- Prepare Strategically: Focus on areas that are frequently tested, and use the experiences to guide your study plan.
System Design
[Optional — rarely asked for entry level engineers]
- Elevator systems
- Parking lot
- Makemytrip
- Tinder
- Uber etc.
- Can find these easily on YouTube, Preferable channel: Gaurav Sen
Some tips:
- Understand the Basics: Familiarize yourself with basic concepts like load balancing, caching, database sharding, and microservices architecture.
- Focus on Trade-offs: In system design, trade-offs are crucial. Understand the pros and cons of different design choices.
- Think Big Picture: Always keep scalability, reliability, and maintainability in mind when designing systems.
Additional Resources if interested
- Striver SDE Sheet (Popular but challenging)
- Mock Tests [To gain confidence]
- CSES
- DSA Sheet by Siddharth (More like a Superset of Babbar’s Sheet)
- Beginners Coding Sheet by Siddharth Singh
- 30 Day challenge by Siddharth Singh:
- Best Free Resources for Coding
- DSA Roadmap
Do your Homework
Whenever you receive a mail about a company visiting your campus, here are some essential steps to take according to me:
- Talk to Seniors: Reach out to seniors who were placed in that company last year. Gather information about the hiring process, the different rounds, what qualities the company desires in a candidate, preparation tips, and insights into the work life there.
- Research the Company: Research a lot about company and worklife balance on google, by checking out employee reviews on websites like Glassdoor. Even reddit, twitter and quora will have opinions if it’s a well known company. Check the reviews and understand how the employees feel working there, how is work life balance, employee happiness, salary hikes, bonuses, self growth scope etc
- Check the Job Description: Carefully review the job description to ensure the role and daily responsibilities align with what you’re looking for. For example, if you aim to work as a software developer but the role offered is technical consultant, you might want to reconsider applying.
- Service Bonds: You should probably skip the company if it has a service bond (saying you need to work here for X years and some penalty if you resign in between). Some companies might mention this directly, while others might imply it through stock options.
- Understand Salary Breakdown: Analyze the CTC/salary package breakdown. The in-hand salary is often much less than the advertised figure after various allowances are deducted. Make sure you have a clear understanding of your take-home pay to have the correct expectations.
Concluding Notes from my end:
- Manageable Expectations: It’s okay to skip topics that feel overwhelmingly difficult. Focus on mastering the concepts you understand well instead of stressing over those that seem too advanced for your current level. Remember, it’s better to be thorough with what you’ve learned than to waste time on what you can’t grasp. This doesn’t mean you should avoid new concepts entirely, but trust your gut on what to prioritize.
- Avoid Comparisons: Do not compare yourself to anybody, everybody has their own pace, be happy you started out earlier than many. If comparison is compulsion, compare with yourself a week ago — like “A week ago, I had no idea what C++ was, now I know the enough basics to code what’s on my mind”
- Practice Explanation: When solving a coding problem, explain your solution as if you’re in an interview. Articulate how you arrived at the solution, your approach, the flow of your logic using simple English and examples if necessary.
- Continuous Improvement: After solving a problem, reflect on whether you could have used a better data structure or a more efficient method. If you’re unsure, check the discussion or solutions section on the coding platform to see how others approached the problem. You’ll learn various methods and techniques this way.
- Handwritten Notes: It’d be better to maintain handwritten notes if you can. You just have to write in a very short and concise way, of what the problem wanted you to do and what was the trick/formula or method you used for it (The logic in simple English). Same goes while solving aptitude as well, a formula or shortcut method needs to be noted down, and revised.
- Organized Resources: Keep a dedicated folder for storing resources, codes, and practice materials.
- Realistic Job Expectations: Given the current recession in the IT sector, don’t aim solely for high-paying jobs. Apply when you find a company and role that feels right for you. Get an entry in this job market, then proceed to improvise.
- Realise the Reality: Remember, placements involve 50% luck, 10% gender-bias, 20% communication, and 20% skills. You might not get exactly what you expected, but you will end up with something.
- Prioritize Wisely: It’s up to you to prioritize what you want to focus more on. For example, some may neglect practicitng aptitude due to the possibility of everybody copying during online tests. So they prioritize the skills that will be crucial during interviews like Problem Solving & Core CS. So if you feel like focusing less somewhere, you can! (but at your own risk).
Remember, the key is consistent preparation, staying focused on your strengths, and continuously improving on your weaknesses. Placements are not just about landing a job; they’re about finding the right fit for your skills and aspirations. So, stay positive, keep learning, and trust that your hard work will pay off. Good luck, and may you find the opportunity that’s perfect for you!