The Journey From a Remote Village to IITK to Being Software Engineer at Microsoft - Archana

Background

I hail from a small, underdeveloped, and conservative village in Karnataka, where educating daughters were questioned because they were supposed to learn household chores and get married.

But my parents were brave and unique. They had dreams of sending me to a good college; they insulated me from that world and always inspired me to study hard. They believed that education is a gateway to a better and empowered world. My journey towards this empowerment started when I got admission to Navodaya Vidyalaya for class 6th.

Journey Of Computer Science

After I completed my 10th standard from Navodaya, I cleared the Dakshana entrance test. I got a scholarship from the Dakshana Foundation (an NGO), which offered free JEE ( Joint Entrance Examination) coaching for deserving students from rural backgrounds. With this wonderful opportunity, I was determined to go to IIT.

I had no aspiration to pursue medical studies, so among the options of biology and computer science (CS), I chose CS as my fifth subject. But frankly, I enjoyed learning C++ and writing code.

Based on my Jee rank, I joined IIT Kanpur as an Electrical Engineering major. IITK offered us maximum flexibility and freedom to choose our own passion. Even though the environment is highly competitive, it always encourages you to learn more and achieve more. Other than giving a degree, it transforms us and helps us grow as mature individuals.

The best thing about IITs is that you are free to explore as many departments as your time and interest allow you. I preferred courses from the CSE department to be able to pursue my interest in computer science. Believe me! It never stopped amazing me. I obtained two minors in CSE, one in Machine Learning and another in Computer Systems.

From the beginning, I was sure to pursue a career in software engineering. For my third year summer, I got an internship at Citicorp. My work was to perform Proof-of-Concept (POC), where I had to study and analyze multiple technologies and give a report on which one is best suited for our scenario. But other than that, my role included implementing the best-suited application software built by the tech companies, and I realized that I might not get an opportunity to build a new product there. So, I was determined to quit my pre-placement offer (PPO), even if I get one, and started practicing competitive coding on the weekends during the internship.

As you might guess, I started slow, I re-learn all the concepts of data structures and algorithms one by one, and for each concept, I practiced coding problems starting from easy to hard. Initially, it felt like each question I solved was an achievement that encouraged me to solve more.

This happens to me even now in my job. Every time I build a new feature, write an API, or fix a bug when I see it working, it gives this sense of achievement and encourages me to do more. At the end of rigorous 6–7 months of coding practice, screening tests, and multiple interviews, I got the Microsoft job offer.

Technologies To Explore

Many technologies are being developed, researched these days. Still, ML/AI always fascinated me, and I love building technologies and products that can create some impact, then comes full-stack development. I will talk briefly about my interest and career prospects in these fields.

Machine Learning: ML as a concept always amazed me. Sure, machines can’t overpower humans because they lack creativity and innovation. Given the huge amounts of data, programmed machines can analyze them in minutes, where humans might take months to analyze large amounts of data. Especially in the modern world, ML/AI will always hold its significance when data has every dimension. In terms of career prospects, far as I am aware,

  • Companies like, Microsoft, offer data scientist's specific role  — which involves data processing and implementing various standard and established ML algorithms.
  • In some companies, there is no distinction between a software engineer and a data scientist; you’re expected to learn as you work and work effectively in both fields.
  • Suppose you want to work in pure ML, which is mostly research-oriented. In that case, both kinds of companies offer you research-based roles, where you will get the opportunity to invent new algorithms and publish papers. Still, the minimum criteria to qualify for those roles is to hold a Ph.D.

Full-Stack Development: In my software engineer profession, I love to code on front-end technologies, maybe because here I can see the result immediately. In terms of career, at least at the beginning of your career, you’re expected to be open to learning and working on both front-end and back-end, but you might choose to specialise in any field as you go on.

Tips

Based on my experiences from my journey, I would like to convey that :

  1. Mind is like a ghost town, fill it with great ambitions and feed it with inspirational stories.
  2. Don’t forget to add debugging logs. I meant not in code (that you will do anyway) but in your journey to track your career. Because keeping track and having definite goals, motivate us and help us achieve things faster.
  3. Don’t ever hesitate to seek guidance because you don’t have the time to explore everything yourself; use some processed knowledge to make your learning faster.
  4. Never hold back thinking you lack skills or experience, but start a project with a design in your mind and start coding! Because we learn as we code. And trust me, it gets easier as you keep learning and keep coding. But the key here is to keep learning because as I am writing this, someone in the world is developing new technology. I learned entire front-end coding technologies on the job, and my learning journey doesn’t end here; I will keep learning as I aspire to become a full-stack developer.
  5. Have that ‘never give up mentality.’ Always look for an optimal solution because that’s what distinguishes you from others in the long run.

References That You Can Follow

Few books which I found useful.

  1. Machine Learning — A Probabilistic Perspective: This was the first book I read for ML and a nice one, which helps understand basic ML concepts mathematically.
  2. CLR via C#: I read this book when I started as a developer at Microsoft. This covers the .NET framework, asynchronous programming, and other concepts for development using C#

Enjoy Learning! Enjoy Thinking! Enjoy Algorithms!

Similar Blogs

Enjoy Problem Solving

Subscribe to get free weekly content on DSA, Machine Learning and System Design. Content will be delivered every Monday.

© 2020 EnjoyAlgorithms, Inc. All rights reserved.