We are glad that our initiative of monthly contests was appreciated by one of our esteemed alumni Ravi Shankar Sir (2012-16) CSE. Past- Research & Development Engineer - Dassault Systèmes. On a conversation with our member Suraj in LinkedIn he provided us with some really great tips to ace as a programmer and secure a great career in that field.

Conversation with Ravi Shankar Sir

Batch: 2012-2016

Q. Sir how one should start in Competitive Programming?

Ans: Try to participate in every contest held officially by CodeChef.

  • For learning, CodeChef's long challenge is best
  • To measure your potential, CodeChef's short challenge is best.

Don’t run after the contests ranks. They will go up and down with time. Since you are in 2nd year and if you have started CP, then it is the right time to start. Don’t follow books for CP, use Google.

Important points that I didn’t pick up early in my college days are as below which you must follow.

  • Take regular participation in almost every contest. See Editorials after that. I guarantee you will learn something new from that.
  • Always solve questions after the contest.
  • Remember, while solving questions only you learn.
  • Always go step by step, like array, searching , sorting, recursion, Graph, Linked list, stack, queue, then DP.
  • Choose at least 2 languages for CP, I think C++ & Python would be good

Q. What kind of projects one should involve with?

Ans: For projects, Java / Python would be good. Java would be good for microservice-based arch. projects. If you are a Java master, learning spring boot would be very helpful. See, in the current industry, there are many buzzwords like Machine Learning.
I would suggest if you’re highly interested in that, then only u should go for Machine learning. Else software dev field will always be a high paying and demanding field.

Today there is a new thing called Machine Coding. If you haven't heard about it then google it. This is the new pattern of coding where every company is switching to like Uber, Flipkart, Ola, etc. Machine coding is about LLD (low-level design ). See this: https://workat.tech/machine-coding

LLD (exp level 1-2 years) and HLD(2+ years exp) (high-level design) are the 2 important things that big companies are looking for. Start practicing them, See the above site for sample codes.

One more thing, switch to Unix based OS( like Mac OS, Ubuntu) as soon as possible. It is highly demanded in the industry.

Q. What is your opinion about Internships?

Ans: Try to get an internship in some good organization. I would prefer startups, like Udaan, CureFit, Swiggy, because there you learn a lot and will have a good base for big companies. You all are going in the right direction. If I see some internship opportunities I will let you know.

Resource for System Design Interview Prep: https://github.com/donnemartin/system-design-primer

One more thing, you guys must create an account on LeetCode, if not already. When you will be in your final year, for your interviews, you will have to practice coding questions as your assessment test for companies like Amazon, Microsoft, Uber, etc.
Every big company has this as the first two rounds, For this LeetCode is a very good platform to practice coding questions. LeetCode offers recently asked companies questions from big organizations, but most of the questions are for premium users for which one has to pay INR in 11k for 1 year.

You can pay this amount in form of LeetCode coins which you can earn over some time. Like logging into the LeetCode account easily will give you 1 coin, participation in LeetCode contests gives you 10 to 20 and if you get a good rank, you get coins up to 2000 also. The point I want to make is that if you start today on LeetCode, then after 2 years you will have enough coins to get a premium account without paying 11k.

We thank you Sir to devote your precious time to provide a great guidance to the students of your alma-mater.