What I Learnt at IIT Bombay
I graduated from electrical engineering at IIT Bombay in 2015. This is a matter of pride and insecurity for me. It enabled me to work and research on artificial intelligence, software engineering and computers in general for around six years now. Yet, it always gnaws me somewhere that I don’t know how exactly compilers, databases or operating systems work. I am keenly aware of this lack of knowledge in these areas of computer science. In this post, I want to detail what I learnt during my days at the college.
How I Met My Major
I have to start with how I chose electrical engineering in the first place and narrate the story from high school. I worked hard in the school and ended up ranking 28th in this standardized test called IIT-JEE. Using this rank, you have to compete with other students in choosing the school you want to go to. You also have to chose your major before you joined the school. My good scores in the test allowed me to chose whatever I want. IIT Bombay is where all my friends were going to, so that was no brainer. But, for some random reason, I chose electrical engineering (EE) as my major.
I joined IIT Bombay (IITB) in June 2011. It was a rainy day. In the first year at IITB, students from all the majors go through the almost same courses. These courses tend to be math, basic sciences, an introduction to programming, and a major-specific introduction. EE, being an exception, had two introduction courses. At the end of the first year, based on your GPA, you also get a chance to switch majors.
In the first semester, I hated EE 101 course on power, motors and stuff and doubted the choice of my major. In the second semester, however, I loved the EE 111 course which was digital electronics and micro processors. In the same semester, CS 101 – intro to computer science took place. The professor crammed a lot of material into that course knowing that we may not do another CS course. I ended up hating this course because it was so difficult! Given that I loved EE 111 and hated CS 101, I decided to stick with EE. At the end of the semester, I had fairly high GPA to allow me to switch to whatever major I want and I didn’t use the opportunity.
Math is ♡
You gotta give credit to the course designers at EE and IITB. The philosophy tends to be that there should only a few core courses that everybody must do. Students are instead encouraged to do minors in other departments and honours in the same department if you want to specialize. You can take grad-level courses too if you meet the prerequisites and sometimes, blessings of the professor. Core course load is kept to minimum so that you can pursue whatever you want. In the final year, you don’t have any core courses whatsoever and you have to instead do electives – both inside and outside your major.
This made sure my next three years were fairly awesome. I loved math so I did a minor in Mathematics. I loved signal processing and communication courses because they involved a lot of Fourier transform and math. I also discovered information theory in our intro to probability course and ended up doing three follow up courses. I did a course on processor design and ended up coding up a ARM7 CPU. I did some courses on quantum physics and quantum computing because, you guessed it, math! I ended up tagging these courses as honours in electrical engineering. So, by the end of it all, I graduated with both minor and honours.
Move to Machine Learning
At the end of my third year, my friend, Sai Bhargav, introduced me to Machine Learning (ML). He was doing that course at the time and explained me what the hell the course was about. Machine learning has math and did something cool with that math – what not to like! And turns out, I did all the basic courses to start a career in ML – probability, information theory, linear algebra etc. My internship also made it clear that EE research is not for me. It started becoming clear that machine learning is my future.
While at IITB, I always wanted to go to grad school and do a PhD. You usually apply for grad school after your third year. I wanted to do a PhD in CS department on machine learning or computer vision. The competition for ML PhD was quite high even in those days. And look at me: an EE guy with no course work either on basic computer science or machine learning trying to apply for a ML PhD. All my research work so far had been on signal processing and optical fibers. So yeah, the grad school applications didn’t work out. It also didn’t help that my writing skills were not mature. If I had submitted this post as a Statement of Purpose, my chances would’ve been probably better.
I anyways continued with computer science and machine learning courses. In my fourth and final year at IITB, I did almost exclusively computer science and related courses. EE guys, in their wisdom, considered CS courses as in-major elective. So I could do courses like graph theory, computer vision and medical imaging as EE electives. I did a research project on communications which had a lot of math, but I could not enjoy it. ML-fication of me was complete.
It’s hard to believe that it’s been more than five years since I graduated in 2015. In the end, things turned out well and I did make a career out of Machine learning and Artificial intelligence. I am also glad that I did not get into grad school and instead dumped my experience points (XP) into startup skill tree. In fact, my last five years at qure.ai feel somewhat like a PhD and that’s a post for another day.
I have morphed into a completely different person over the years but it’s also surprising how I have not changed over these years. Academic mindset inculcated at IITB never left me. I was always keenly aware of the things I do not know and this always made me insecure. May be this insecurity is not so bad. It lets me reinvent myself because I know what I do not know :).