[TopTalent.in] Nitin Gangahar on the Many Benefits of Competition Programming
Nitin Gangahar has long list of achievements to his name and an amazing placement offer by, arguably, the best company in the world (no prizes for guessing this – it’s Google) is just one of them. Also, he has been a part of some really interesting research at the University of British Columbia and he is, at present, a research assistant at the well-known Chennai Mathematical Institute (CMI). We, at TopTalent.in, spoke to Nitin Gangahar and here are some exclusive nuggets of knowledge from our conversation!
Team TopTalent.in: We wouldn’t be exaggerating when we say that programming has been a big thing in your life. How and when did you start with programming? Can you list out some resources for beginners?
Hey geek! It's time to become a success story instead of reading them. Check out our most renowned DSA Self Paced Course, now at a student-friendly price and become industry ready. And if you are looking for a more complete interview preparation resource, check out Complete Interview Preparation Course that will prepare you for the SDE role of your dreams!
Feeling prepared enough for your interview? Test your skills with our Test Series that will help you prepare for top companies like Amazon, Microsoft, TCS, Wipro, Google and many more!
Nitin: I personally started programming when I was in school. Python was my first official language, though I had seen some code in other languages before that. It depends a lot on when you start finding it fun – don’t do it if doesn’t seem fun initially. High School is a good time to start learning if you are interested. A lot of my friends didn’t know about programming till they came to their sophomore year in university and they are much better programmers than me. So, it doesn’t matter much when you start off this path.
Following are some useful websites to get started:
- topcoder.com – for solving interesting problem
- cplusplus.com – for c++ reference
- gamedev.net – for game development
In this context, I would also like to mention this really inspiring article, one of my personal favourites – Teach Yourself Programming in 10 years by Peter Norvig.
Team TopTalent.in: Is it important to know multiple languages like C / C++ / Java / Python / Perl or knowing problem solving concepts?
Nitin: Knowing more languages which work on different paradigms always helps a lot. Eric S. Raymond was my childhood hero and he once mentioned in this article titled “How to be a Hacker” (http://www.catb.org/esr/faqs/hacker-howto.html) – It’s best, actually, to learn all five of Python, C/C++, Java, Perl, and LISP. Besides being the most important hacking languages, they represent very different approaches to programming, and each will educate you in valuable ways.
Learning a programming language can take years, provided you want to know the ways to exploit the uniqueness of the language really well. Getting comfortable with the syntax is just the beginning. Nevertheless, Problem solving concepts are something that each programmer should be well-used to. For instance, I believe that a good programmer wouldn’t face any problem when asked to code a breadth-first search or come up with a simple recursive equation for a problem.
Team TopTalent.in: What is competition programming? Can you name some you took part in?
Nitin: Competition programming is more about people than about it being an activity. It’s just about a group of people who like to challenge others with problems based on programming and math, and expect others to come up with the solutions. It’s really a fun thing to do, especially if you love solving puzzles and love solving problems using a computer.
My team mates and I were aiming to go for the World Finals of ACM-ICPC (International Collegiate Programming Contest), which is one competition that is close to all the people who pick up competition programming at the university level. At the school level we have, IOI (International Olympiad in Informatics). TopCoder is a website which is open to all age groups and both professionals & students are active on it. In addition there is Sphere Online Judge and Project Euler, which own good collection of problems.
For starters, ICPC is a good aim to fix. Your skill set rises, for sure, when you are solving problems on such a regular basis, and hence, it helps you to solve interview questions as well. However, one must keep in mind that the prime motivation for doing competitions must not be to win jobs because it would be like drawing fixed boundaries around one’s skills.
Team TopTalent.in: What are the benefits of programming in teams? Do you advise a study group for this?
Nitin: Team programming helps you to learn a lot. My team mates – Ravi and Manu – taught me a lot over the past 2 years. Manu always possessed a different style of thinking, which helped Ravi and me learn a lot, especially to develop different problem solving approaches for different kinds of problems. Ravi taught me how to convert an unknown problem into smaller known problems and how to apply the training he gained from other places to a new problem. Team programming always helps you to think of a problem in way different from any approach you would’ve followed in solitude.
It would be great to see more ICPC teams from Indian universities. We started a Google Group for our students so that they can share and learn. These days, it is decently active but there is a huge scope of improvement. Study groups might drift a little away from the core objectives as people will want to do things differently. In my opinion, small and focused teams would be better off vis-à-vis study groups.
Team TopTalent.in: What steps should campus students take in enhancing the college coding scene?
Nitin: Forming teams would be a good first step. Local competitions are another great initiative. IIIT-Hyderabad has been really active in organizing local competitions and the number of teams at ICPC Regionals from there keeps increasing each year. It’s really amazing to see them grow. An online group for university students would be another good start.
Team TopTalent.in: What are your tips for creating a perfect 1 page resume?
Nitin: This may sound corny, but the best way to come up with a perfect 1 page resume is to work hard during your undergrad years and pursue actively what you like to do. More often than not, it might just get mundane and boring, but then learning and excellence should drive you to continue. If you can proactively do that, and work for enough number of competitions/projects, you might not win a lot of prizes and tonnes of goodies, but in the end you would have learnt enough to fill up one page on a resume.
This article is powered by TopTalent.in – A high end Job portal for students and alumni of Premier Colleges in India. Sign up now for free exclusive access to top notch jobs in India and abroad. Get in touch with them via facebook, twitter or linkedin. If you like GeeksforGeeks and would like to contribute, you can also write an article and mail your article to firstname.lastname@example.org. See your article appearing on the GeeksforGeeks main page and help other Geeks