Giter Club home page Giter Club logo

campus-placement-prep's Introduction

Campus-Placement-Preparation :

Hi Folks, glad to see you here! In this doc, I'll share the study material which I used to prepare for my campus placements. I'll try to cover as many aspects and I hope this will help all the students prepare for their first full-time job (either through Campus Placements or Applying Off-Campus). If you are planning to apply for a job in the coming years, this doc will help you, and if you have gone through that phase, I request you to contribute; this will help our juniors. Please note that in this doc, I have shared the study material. I have shared the non-academic strategies here: My Campus Placement Experience and my Strategies where I have talked about some niche techniques that I used to prepare for my exams. Let me know how you feel about it and if you have any comments/suggestions, please reach out to me at: [email protected]

A brief about myself:

As of December 2020, I am a final year undergraduate student at the Department of Chemical Engineering, IIT Roorkee. I'm a Software Developer, and my areas of interest are Security, Cloud, and the Internet of Foods. I have offers from Oracle, Cisco, and Amazon, and I have decided to move forward with Oracle. I have worked at Cisco in Silicon Valley for one year under the Cisco International Internship Programme. Before that, I went for an internship in Cloud Computing at IIT Kharagpur. Like my friends, I wasn't sure of building a career in software right from the start of my college, and I started off exploring Chemical Engineering (Industry and Research). I have published a research paper in Bioenergy. I was invited to present my work at the International Conference (fully funded :p). Later I explored Interdisciplinary Research and gradually shifted to Software Development, and that's when my journey started (~ at the end of my second year). CSec takes up most of my free time. If you are into security, we'll vibe :p.

How Campus Placements look like at IITs

It starts around September/October. The first few weeks are for Resume building and Verification. This typically involves gathering all the certificates and documents about the achievements that a student wants to display in his/her resume. I personally believe IITR has a strict verification process and a student has to prove everything except his name, branch, year, and cgpa. After this, companies start visiting the campus and organize a Pre-Placement Talk (PPT). After the PPT, they organize tests/competitions depending upon the job profile they are offering. These competitions could range from group discussions to guestimates to submitting assignments. These things i.e.the PPTs and the tests for different companies happen in parallel and could happen at any point in time in a day. Some of my friends who applied in international positions had to attend PPTs even after midnight, and sometimes as early as 4 AM. The same happens with the tests as well. This happens for months (typically till mid-December). Meanwhile, after the second week of November, companies start to announce the list of students who have made through the tests and are shortlisted for interviews. They also announce the waitlisted students, but all the interviews happen together starting December 1st at midnight, with the exceptions of the PSUs (these may happen any day earlier). Interviews happen in slots, and each slot has multiple companies, and their interviews happen in parallel. A student can have two interviews at the same time, but he has to manage it by himself, the placements team is quite supportive in this as well. Before every interview slot, each student has to fill in the priority form for the companies interviewing in a particular slot in case a student gets multiple offers from the same slot. Once a student gets an offer, he has to accept it and he is out of the placement session.

Campus Placement Preparation (Software) (๐Ÿ“˜):

No doubt, getting a decent job in the software will requre good problem-solving coding skills, but that's not enough. There are some qualities like teamwork, leadership, communication skills, among others, which are also crucial. While these are critical skills, I believe there are more skills, and they are very important, Patience and Persistence. Students must not get over-excited if they perform great in some contests/exams and they should be consistent enough all throughout. Sometimes, the best coders might not make it to them. This could be due to many reasons; maybe they couldn't make it in the aptitude round or lacked soft skills. Aptitude plays a key role in some of the companies. Also, the placement process usually takes about 4 months in most of the colleges, patience is very important as it helps in persisted improvement. One big challenge students face is that they do not follow a proper structure; rather, they rely on random blogs, videos for their preparation. Even I have faced this issue. To help the next generation, I will try to put down all the useful resources in this repo, which I found very useful while preparing for my campus placements. Since I prepared for softeware roles, all the details presented in this doc are inclined towards preparing for software roles.

Also I have talked about my preparation strategies here: My Campus Placement Experience and my Strategies. In this blog, I tried to share as many minute details as I can. I hope you find it useful; pls give this repo a star if it deserves :p All the best.

IT company requirements (๐Ÿ“–) :

Here's a broad breakdown that I feel are required for successful preparation for placements. I'll discuss each section in detail later:

  • Communication skills -> how you speak in the interview
  • Presentation skills -> how you explain your previous work
  • General Aptitude -> aptitude tests and your approach in interview
  • Coding skills -> the way you code
  • Data structure and Algorithm -> Most Important
  • Object Oriented Programming (OOPs) -> Important, typically asked in coding interviews
  • Operating Systems -> asked in 20% tests and in 30% interviews
  • Database Management Systems -> asked in 20% tests and in 30% interviews
  • Computer Networks -> asked in 10% tests and in 20% interviews
  • Basic Unix Commands -> asked in less than 5% tests and in interviews
  • Basic System Design -> OPTIONAL

    One key thing I would like to emphasize here is that having a good understanding of Data Dtructures and Algorithms is very important but may not be sufficient for some companies like Uber, Codenation, Alphonse among others. These companies also look for your coding style, which I'll disucss later in this doc.

Resume

Use these links to build a classic and an attractive Resume:

Placement Series

Before you actually start working on your coding skills, I'd recommend going through this playlist. Most of the videos in this series are generic and could be skipped

Communication skills

