Don't hesitate to take the roads less traveled by


Hello Everyone! I am Sandesh Kumar, currently a Software Development Engineer in Amazon Web Services (AWS). My schooling has happened from an ICSE board school of the Jhansi district in Uttar Pradesh. Mathematics and Computers were my favorite subjects during my school days, and I spent my free time exploring them only. I was unaware of the Engineering and IITs until my 10th class, but I started preparing for it as per my parents, teachers, and peers' suggestions.

My first encounter with programming

  • My first encounter with programming happened in 10th class, where Java programming was in my computer science course. I always found that solving puzzles and writing algorithms were very natural to me. I want to give credit to my subject teacher as his guidance produced a spark inside me for computers. I scored 100 out of 100 in that subject. This was so fascinating to me that I started dreaming of making a career in computer science.
  • After my 10th, everyone, including teachers and friends, suggested me not to take computer science as my 5th subject as it would be difficult to manage an extra time-consuming course along with JEE preparation. But that spark of class 10th was strong enough to motivate me to take the Computer Science course. It was an unconventional decision, but that was my interest. Many criticized me for this as, according to them, it would be impossible to crack JEE if my focus is divided. But I took faith in my decisions as I was highly influenced by this course and knew that if something excites me, I will do it. I learned C++ programming in my 11th and 12th class. 

Surprisingly, I managed my time efficiently and cracked the JEE advanced exam with a decent rank. Based on the available options, the bigger challenge was whether to go with the newer IITs and take the CSE branch or to go for the older IITs and compromise with the branch. Somehow I got to know about the newly emerging stream, which was Mathematics and Scientific Computing. I was inclined to this as Maths was my deepest interest and I was fascinated with computers.

It was an unconventional decision for me. None of my friends, including friends, teachers, and parents, supported this decision to take a branch that is not so popular. But I had to select it because I wanted to explore it.

Starting the Journey of IIT

During the first semester, there was one course on C programming language. As I was already aware of C++, I found that whatever I was learning in that course was just a subset I already knew. I was able to finish the 3-hour labs in less than half an hour. I was full of confidence, and I achieved the best grades in this course just because of it. My overall GPA was above 9, and I was at cloud 9. People around me started praising me for that. BUT! You must be thinking that it was good. 

I was also lured into the same thought process, but it eventually made me over-confident. Because of that, I took Data Structures & Algorithms course in my 3rd semester, which was supposed to be done in the 5th semester. I actually thought about it and took this decision which actually backfired on me. Initially, the course was good, but I realized my mistakes when the complex algorithms entered the curriculum, which I did not know earlier. My semester overall grade went below 7, and I was like, what a blunder I did. I was at the bottom-most position in terms of my confidence, and I could not find people around me who were earlier praising me. But, I had to come back, and not only the come-back, but I also had to come stronger.

Steps that I took to revive myself before the internship interviews

Let me summarize it pointwise so that it would be best to go through,

  1. I revisited the lecture materials, which were not the long PPTs but just 20 pdfs of 2–3 pages each. I thank the professor for this.
  2. To understand any concept, I preferred to watch the animation or visualization rather than the long lectures.
  3. I prepared my own quick notes that helped me during my placement seasons as well. I still revisit those notes.
  4. I preferred to solve the problems on paper rather than writing the full code and run in the terminal. I never tried competitive programming. I was more interested in finding the reason behind the algorithm rather than practicing more and more problems.
  5. I did Machine Learning and Data Science courses to make myself aware of the new emerging technologies.

These steps revived my strength and confidence, and I started believing in myself.

Internship Decision

It was common among seniors to complete the Mathematics and Scientific Computing course in 5 years with an additional master’s degree. But I did not want to invest one extra year to get a master’s degree. I was not aware of the use of this degree if all students sit in the same placement drive. As per the campus placement policy, I could sit for internships only once. I had two options to choose from, 

  1. Follow the general trend of doing the project under any professor in my third year and then sit for an internship in the fourth year. OR
  2. Complete the degree in 4 years and sit for internship interviews in the third year.

I preferred the second one as I did not want to invest my one complete year just for one master’s degree. 

