How did Rishi Mukherjee become such a good engineer even though he's from a tier 3 college? How
Short answer: I worked really hard.
Thanks for the question! I will try writing my journey in as much detail as possible. Mainly because I understand a huge amount of students of our country go to not-good colleges and there they are lost without real motivation and goal. I hope this will make them feel, “yes, you can”. I will also cite some resources which will help you to get started with programming.
I used to be a pretty bad student in school. In pre board exams of class 12, I got 38%. Every year in every terminal exam since class 2, I would fail in one subject. Any one. I got scared, slogged and managed to get 80% in the final exam of class 12 and 90% in class 10. IIT was not even a dream. With 1.11 lakh rank in AIEEE and 19k rank in WBJEE I had no choice of any “good” colleges. I got some rank in SRM which would get me into the IT department. One good decision that I took back then was opting NITMAS instead of SRM even though everyone I know was against this decision. Going to a known college (and spending more money) makes people feel secured for the moment. My father and me were determined not to pay extra for the same level of education. The only reason I opted for NITMAS instead of any other colleges in West Bengal because it had its nice, residential campus plus swimming pool (lol) and I didn't want to waste time in traveling.
Determined of studying hard in college and getting the best placement offer, I moved to West Bengal from Ranchi for 4 years. The first semester was not good. I just concentrated on my studies and there was no coding yet. I tried learning C from Kanetkar’s book but I couldn't understand.
I remember the exact place where I knew suddenly that I have ended up in an extremely shitty college with very less people around me having any real ambition. I could see seniors bullying juniors, everybody gossiping and doing literally nothing productive. Ganja-daru and adda was the cool thing. I knew then and there that I am not going to waste my life like this.
Meanwhile my dad was looking into what programming language would be good for me to get started with programming. So just as the first semester was almost over, he called and said, “come fast, I have an exciting programming language for you to get started”. I went home and started learning Python. It was amazing for me because I could understand what was going on.
In the meantime I was very curious about what the students of good colleges do that they land in good companies and we don't. I talked to a school senior who was in IIIT Hyderabad. He told me about SPOJ and Codechef. I asked him if I can get back to him when in doubt. To which he told me something which was the most important suggestion of my life. He said, if you really want to do something, you will find your own way to learn and solve.
From then on, it was just me, my laptop, codechef, SPOJ and the internet. Whenever in doubt I used to research on the internet. On the way I tried to motivate my friends to start coding and learn programming. A new batch came in and I had learned about ACM ICPC from somewhere in Quora. Quora was like the perfect destination to see what super awesome programmers from around the world were into! 2 of my juniors were really interesting and extremely intelligent. Abhay Mangal and Abhishek Banerjee. I told them whatever I had learnt and tried to motivate them into these. I didn't have internship experience yet but what was surprising is they got motivated without the “money” motivation. Most others get motivated by the money thing which I personally don't like. Others used to ask a lot. These two, on the other hand used to figure out their way and after some months, they were both 10 times better than me already. Now it's 100 times. :D So the point is, if you see yourself asking a lot from others instead of figuring out yourself, you are not doing a great job.
In my own batch I had found one guy who had done programming before. Sudipta Sen was a gem of a guy. He had made a website for his school at some point and had some php experience. So our free times were discussions of a lot of things that centered around programming. We made a couple of websites.
When you work hard, you will see people helping you. My H.O.D. gave me enough freedom to go for internships and competitions and not care madly about my attendance or stop me. Similarly, our internet guy on school campus would give me unlimited internet for my Coursera courses and interviews.
At some point in third year’s winter, I was all India 60 on codechef. I received an email from Aspiring Mind’s research team. After 4 rounds of interview I got an offer. It was amazing! I was to be paid 20k for 2 months. But before I had received this confirmation I received an offer from FindYogi. I had confirmed to them so I went there. (I went on to intern with Aspiring Minds in the next summer.) The pay was lower in Findyogi but I didn't care. If you commit something, you don't undo it. :P (gyan). That was probably the best decision I took. I was good with python, so I was working on their crawlers and they needed a php intern that's when Sudipta came in. Our mentor Anil Bhat was amazing. He was more of a knowledge-father who could explain everything related to everything. Super fun. We both regard him as our mentor for life. There was one incident which I would remember forever there. I had been trying to solve a problem for 4 days and couldn't really achieve anything substantial. I told this to him and he said, don't worry, next time you face any problem in life, you will give 4 days at least. This thing changed my life. Working hard and not dropping out is the only way to achieve something. :)
Summer came and I interned with Aspiring Minds. I was lucky here too. My mentors were amazing. They still are in touch and are keen to help me in any doubt I have in anything. I met a wonderful co intern Vaseem Ahmed Khan who was from DCE. I haven't met such a humble human ever before in my life. It was a wonderful experience. Mainly due to the people there. It was different from what I used to see in college. Everybody loved working hard.
After this my curiosity helped me explore computer science more and more and I did some projects for myself which was not related to college projects. These projects later proved to be really helpful during interviews. I gave a talk in Pycon India about how python can help students from normal colleges to learn programming on their own.
I saw thousands of failures in between. Got rejected in many interviews, GSoC. But I didn't care. I have failed so much in life that failure can't really stop me. Seriously though, keep going, that is the mantra!
I did 2 more internships and kept learning more by making some softwares and some competitive programming. My life just centered around computer science. Discussions with Sudipta continued. I kept on trying to motivate as many people as possible while in college. Batchmates, juniors everyone. Everytime a new batch came in, I used to see some batchmates getting excited about becoming Dadas. I hated that. I used to stop juniors on road to explain about programming. Some got motivated, some didn't. It was like an obsession.
Anyway, so in fourth year, I used to message a lot of startup employees, CEOs, whoever I found on Quora, LinkedIn and asked if they wanted to hire. Gave many interviews. I had 3 offers. I went for the one which paid the least. Probably the second best decision of my life.
Moved to Bangalore and joined Passport Parking. With so much to work on, you can't really stop learning. I worked on a lot of stuffs. Sudipta meanwhile went to Zomato for an internship. After that he moved to work with Passport too. Our boss was the best. We used call her “mummy”. Two years passed, learnt a lot and earned enough to buy a 3 bhk flat in Bangalore(in EMI of course).
I have been lucky to have met and worked with so many wonderful people in life.
After 2 years, I joined Sezzle. Sezzle was by one of the CEOs of Passport. My current boss and the CEO, is an even more inspiring guy. Takes care like a father. In Sezzle, I have worked on a ton of stuff. My learning graph has been the steepest here. I work remotely from India. We don't have an office here so I work sometimes from Ranchi and sometimes from Bangalore. Currently life is pretty great. I earn similar salary as anyone gets in Google, Amazon etc. Tomorrow if it isn't, will survive and make it great. :)
One good thing about all these things is, now I know how to learn anything. Just do it and you will learn it. I tried it on singing and cooking and it worked pretty well. ;)
Fall in love with what you do. Don't do something which you don't like. If you don't like Mondays, it's possible that you aren't doing what you love. Money is not a motivation for long. Don't run after it. It will come automatically. Be nice to people. Be truthful. Don't do office politics. Be confident about your skills. Take responsibility. Don't blame others for failures. You are the reason for what you are. Motivate others too. :)
If you want to get started:
Understand the essence of programming through a language like python which doesn't confuse your mind with lots of syntax. Read “a byte of python”. Solve the exercises religiously. You can also do some course of instruction to programming in Coursera or Udacity.
When you are confident that you can write simple programs, learn C++ or Java.
Go to SPOJ and solve first 300 problems sorted by number of people solved.
It is going to be hard. Don't stop.
After this go to codechef, hackerearth etc and keep taking part in contests.
Enjoy programming. Be curious and work hard. Make it the center of your life.
Search on google, quora, medium etc about what's going on.
Do projects. Publish papers, if possible. Make apps. Launch them in app stores. Do courses from Coursera, Udacity etc.
Read about people who have done it. That helps.
Stay away from people who say you can't do it.
Try to solve your problems yourself.
Hard work is the only way.
Always think, if Rishi can do it, anyone else can do it. :)
Go to conferences(Pycon, JsFoo etc) and meet people. Keep connecting to people on different platforms. This very very important. Your internships and jobs will depend on these.
Getting the first job/internship is going to be hard. Small tip here would be, don’t make it the motivation to work hard. Just keep working hard because its fun. Keep applying. If you have skills that companies are looking for, people will find you and give you the job. Run after the skills, not after the money. Keep evaluating yourself with whats in need in the market. Be truthful to yourself and you will know. :)