Put Yourself in a Position where You have the Flexibility to choose Your Company: Shubham Jain

Introduction

Hi, I am Shubham Jain, currently working as a Quant Researcher in Graviton Research Capital (a High-frequency trading firm).

Background Story

My academic journey has been through different schools. I started from a Hindi medium in a small town to the best english medium school in a city. My parents motivated me by setting an example of my cousin who studied at IIT Delhi. After completing high school, my interest in mathematics led me to decide to go for the JEE exam. My family shifted to a different city to prepare better with the full support of my parents. Fortunately, I cleared the JEE exam on the first attempt and decided to choose Electrical Engineering in IIT Kanpur.

Motivation

Starting with the motivation to explore Computer science fields is primarily the number of opportunities at every level in both the corporate world and research fields.

Although I’m from electrical engineering, my interest in coding started in the first year in college. It began with a fear of failure in the first semester's introductory coding course. That fear led me to practice as much as possible, which eventually led to getting interested in doing it more and more. I still feel that it put the foundation so well that I could feel confident whenever I started doing it.

Placement Preparation

For me, it included preparation for both things simultaneously. The first was clearing the tests, and the second was clearing interviews.

For tests, there were broadly three parts, which I focused on the most,

  1. Competitive Programming Question
  2. Core computer science knowledge
  3. Quants (Probability and Puzzles)

I started my preparation from competitive programming, which covers most of the weightage in both tests and interviews.

Before starting this preparation, I was already in touch with famous basic algorithms based on particular data structures. I learned these while doing introductory Data structure and Algorithm courses in college.

I took help from online sources for any doubts related to this course. I felt that it is essential to have a bit of theoretical knowledge about all the algorithms you will use in the future. My primary devotion in this preparation was to focus on the complexity analysis and why certain data structures are most efficient in solving a particular problem.

For practicing the placement preparation, I started with doing the programming section on various programming websites. In the initial phase of my preparation, I was doing topic-wise questions for each difficulty level in a good way, which helps in covering mostly used algorithms and data structures. While practicing questions for each topic, I also went through that topic from different sources on the internet.

I tried to complete a few sources one by one while narrowing down the problems to spend time on. As I was getting more comfortable in certain topics, I was focusing on my weak topics. One important thing that I concentrated on every day while preparing is to solve the problems in as much less attempt as possible; this will help improve efficiency, which will eventually save a lot of time.

After completing the topic-wise preparation where I already knew which type of algorithms and data structures will be used, the following preparation part comes where I have to validate this learning. The way to prepare for this is to either.

  • Participate in online contests or
  • Pick a question bank where no prior information about the problem category is provided.

Along with the intense preparation, it is also essential to have a good habit of writing clean code to reduce the debugging time. Some companies also expect the candidate to write code on paper and present the clumsy coding style gives a negative impression.

Placement Results

For the first slot on Day 1 for placement, I got shortlisted in 5 companies based on test performance. Every company had a rigorous process of interview rounds to make the final decision. I already had a priority list in my mind to invest those limited hours in each. At the end of all the interview slots, I got offers from multiple companies.

Companies did not want to lose me, and hence they called me for a brief meeting and started bargaining. They were trying to convince me of the opportunities in their offer. I finally decided to choose Graviton’s offer as a Quant Researcher with some of my friends' help.

Guidance For Placement Preparation

  • I always suggest doing any foundation course again if you cannot do it on the first attempt; otherwise, you will have that doubt about yourself while trying more advanced things in that area.
  • To complete your preparation before a test or an interview, it is good to revise each topic's famous algorithms. At last, practice is the only key to becoming better and better.

Building a career around Machine Learning

Machine learning is one of the hottest fields in computer science. Like every other field needs a foundation course to start with, I started with the introductory level Machine learning course offered in college. This course includes all the basic knowledge of widely used subdomains with a bit of theoretical backing. Solving regular assignments in an introductory course helps in getting to start with certain Machine learning-specific libraries. I also had a group project of elementary level, which gave me the whole idea of how a certain type of problem can be solved end-to-end and the practical difficulties that can come along with this.

Guidance For ML Journey

  • Even if anyone has no access to machine learning courses in their college, there are plenty of online options; make sure to complete every part of the course.
  • After completing the introductory course, try to pick the specific domain course in machine learning. While completing these courses, implement the basic project on those topics that are available on online sources.
  • Re-generating the results of already implemented projects by yourself will help you get acquainted with different machine learning libraries and hand-on-experience to solve various problems. Once getting comfortable with the implementation part for a few domains, start trying a few of the existing algorithm's novelties.
  • Observe the effect of the changes made and how these results are different compared to theoretical expectations. Learning how a particular change affects the results is very useful while working on a novel problem.

These step by step learning can guide you to start working in a research field or a corporate firm. Now it’s the right time to approach professors for some research ideas or grabbing an internship in corporate firms. Gradually adding experiences in your way will help you get better in the machine learning domain. Finally, one last message - continuous learning and practice is the simple way to develop a long-term interest in programming.

Enjoy Learning. Enjoy Thinking. Enjoy Algorithms!

Our Weekly Newsletter

Subscribe to get well-designed content on data structures and algorithms, machine learning, system design, oops, and mathematics. enjoy learning!

We Welcome Doubts and Feedback!

More Content From EnjoyAlgorithms