Put yourself in a position where you have the flexibility to choose your company

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

Background Story

My academic journey has taken me through different schools. I started in a Hindi medium school in a small town and eventually moved to the best English medium school in the city. My parents motivated me by setting an example for my cousin who studied at IIT Delhi. After completing high school, my interest in mathematics led me to decide to take the JEE exam.

With the full support of my parents, my family shifted to a different city to better prepare for the exam. Fortunately, I cleared the JEE exam on my first attempt and chose Electrical Engineering at IIT Kanpur.

Motivation

My motivation to explore the field of computer science primarily stems from the abundant opportunities it offers in both the corporate world and research fields.

Although my background is in electrical engineering, I developed an interest in coding during my first year of college. It started with a fear of failure in the introductory coding course of the first semester. To overcome this fear, I practised coding extensively, which gradually sparked more and more interest. I believe this strong foundation instilled confidence in me whenever I engaged in coding.

Placement Preparation

My preparation included simultaneously focusing on two aspects: clearing tests and clearing interviews.

For the tests, I primarily focused on three areas:

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

I began my preparation with competitive programming, as it carries significant weightage in both tests and interviews. Before starting this preparation, I was already familiar with fundamental algorithms based on specific data structures. I learned these while studying introductory Data Structure and Algorithm courses in college.

I sought help from online sources for any doubts related to the course. I believe it is crucial to have theoretical knowledge about all the algorithms that one will use in the future. In my preparation, I emphasized understanding complexity analysis and why certain data structures are most efficient for solving specific problems.

To practice for placement preparation, I started by solving programming sections on various programming websites. In the initial phase, I systematically tackled topic-wise questions at different difficulty levels, which helped me cover commonly used algorithms and data structures. While solving questions for each topic, I also referred to different sources on the internet.

I gradually completed various sources one by one, narrowing down the problems I focused on. As I became more comfortable with certain topics, I dedicated more attention to my weak areas. One important aspect I prioritized daily during my preparation was solving problems in as few attempts as possible. This approach improved efficiency and saved a significant amount of time.

After completing the topic-wise preparation, where I already knew which algorithms and data structures would be utilized, the next phase involved validating this learning. This could be achieved by either participating in online contests or choosing a question bank where no prior information about the problem category is provided.

In addition to intense preparation, cultivating the habit of writing clean code is essential to reduce debugging time. Some companies also expect candidates to write code on paper, and presenting a messy coding style can create a negative impression.

Placement Results

For the first slot on Day 1 of the placement process, I was shortlisted by 5 companies based on my test performance. Each company had a rigorous interview process to make their final decision. With a priority list in mind, I allocated my limited hours to each company. At the end of all the interview slots, I received offers from multiple companies.

The companies didn't want to lose me, so they called me for a brief meeting and started negotiating. They tried to convince me of the opportunities in their offers. With the help of my friends, I ultimately chose the offer from Graviton as a Quant Researcher.

Guidance for Placement Preparation

  • I always recommend redoing any foundation course if you struggle on the first attempt. Otherwise, you'll have doubts about yourself when dealing with more advanced topics in that area.
  • To complete your preparation before a test or interview, it's important to revise the famous algorithms for each topic. Ultimately, practice is the key to improvement.

Building a Career Around Machine Learning

Machine learning is a highly sought-after field in computer science. Like any other field, it requires a foundation course to start with. I began with an introductory-level Machine Learning course offered at my college. This course provided a basic knowledge of widely used subdomains along with theoretical backing. Completing regular assignments in the course helped me familiarize myself with Machine Learning-specific libraries. Additionally, a group project at an elementary level gave me an idea of solving a specific problem end-to-end and the practical difficulties involved.

Guidance for the Machine Learning Journey

  • Even if your college doesn't offer machine learning courses, there are plenty of online options available. Make sure to complete every part of the course.
  • After completing the introductory course, focus on specific domain courses in machine learning. While taking these courses, implement basic projects related to the topics available from online sources.
  • Reproducing the results of already implemented projects by yourself will help you become familiar with different machine-learning libraries and gain hands-on experience in solving various problems. Once you're comfortable with the implementation part in a few domains, start exploring the novelties of existing algorithms.
  • Observe the effect of the changes made and compare the results to theoretical expectations. Understanding how specific changes impact the results is valuable when working on novel problems.

Following these step-by-step learning approaches can guide you towards working in a research field or a corporate firm. Now is the right time to approach professors for research ideas or secure internships in corporate firms. Gradually accumulating experiences will enhance your expertise in the machine learning domain. Finally, a last message: continuous learning and practice are the keys to developing a long-term interest in programming.

Enjoy Learning. Enjoy Thinking. Enjoy Algorithms!

More from EnjoyAlgorithms

Self-paced Courses and Blogs