What is Competitive Programming?
Competitive programming is solving coding problems using algorithms and data structure. The participants need to write code under various restrictions like memory limits, execution time, the limit of coding, space, etc.
WHY? WHY? WHY?…(P.s I was at the same place what you call as NOOB)
SO, Benefits of Competitive programming:
- Competitive programming helps you to improve your logical and analytical skills
- It improves your algorithmic knowledge.
- It is an excellent addition to your CV.
- Improve your network of friends who are also passionate about programming
- It is supported by world-famous organizations like Google, Amazon, Facebook, IBM, and others.
Talk is cheap…show me the code
So the lists are as follows:
(Rankings are just numbers no comparison of level, one can start with anyone he/she likes…)
Topcoder is a widely popular platform for competitive programming. It offers a lot of algorithmic challenges that you can complete on your own using their code editor tool. The website is better suited for an advanced audience.
Aside from solving challenges for fun online, they offer sponsored competitions where you can win prizes for writing the best solution.
Visit Here: https://www.topcoder.com/
Coderbyte provides 200+ coding challenges you can solve in an online editor using 10 different programming languages. It also provides official solutions for some of the challenges along with 800,000+ user solutions. Coderbyte is recommended by the top coding bootcamps because of its collection of interview prep challenges.
Visit Here: https://coderbyte.com/
HackerRank focuses on computer science topics so it provides challenges for several domains such as Algorithms, Mathematics, SQL, Functional Programming, AI, and more. You can solve all the challenges directly online. They provide a discussion and leaderboard for every challenge, and most challenges come with an editorial that explains more about the challenge and how to approach it to come up with a solution.
Visit Here: https://www.hackerrank.com/
HackerEarth offers enterprise software solutions. It helps companies or individuals with their innovation management and technical recruitment needs. HackerEarth has conducted 10,000+ programming challenges to date.
Visit Here: https://www.hackerearth.com/
LeetCode has a collection of some of the best algorithm challenges online today. The topics they cover require knowledge of data structures such as binary trees, heaps, linked lists, etc., which is why their challenges are a bit more advanced than some other websites — but the challenges are great if used when preparing for a software engineering interview.
Visit Here: https://leetcode.com/
CodeChef offers hundreds of competitive programming challenges. It allows you to write code in their online editor and view a collection of challenges. The coding problems are separated into different categories based on your skill level.
Visit Here: https://www.codechef.com/
And keep in mind these two principles while developing your coding style.
- Easy to implement. You should feel comfortable implementing the solution you came up with. Why? Because during the competition, the last thing you want to happen is to get lost in your code. It’s always better to think 5 more minutes about implementation rather than spending 10 more minutes doing it.
- Easy to read. This means ‘Easy to debug’. Let’s face it, we both know that bugs appear all the time. Do you know that feeling when you have 10 minutes left and you don’t find that fucking bug? Yes, you do. To solve that you have to write legible code. So when you start debugging, the code would feel natural and simple to follow.
Always code as if the guy who ends up maintaining your code will be a violent psychopath who knows where you live