Taken from a post by Srajan Jain on Career Queries - BITS Pilani Facebook group.
Given the recent surge for questions regarding how to prepare for placements/internships, the importance of projects, electives, whether not having an internship is bad etc. I feel like making a central post will be the best way forward.
First of all, I get where this is coming from. All throughout my college life, I was confused about this myself. I never got any concrete answer. Some seniors said go for web-dev projects, others suggested competitive programming. I scoured all of Quora too, also getting mixed answers. Some said CC was everything, and some said CC had so little to do with real-life work in the industry and that it encourages bad coding practices, and so you should focus on dev work.
The main reason (I realised later) as to why I was doing so much searching around was just to avoid CC if possible. I had tried it, and the learning curve was steep and unstructured (at that time, leetcode wasn't a big deal and InterviewBit was also in beta). Had the bar for entry been lower, I would have actually just jumped right in and got done with it, just to have that base also covered. I feel a lot of the questions that we see here come out of the same place.
Managing CC with my dual degree courses was tough. Finally, I got complacent and figured that I would do any required DSA practice with my summer internship. Then the internship became too draining, so I couldn't really do my practice. Ultimately I had to squeeze all my practice into the two weeks after the internship was over and before my placements began.
The scene wasn't pretty. I wasn't able to clear a good chunk of Day 0/ Day1 companies. The ones I was able to clear, often got the required number of students even before everyone got to interview. After giving 3-4 coding rounds a day, I didn't really have the time even to look for what mistakes I did in the rounds. All I could do was wake up the next day and hope for the questions from today to be something I could do.
I had the best possible prep regarding core CS concepts, like OS, DB, OOP, networks and such, and a great CG to back it up. I had the best academic projects, done with amazing collaborators both in India and abroad. None of it even mattered.
Finally, I got a PPO from my SI company, and I took it. To be completely honest, it was partly out of the fear of not being able to clear further coding rounds, and not completely based on my satisfaction with the company (though I did like the work and the compensation wasn't terrible). This was a bittersweet feeling.
Now I am finally in a position where I am really happy with the company and job I am in. But guess what it took for me to get here? Had to do a lot of DSA practice, which is arguably more difficult with a full-time job alone, than when in college with everyone around you also doing the same thing.
Here are some things which I feel are noteworthy from my story:
The three most important thing for your placements is DSA, DSA and DSA. Anything else doesn't count till you clear the online coding round and coding interviews.
Projects on your CV will be seen as an afterthought, if ever. Most companies will never look at the projects, even in tie-breaker cases where two candidates did equally well in DSA. I have personally seen two kinds of cases - if the company can accommodate, they'll take both the candidates since good interviewees are kind of rare, or if they are very very selective (generally because they are offering extremely high pay) they take another coding round as tie-breaker.
In my batch, Nutanix had 4 spots to offer but 5 people had cleared all the rounds. The bottom two were given a question paper on few concepts of parallel programming, cloud concepts. Projects never came into the picture.
This doesn't mean that projects are worthless though. You can be asked in one of your rounds to describe one of your projects. This is generally done to gauge your understanding of the big picture and the small parts that it breaks down into while taking up big projects. For CS folks, this can very well be a course project that they have done and understand well. For others, just one good project would suffice but work on that only after you've done the DSA part well.
Similarly, electives and courses on the CV just serve to let the interviewer know what areas they can question you on.
If you were not able to land an internship, you don't need to fret much. Internships aren't always guaranteed to give PPOs. And they can also hamper your preparations. I personally have seen two cases in my batch. The first one gave up an internship with basically an assured PPO because he wasn't satisfied with the company. He then became the first one to be placed in our batch with the highest CTC in our batch.
Another few guys from our batch, who were kind of underdogs throughout their college life, just managing to get by even in core CS courses like DSA, didn't get any internships, but they came in clutch in those last two months. They worked tirelessly for those two months and then managed to clear all coding rounds and a few interviews as well, some landing multiple offers.
This again emphasises that internship experience and other things on the CV really don't matter that much.
I don't mean to say that courses and projects add nothing of value. They may not be relevant to your placements, but if you know your stuff, it will greatly help in your day to day later. I am very much for paying attention to your academic coursework as well.
Even if things don't work out in your SI/placements, there is no need to worry. Any preparation you did will help you down the line for sure. You will have enough opportunities to get into your dream company even after you leave campus. Just that the preparation would be a bit hard because you will be rusty and also probably alone in your prep while also managing a full-time job. So best to get as much as you can now itself even if it seems hard because it will probably get even harder later.
Hopefully, this helps. This was my experience and though it isn't the most pleasant experience to recount your struggles, I hope you can learn from my mistakes and go on to do better.
P.S. Core CS concepts for interviews are important. I did not emphasise them much because this post was specifically about the coding part. But in some companies, once you get past those, you can expect a few questions on OOP, DB, OS and networks. These need to be prepared for as well, but this shouldn't take the biggest chunk of your time. A lot of the questions here would be standard, from previous interview experiences which can be found on GFG. Generally, the interviewer will ask you which topics you are comfortable with and then ask you questions about them.