Hi, I am Shubham Jain, currently working as a Quant Researcher at Graviton Research Capital (a High-frequency trading firm).
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.
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.
My preparation included simultaneously focusing on two aspects: clearing tests and clearing interviews.
For the tests, I primarily focused on three areas:
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.
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.
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.
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!
Subscribe to get well designed content on data structure and algorithms, machine learning, system design, object orientd programming and math.