This blog post is going to be influenced by my own experiences and might not be what the reality is. But eh, everyone’s reality is different - so there’s that.

Going straight to the point, a lot of my juniors ask me: “what to do for placements”, and a lot of discussions with my colleagues and batchmates include “what to do for hike” or “find a better paying job”. And not surprisingly, the discussion often ends with a couple of conclusions. I am going to talk about those conclusions in this piece.

Coming from a tier-3 (or maybe 4, 5, 6..) roadside engineering college, the only jobs that I could apply to and have a shot at getting through were from service based companies. If you’re in the same boat, I don’t need to mention names of these companies, you’d already know. Meanwhile my friends from school who did well in entrance exams and got into better colleges, had better jobs as well. To give a rough idea about compensation, they are at least getting paid twice as me, with the highest being paid 4.4 times. I guess this paragraph sets the narrative of what’s about to come, so moving on right to that:

From Tier 3 to high-paying job

  1. Accepting realities: The first thing I’d do if I had a chance to go back to my first year of undergrad studies, I’d just try to accept what the reality is. I didn’t do well enough in entrances, so I can’t be in a better college and that’s about it. No point in blaming “the system” or anything else. It is what it as and there are going to be consequences for you being in the position you are. Getting into a top notch company from college placements (& even after that) is going to be easier for them than you, and that’s just a harsh truth. “The tag” matters.
  2. The consequences: If you pick up syllabus of engineering in a tier 1 and a tier 3 college, the subjects and topics taught won’t have a considerable difference. The professors, the attendance and almost every other thing could be somewhat same. The only difference (which is the consequence) is about the kind of people you’d be surrounded with. In tier 1 colleges, you’ll find the most kids who have worked their *** off to be in that college & they are proud of it. They have also realised this fact that if you work hard for something, it will pay off.
  3. The difference, explained: Speaking specifically for circuit branches, their seniors will already be appearing for top-notch companies across the world which hire only from tier 1 colleges. Seniors of these seniors would’ve already told them about what topics to learn for making it to these companies. For most part, that is a mix of DSA, system design and core subjects like OS, compiler design and networking. But eh, you can get this advice on the internet as well, so what’s the difference? The dfference is mentioned in point 2. The environment around you. When you chill in your hostel room with other people like you who couldn’t (or didn’t) make it to tier 1 colleges, your counterpart would be discussing about optimizing the approach to get rid of a TLE in some contest.
  4. What’s tough: Now you know you must do DSA to get a shot at those jobs that you dream for, then what’s the problem? Is it that you lack passion? To be honest with you, I have read about, spoken to and even closely experienced people flat out quitting competitive programming once they land “the job”. Of course there are exceptions, i.e. the people who do competitive programming as a mind sport, but that’s not of essence here. What’s tough is to do DSA when you don’t see any results. Those people in tier 1 colleges prepared for their entrance for at least 2 years. Doing DSA is the same. It is a long process, just like a seed you sowed isn’t going to give you fruits the very next day. They have the hard-work ethic to put in sincere and honest hours for a long period before expecting any visible results.
  5. How to apply: There have been some people whom I know are very good at competitive programming but don’t have the job they deserve because they didn’t get that “opportunity” you get when you’re at the tier 1 college. But that phase doesn’t last long. Don’t stop learning DSA after thinking that you’re not going to get any offers anyway. They will.

So to boil it down:

  • Do DSA sincerely, don’t stop if you don’t see immediate results, trust the process and put in those hours.
  • While the above point would improve your problem solving skills, also make sure to read and understand how software works, how to design robust and scalable systems, and other computer fundamentals from grassroot levels.
  • Never think you’re not that smart. You can achieve your goals through sheer hard work. Talent is just a lottery that you won when you were born.

Never give up.


About internships:

Don’t worry too much about them. If you are doing DSA, there’s a high chance you’ll end up with one. One internship is fine. The whole idea of doing an internship is to know how it feels to be working a job. You get to see how a typical day would look like when you start working as a software engineer. A great introduction to scrum meetings, jira dashboards, and other day-to-day activities.


About projects:

A couple of major projects (end-to-end e-commerce app would be a great example) are just fine. Remember to learn the underlying concepts of whatever technology you use to build those projects. Use those projects as an opportunity to learn git, CI/CD and other aspects around developing software. Learn software design patterns and write code in a way that’s simple, clean, readable, and managable no matter the size.

If you got hold of any technology while developing those projects, there is a high possibility that you’d have used some open-source software or library. Try to make useful contributions to these libraries. What a person donating blood feels like is what software developers feel while contributing to open source.


Student councils and events:

Participate in 1 or at most 2 communities after carefully examining if you feel aligned to what they do. Most of the times, there will always be a workgroup that involves actively communicating with both, internal and external stakeholders. Try to involve yourself in those workgroups to get opportunity to speak, might be addressing a crowd or team meetings. Such avenues make you a better team player, puts you in a position of responsibility and helps you improve your communication and interpersonal skills.


Prioritizing:

One can prioritize all this in the sequence in which points in this article are written.