Steps I took to prepare for the Internship.

  1. I decided to finish the Data Structures and Algorithms course in the third semester because I thought it would give me ample time to practice it.
  2. The first company that came to campus was Microsoft. I was able to ace the written tests but was not prepared for interviews. I got anxious and was not able to answer the questions during the interview time frame. I started thinking too many possible scenarios for the problem, and eventually, the clock won.
  3. The next company was Amazon, and the gap between the exams of these two companies was approx 20 days. I took this as an opportunity and worked on my problem-solving skills. I did hands-on for some selected problems and revised the concepts of probability and statistics. And finally, my hard work paid me well; I got selected for Amazon Internship.

During my internship period, I gained the experience of a full-stack developer, and based on my performance, I received a Pre-placement offer from Amazon. I was delighted, but there was another twist.

Life after getting placed

While working in Amazon, I figured out that a master’s degree is advantageous based on the industry hierarchy. I started thinking about completing this master’s degree because if I have to do this in the future, it would cost me two years instead of one (if I convert my Bachelor's degree to a master’s in IIT, it just take one extra year). But I had the pre-placement offer, which I would have to reject to complete my master’s. 

Again, my whole family and friends were against me for this decision. But this time, the decision was difficult for me as well. I watched my courses and found that if I could overload my 9th semester, it would take just one extra semester to complete the master’s degree. I went for it, and to be on the safer side, I contacted the Amazon team and asked them to allow me to join in December. They agreed with me, and it was one of the best pleasures of my life. 

Now, I had one extra summer. I wanted to explore some different areas. Once the job is started, I won’t be able to explore any different computer science domains other than software development. Hence I decided to do my second internship but am now in the research domain of Machine Learning and Data Science. I already had completed a minor degree in Machine Learning. But finding the research intern with an average academic performance was really difficult. Through the SFU-IIT MITACS joint program, there were only 10 seats available, and I could secure my position in that. I wrote emails to different professors to express my dedication to machine learning and the data science domain. I got the opportunity to work in the field of Human Computer Interaction (HCI) in Canada, where I learned a lot of things, especially the exposure to research. 

I found myself more comfortable in a software development role than in research, but I achieved what I wanted to (an exposure to research). I was fascinated with Data Science and Machine Learning, and hence I picked my master’s project in the Machine learning and Finance domain. It went really well as we developed a new training model with higher accuracy. After completing my master's degree in nine semesters, I joined Amazon as SDE-I. Internal transfers were easy there, and within 7 to 8 months, I switched to Amazon Web Services (AWS) team because of the popularity it was gaining worldwide.

Best Technologies to make a career in

Almost every field in computer science is taking a gigantic shape. But it is always advisable to explore different fields before making any hard-and-fast decision. Based on my professional experience, if I would have to suggest someone make a career in computer science domains, I would say,

  1. Storage and Computing: Data collection has become an integral part of every business on every horizon. With such a gigantic amount of data, there comes the challenge of storing it. And if you are storing it, you must be performing some analysis over that data, and eventually, that will bring the computational cost. So optimizing the storage and computations will be largely required in the future, and that's why I would pick this field as my first choice.
  2. Cybersecurity: With the increment in the data collection process, there comes the responsibility to use that data without compromising the users' privacy. Every single year, data leak and fraud cases because of are doubling or tripling their number. That’s why I would say that data security will be one of the biggest challenges in the coming future, and hence jobs in the cybersecurity area will be fruitful.

Tips & Guidance

  1. Don’t think too much about what others are doing. Find the reason which motivates you the most to do a particular task. Motivation should be divided into different levels, and there must be a bigger motivation that is getting fulfilled with the fulfillment of smaller motivations.
  2. Never hesitate to take the less-traveled roads. You will find it difficult initially, but you will enjoy it the most once you become used to it.
  3. Always make short notes and revision materials for future use. You can not remember everything, but revisiting notes will make you memorize the path you traveled.

I want to give the overall message that “Never hesitate to take the roads less traveled by.”

Enjoy Learning! Enjoy Daring! Enjoy Algorithms!

More From EnjoyAlgorithms

© 2022 Code Algorithms Pvt. Ltd.

All rights reserved.