Geek on the top is all about success stories of Geeks who are working hard to chase their goals and are the inspiration for other geeks.
Shashank Pathak had an inclination towards reasoning and puzzles since his childhood and hence started Competitive Programming. He is currently doing his Research Internship at IIT Indore. Shashank is one of the cherished authors at GeeksforGeeks who took a step towards what he likes and recommends to follow what suits you the best but not the herd, risking your interests.
How did it all start? What made you land into the world of competitive programming?
Since my family background (father and brother) is related to computer science, so henceforth as per their advice, I chose the school of CSE in KIIT University. I have grown up seeing books related to computers and programming around me. To be honest I was least interested in programming till my 1st semester. I had an inclination towards reasoning and puzzles since my childhood as my parents kept me involved in competitive exams. It was the end of the second semester when my brother told me to start competitive programming and I started off with 30 days of Code. Then gradually I started practicing from Codeforces and in a real sense, since then I became serious about CP. Then I gradually moved to GeeksforGeeks, SPOJ, Codechef, Hacker Earth, Project Euler (in terms of practicing ). I started to enjoy every bit of it and gradually it became my habit. I also solved the book Narasimha Karumanchi, a good book with lots of variations and optimization techniques over a given problem.
You were selected for Research Internship at IIT Indore. How did you prepare for it?
It was one of the most memorable days of my life when I got selected for Research Intern at IIT Indore. Getting research intern at IIT ’s, solely depends on your personal choice. I decided right at the beginning of my second year to try for a research intern at IIT’s.
I was and I am still involved in competitive programming and problem solving to a deep extent. I decided to pursue my research intern in algorithmic analysis and optimization, which is the sole motive or objective of competitive programming. I just simply kept on solving as many problems as I could and learned various algorithms and data structures. It was fun, frustrating at times and a brainstorming work at the same time. In all these courses of time, GeeksforGeeks became my friend as it has very well synchronized articles on various data structures and algorithms with their coding implementation. Then from November onwards, I started to apply for a research intern at different IIT’s and started mailing professors of my research interest. One simple bit of advice, always choose your Prof. carefully while applying. I was lucky and fortunate enough to get an awesome Prof. to work under. Back then in February 2018, after my 4th-semester mid sem exam, I started to solve problems insanely on GeeksforGeeks and was the monthly leader of February. It boosted my confidence a lot, moreover, this achievement boosted my CV further and then I applied to IIT Indore, KGP, BHU etc. I got the acceptance mail in the month of March from IIT Indore.
I had also written some articles on GeeksforGeeks which I think has also played an important role in my selection. Writing articles on GeeksforGeeks helped me significantly in the documentation of my research work, and reading articles for a longer period of time inculcated patience in me which in turn helped me in dealing with tough research papers during my internship(reading articles and reading research papers has many similarities like understanding the mathematical aspect and algorithms). I will be always thankful to Sandeep Jain Sir and the whole GfG team for building such a beautiful platform for programming freaks. It played a major role in landing me a research intern at IIT Indore.
What are your Career Plans and How are you progressing towards them?
I wish to pursue my career in research, in near future, either at R&D sector of a company or at any good university may it be abroad or India. I want to achieve a good rank in all prestigious contests like ACM-ICPC, TCO etc.
I am still doing my research work at IIT Indore. As an intern, I was able to make significant contributions and my work impressed my professor, so he allowed me to continue working under him on more research projects and papers. Since competitive programming has become an integral part of my life, so I just keep solving problems more and more and take online contests. It’s increasing my algorithmic dimensions of knowledge and helps me prepare for tougher contests.
How did you come to know about GeeksforGeeks? How did it help you?
It was my 1st semester and I had been programming in C back then. I being least interested in programming, one day before my exam, searched topics and programmes that were there in my syllabus. The first link to every topic I searched for was of GeeksforGeeks. So from there I came to know about GeeksforGeeks.
When I started off with competitive programming sincerely at the end of second semester or approximately after my first year, GeeksforGeeks gradually became my best friend. In initial days, I was not able to solve even basic problems, so I got frustrated a lot. Then I opted for a strategy, I used to break down problem statements into independent problems and used to read the algorithms involved in those problems from GeeksforGeeks. It helped me cover huge number of topics from GFG. Many a times when I forget some algorithms, I find it out directly from the done list of topics(A very helpful feature of GeeksforGeeks website, where you can maintain your list of the topics you have read and the to-do list to keep a track of all the topics you wish to read in future). I would love to see a to-do list of problems, which we are not able to solve or have marked to solve again on GeeksforGeeks soon. I started solving problems on GFG later and I solved around 148 problems in the month of February and became weekly leader thrice and monthly leader once. It’s a great initiative that keeps people motivated towards more and more problem solving to achieve these titles. From January onwards I started writing articles on GFG website. You google a topic related to programming and its already there on GfG, hence while writing articles you have to think of some awesome variations on an existing article or entirely new topic. It eventually increased my knowledge, technical writing skills and thinking ability to tweak problems. If I am able to write the answers to these questions in clean and synchronised manner then it’s all because of experience of contributing clean and systematic articles on GfG.
Later this year in 2018, I have been selected as Campus Ambassador for my college at GfG. It has given me great exposure. I hold sessions on competitive programming with my team of HRCC coding club. My college lacks programming culture a lot, so it has given me a chance as a Campus Ambassador to make people aware about it as GfG is a big name and almost every person who is or has ever been related to programming knows about it. It has provided me an opportunity to test my skills in terms of leadership, teaching and programming.
Words are not enough to thank GfG for helping me out and making my knowledge grow exponentially day by day.
What do you like to do in free time apart from programming?
I love doing cubing(solving Rubik’s cube or any other sort of puzzle cubes). I like listening to music(Indian classical instrumental) and watching documentaries especially related to universe and mathematics, stand up comedy at times or talking to my family. Sometimes I do play cricket, table tennis and pool.
How did you handle the stress while competing to code? What are your suggestions for other students on the same?
It is the problem with everyone who starts doing something new. Every human body is comfortable in following the Newton’s law of Inertia. While competing in coding competitions, be patient enough and just focus on solving the problems. Don’t let your mind get diverted to the consequences of not solving that problem. I remember one question which came in ‘long challenge’ at Codechef. It took me four days to come to the solution but in that course of time, I was able to think of different approaches thus it increased my dimension to think and approach to a problem.
I would highly recommend giving short contests as it helps us to develop quick thinking ability to tackle the problem within a time constraint. Don’t worry about rating and rank at any point of time. Just compete with a motive to solve as many problems as you can. Even while practicing problems try to solve it within a time constraint. Always remember that competing is good but comparison is not.
What should one keep in mind while beginning to pursue the Competitive Programming & job preparation?
Competitive Programming is just like test cricket. There is no shortcut to becoming good at it. You should keep patience and just keep learning new things daily. Enjoy facing WA’s and TLE’s. It will give you more happiness when you are able to rectify your mistakes in code or think of tricky test cases. Keep pushing yourself for green ticks. Make sure that you don’t just increase the number of problems in your profile rather solve each problem religiously. If you don’t give a thought to the problem and rush to the solution, then you waste that problem. Think over a problem from all dimensions and still if you are not able to solve, read editorial and ask ‘Why?’, to every step of it. Why we are doing this step and so on. Stick to a few online platforms as it will not make you distracted. Give as many contests as possible. Always remember to do ‘Upsolving’ after the contest is over. I made a mistake, in this case, I started giving contests a bit late after a huge amount of practice. Remove the fear of rank and rating. Try tweaking the problems and always use a pen and paper to first devise the solution or logic to the problem and then start coding. Solve as many problems as you can from the online judges that suit you the most(I prefer SPOJ and GeeksforGeeks). If you want to grow at higher level of CP then besides DS and Algorithms, focus on mathematical aspects like number theory, game theory, modular arithmetic etc. ‘Project Euler’ is a very good platform which has a bunch of mathematical problems. All the questions on that are a gem.
For Job preparation, read blogs of Ashish Barnwal Sir and seek guidance from seniors who are placed at good companies. Read interview experiences on GeeksforGeeks of various companies as it is very helpful. Sudo Placement is a great initiative by GeeksforGeeks for preparation of placements.
Have the courage to follow your passion and interest. In my college, competitive programming culture is almost null, everyone is involved in development. I followed what I like and what suits me the best. Never follow the herd risking your interests.
Always be in contact with some good seniors who will guide you. In my case my guides and inspirations were Siddhant Pathak(Because of him I started loving maths), Angad Saberwal (Placed at Google), Hemang Sarkar(Placed at Amazon), Ashish Barnwal(Placed at Microsoft), Anudeep Nekkanti (Read his blogs and Quora answers to an efficient step-wise approach to start competitive programming).
If you know a top Geek whose interview should also be published, please drop an e-mail to firstname.lastname@example.org.
Let the top geeks inspire other students!!
- Sumeet Varma - Geek on the Top | Actual fun begins when you solely concentrate on finding algo to solve a problem
- Ayush Jaggi - Geek on the top | Get frustrated by TLEs and WAs, Higher the frustration - better the code
- Rodrigo San Martin Monroy - Geek on the Top | Extract common topics from previously asked interviews of the company you want to join
- Harshil Shah - Geek on the Top | Solving lots of easy problems are not as beneficial as practicing some hard problems
- Nafis Sadique - Geek on the Top | Seniors should take the responsibility to introduce the junior students to the world of programming
- Vaibhav Gosain - Geek on the Top | It is important to solve problems which are a bit above your current level
- Aashish Barnwal - Geek on the top | Make a habit of writing clean, readable, flexible and robust code
- Vicky Tiwari - Geek on the top | Don't forget to read editorials and upsolve problems after each contest
- Aditya Gupta - Geek on the Top | Participating alone increases your level, no matter you win or not
- Rachit Belwariar - Geek on the top | The best part at writing GeeksforGeeks were the questions asked by other users on my articles
- Abhishek Verma - Geek on the top | "Think Big to Achieve Big"
- Pratul Kumar - Geek on the top | Learning is not a race, so it should not be treated like same
- Sahil Garg - Geek on the top | "First Solve the Problem, then Write the code"
- Rachit Jain - Geek on the top | "Stop starting, start finishing: Don't just give up on things and then start doing something else"
- Gaurav Sen - Geek on the top | Patience is the key factor for a good learner