How to Start Competitive Programming in September 2020
Competitive programming is changing the industry hiring process drastically. Many Big Companies like Google, Facebook prefer hiring through vigorous competition for programmers to grab a job. Google hosts Code Jam for hiring top programmers across the globe. Facebook also conducts its Hacker Cup contest for its hiring process.
I have been participating in various competitive programming contest and winning most of them have been an easy job for me. Many people think that coding for more than 5 years is the key to win various competitive programming. But let me clear this myth for you, I had just 4 months of coding experience before winning my first competitive programming contest.
1. Learn Any Programming Language.
The rules of all top competition programming contest allow a user to use any programming language of his/her choice. So, let's use this rule for our advantage. If you are willing to learn Python for competitive programming, learn Python.
Personally, I started learning C++ to begin my journey of coding. I also, suggest most of the readers start with C++ if you have a technical background and have a slight idea of how to code. If you belong from a non-technical background who have no prior experience of coding should start with Python. As Python is very easy to learn and it is just like writing an easy with fixed rules and syntax.
I also suggest most of my readers learn language from verified sources and prefer not buying any expensive course only to learn the basics of programming. Trust me, coding becomes very easy if you learn the basics without any stress or fear of coding. To start with your journey I would suggest you learn from the below YouTube video and invest your 6 hours to learn Python.
2. Learn Data Structure and Algorithms.
When you get familiar with writing small programs with your preferred programming language, new and powerful methods are required to create and solve various programming problems. So, most of the competitive programmers focus on mastering the concept of data structure and algorithm to implement it while writing code for some tricky problem.
So, learning data structure and algorithm is a must for every competitive programmer. Mastering all concepts of data structure require a minimum time of 3 months. Also, learning data structure and algorithm will help you to crack various technical interviews if you are willing to apply for a junior software developer job.
Here comes the tricky part, data structure and algorithms are very important in your journey of winning competitive programming. Therefore, depending upon a YouTube video or a single website won’t help most people. I would suggest you buy a course from Udemy or Coursera. Completing this course can also get you a verified certificate, which will help you to apply for various technical jobs. Most of the courses on Coursera are from top universities. So, it is good to invest a small sum of money into it.
3. Practice new problems.
Now when you have learned a programming language and you have knowledge about data structure and algorithm, start applying it to various problems available online. Solving a minimum of 10 problems per day will help you to build your problem-solving skill, which is most important while participating in programming contests.
Try reading the complete problem and creating a Python program or C++ program which can solve the problem inefficient way. If you get stuck with a problem, don’t hesitate to see the solution to that problem in your preferred language. When you see the solution try to figure out the logic behind it, you can also come up with your own solution after understanding the logic behind it.
I would suggest you create a free account on different problem-solving websites like Hacker Rank. Personally, I started solving problems on hacker rank to expand my problem-solving skills. Just select your preferred language on your homepage and hacker rank will display the problems. They also have an inbuilt editor, after you type your solution for a particular problem then hit submit to see whether the solution is correct or not. They also don’t run any advertisements on their websites, which can be irritating for some programmers.
Mostly, all competitive programming contest don’t charge you to participate. Once you are done with all the training, I would suggest you participate in various contents running online. Winning or losing will not matter at the beginning of your journey, but gaining experience will matter. So, don’t just aim to participate, try to see what your drawbacks are and practice to improve your drawbacks.
When I participated in my first contest, I was ranked 10,000 globally. I figured out that my typing speed is not as good as other players in that contest. So, I practiced touch typing for a few weeks to increase my typing speed and guess what, after that, I always finished in the top 100 positions. Some programming contest has a higher importance, while some have very less. Let’s see the top contest you should participate right now.
Google Code Jam:- This contest is hosted by Google itself and winning this contest will surely give you a job at Google. This contest can also be said the dream competition for all the programmers across the globe. This contest is held only once a year. It has many elimination rounds and winning this contest should be the ultimate goal of your life.
Facebook Hacker Cup:- Same, like Google Facebook also hosts a coding contest. But, the job is not the prize for the winner. The winner gets the cash prize of $20,000. In some cases, if the host judges are impressed than you may land a job at Facebook. But, winning this contest should also be the goal of your life. This contest is also held for just once a year
Google Kick start:- Unlike, other competitions which has elimination rounds this contest focus on giving a college student a complete experience of competitive programming. It has various rounds named as A, B, C etc. You can participate in any of the rounds or all the rounds if you are willing to. Usually, winning this contest won’t give you any prize. It is held for 6 months straight. I would suggest you participate in it.
They are many websites like Code Forces, Code Chef and Leet Code which hosts contests weekly and you should try participating in them to gain the feeling of the competitive environment. Winning on this platform won’t give you any prize. It suggests rates coders accordingly and gives them a rank globally.
Practice programming as much as you can. Also, don’t get afraid of coding. Coding is just a language to communicate with computers in a proper manner. Best of luck in your competitive programming journey.