It includes a video series about English and communication skills. Companies usually skip communication test in tier 1 and tier 2 colleges of India. Ignore this section if you have a good hold of English.

Presentation skills

The following video points out the importance of the speaing skills in job interviews:

General Aptitude

The following links will help increase hold on general aptitude. Some of the software companies and almost all the banks require these skills. If you are targeting software companies, I'd recommend practicing aptitude for few hours once every week, and that's more than enough. Practicing Aptitude will give you an edge over others and it helps in Coding Contests as well.

Coding in any Programming languge

Decide a particular language you would like to work on. Keep following points in mind while you decide:

  • Most of the students use c++ and if you go with c++, you can actively discuss with your peers and share codes when you practice.
  • It has STL library which includes all the data structures you would be using in your contests
  • STL library in c++ is optimized and you have to worry less about the time complexity of those operations
  • Python is relatively slow and there are more chances of getting a Time Limit Exceed (TLE) error as compared to c++
  • Python is simple, straighforward and less strict than c++. You don't have to worry about the data types and overflows while working in python. However, you might have to keep track of multiple ibraries for different data structures
  • Python is used extensively for Data Analysis, so learning python might give you an edge there

While, there might of tonns of arguments, I personnaly believe c++ is a better option for Competitive Programming (CP). It have similarities with multiple languages like Java, JS, microprocessor programming( Arduino). Also, if a student is comfortable with a language, it is very easy to get hold of another.
Once, you have decided to go with a particular language, the following link will guide on how to setup an environment. While, there are a lot of online IDE for practice, I'd recommend using one locally (I prefer VSCode as it has many Add-Ons) and save your code snippets.

C++ STL

Since, I used cpp, here are some of the links that will help you train DSA in cpp. Also, I've added a link to my template which I used to use as a base to any problem I used to solve. It has pre-defined macros and basic functions that are used in most of the problems, so it can be used to save time.


Other Links (Optional)

DS and Algo

This is the Most Important section and is a must do for every programmers, as it opens up the various insights about programming. Below are some of the links that I used as reference during my preparations. These are the most important Data Structures to be studied:

  • Arrays
  • Strings
  • Linked Lists
  • Stacks and Queues
  • Trees
  • Heaps
  • Recursion
  • Hashing
  • Graph
  • Greedy
  • Dynamic Programming
  • Divide and Conquer
  • Backtracking
  • Bit Magic

Competitive Programming (CP) is all about practice. You learn a lot when you practice. here are some links you coud use for theory, but ultimately what matters is your practice. I'll try to point out the specific topics that I referenced, as going through everything would unnecessarily suck up time.

Graph Theory

Practice Coding Problems

Competitive Programming is all about practice. The more you practice, more better you are at it. Here are some of the material which I used to practice during my prepration:

  • InterviewBit Very Very Important. Complete the course in a span of about 2-3 months. I'd recommend going through the course once again after you've completed all the sections. While solving problems, try to give some time and solve by yourself. If you take more than 30 minutes and could not reach to the solution, read the discussion panel or access hints. Most of the problems are important and you might find it hard to solve it in the first attempt, don't let yourself down. There are some hard problems, and remember you don;t have to by-heart all the problems, try to understand the logic.
  • GFG Must Do Very Important. Start solving these problems once you have completed the interviewbit ptoblems
  • 60 must solve problems for placements Important practice Problems
  • GFG Practice Practice here everyday, once you have a good hold of your DSA concepts.
  • Code Monk HackerEarth Practice here if you find practicing on GFG monotonous.
  • Online Platform to Practice- hackerearth try to solve some problems topicwise if you are not confident in a particular topic
  • Online Platform to Practice- codechef try to solve some problems topicwise if you are not confident in a particular topic

OOPs

Typically asked in Interviews, but one of the most important important topics:

OS

DBMS

Computer Networking

Not every Company will ask question on this. Skip this part if ou are running out of time. However for networking comanies like Cisco, studying this is a must. There's a very famous question when it comes to networking:
What happens when you typr in a URL in you browser and press enter. Tak about the protocols used as you go along?
Some links to study Computer Networks:

Some Important Problems

Interview Practice

This section would highlight the essentials that are required for interviews. The best time to go through these links is about 1 month before the actual interviews (November if you're from an IIT, because interviews starts in December). This should be done in parllel to your current preparations and as the interview approaches, put in more time to it. Most if the material will seems to be already covered and could be seen as revision:

Other Links

The following links have solutions to some of the standard problems of the websites like IB, Leetcode, HackerRank, HackerEarth. Refer these links if you find yourself stuck to a problem and could not find its solution. Also refere this, if you would like to get an alternative approach to the problem:

Cloud Dev Interview

Since, I have done internships in Cloud, I studied this as part of preparation for my interviews. While this may not be required for all the students, but the following video highlights the latest development techonologies, which could be a great point to discuss in your interviews. However, the student has to find a spot on where to bring up these points as the interviewer may not bring it up by himself:

Data Science Interview Questions

Study this only if ou have done an intership or have worked on a project in data science:

Systems Design

Study this only if you have previous work experience in such field:

If you have been through the campus placements phase, and if you've got something to contribute to this page, feel free to reah out to me or submit a merge request

If you're a junior, wish you luck for your placements.

Remember: In a Competitive Situation, Game Theory can tell you how to be smart

Once again, help me spread the words!!

Be smart and happy new year :)

campus-placement-prep's People

Contributors

pratham567 avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar

campus-placement-prep's Issues

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.