What Are The Best Resources For Competitive Programming?
Gennady Korotkevich, Petr Mitrichev, Adam D’Angelo…. Have you heard the above name ever…?? Let me tell you who they are…
First two people (Gennady Korotkevich, Petr Mitrichev) are popular for being top competitive programmers in the world and the last one (Adam D’Angelo) is also one of the best competitive programmer and Co-Founder of Quora.
Programming is one of the stupidest things((jokes apart…) to do in the entire universe because you need to tell your computer how to do something, but all the above names are famous for doing this stupidity. Now you can’t deny that this is a valuable skill set and if you are actually interested doing this stupidest and funniest (jokes apart) thing then a straight forward advice for you is…pick up a language, learn the fundamentals of coding, start practicing on coding challenges websites and jump into the Competitive Programming.
Competitive Programming is the best way to get noticed by top product-based companies and crack interviews there but the question is Where to start?. Which website is good if you are new to programming? What are some websites and what are the contests to participate and compete with others? So below we list out all those websites and contests that will provide you the answers to these questions about Competitive Programming…
GeeksforGeeks mainly focuses on computer science subjects and DSA fundamentals. It has plenty of articles with proper explanation of code and their solution so you won’t face difficulty in understanding the logic behind the code. The site has multiple language options to solve the problems. This site is also useful for placement or interview preparation and it is specially designed to prepare a programmer for getting hired in top companies for software engineering or development roles.
There are multiple coding challenges. These challenges are divided into different topics of Data Structures and Algorithms that will help you to build a solid foundation on each topic. You can find all the easy, medium and hard level coding problems on this website. You can also take various courses for practicing and preparing for the technical interviews.
TopCoder is one of the prestigious sites for coding challenges. The credit for introducing ranking in the coding competition goes to this website but frankly speaking, problems here are more complex so the website is good for advanced level programmers. Once you have a good grip on programming then moving to this site will be more beneficial. You will find a lot of options on this site like an app, chatbot, website, design, software development and you can also test and fix bug here.
TopCoder competition SRM’s (Single Round Matches) give you the opportunity to compete with other programmers. They also host event TopCoder Open Tournament(TCO). You can also win cash prizes giving the best solution on this site. IBM, Google, eBay, Microsoft, SoftBank, Nvidia these are some leading companies hire candidates from this website.
This site boasts of about 7 million developers who have taken more than 21 million code challenges so far. HackerRank is a US-based organization and they have challenges for different sections such as Algorithms, Mathematics, Functional Programming, SQL, AI and a lot more. You can find discussion and leaderboard for challenges, also they provide explanations about the problems that give proper guidance to come up with a solution.
HackerRank is very good for beginners so even if you want to print your first program “Hello World!” then definitely HackerRank gives this opportunity to you. It has a pretty good UI with boilerplate code pre-written that helps beginners to start competitive coding. They host some contests on a monthly basis such as CodeSprints, 101 Hacks, HourRanks. Week of Code, you can visit the link Contests for details, you can also create contest here and encourage programmers to compete with each other.
The main four core focus areas of HackerRank is Practice, Compete, Job and Leader board. So practice here as much as you can, set a good ranking, participate in contests and get hired by leading companies from this site such as Adobe, LinkedIn, Twitter, DropBox, Booking.com, CapitalOne, Washington, Washington Post, Dell, RedHat, Uber and a lot more.
Cook the best recipe with your code, become a master chef and get into the top companies. Sounds funny but CodeChef is really an awsome Indian based competitive programming website which has a large community of programmers. It is an Indian educational initiative of Directi. Problems are categorized in different levels like Beginner, Easy, Medium, and Hard.
Some of the beginners find this website a bit difficult even if they are solving easy level questions over here. So switching to this website after HackerRank will be a good choice if you are starting from the very basic. The best thing about this website is that if you are unable to solve the problems, you can check the editorial, try to write a solution again and get it accepted and if you have solved the problem still you can check the code of other good coders to find the best solution for the same problem. In both of the way, you learn a lot.
Codechef hosts mainly three contests every month i.e. Long Challenge (10 days long), Cook-off, and Lunchtime. Codechef also hosts a global programming event Snackdown to compete with the other programmers. They provide a variety of language choices and their programmers use the discussion boards to post the problems they encounter during practice or competition. AWS, Samsung, Alibaba Cloud. these are some top companies hire candidates from this website.
Google, Amazon, Facebook, Apple the top major tech companies hire candidates from LeetCode and the list doesn’t end here. Twitter, Yahoo, Uber, Pinterest, Bank of America and a lot of product-based companies select programmers from LeetCode so you can’t deny that this website is one of the best sites for programmers to crack technical interviews, they have a huge collection of challenges for the interview preparation of these companies.
LeetCode has more than 190 challenges but you need to keep in mind that this site has more complex problems (good for experienced programmers) on various topics so its especially good for a software engineering role in the top tech companies. They have a section of articles to help you in understanding a certain problem and you can also give Mock Interviews for various companies on this website. They host coding contests every week where you can participate and set your good ranking. Their main focus is on helping people in landing up a job so if your target is the above big tech companies then visit here and take challenges on this site.
SPOJ is an online judge system (Not a competitive programming site but you can take challenges and participate similar to the other platforms) which has more than 20k coding challenges on different topics. The challenges range from simple to hard coding problems. SPOJ has a good community who provides help if you are facing issues in coding. You can start solving problems with maximum submission and follow or check the submission of good coders here. Once you solved around 50-70 problems and build some confidence, you can participate in different contests. SPOJ also has a discussion forum section on their site.
Codeforces is a Russian website which is best for competitive programmers and hosts contests more frequently. They organize 4 to 5 short contests of 2 hours in a month. Sometimes they also host contest 2-3 per week. They have a variety of language options for coding. After participating in a lot of contest you can also create your own contest and earn money through this site.
This is one of the good site for the preparation of ACM-ICPC (Olympics of programming). You can sort the question and practice problem here, you can also use its blog system to ask questions. The site has a strong and huge community for help. We recommend this site for some experienced programmers because challenges here are most likely too advanced for beginners.
“Project Euler exists to encourage, challenge, and develop the skills and enjoyment of anyone with an interest in the fascinating world of mathematics.”. This is what written on this site so you can get the idea that the site is ideal for mathematical challenging problems. So if you can take the challenges in terms of mathematics and computer programming then visit on this site to solve the problems.
You will be writing computer programs for the solution of some mathematical formulas or equations. They also have a forum specific to each question. You reach a new level after giving the solution of 25 problems. Visit the link GeeksforGeeks Project Euler to see how it works.
This website is also an Indian startup technology company that mainly focuses on competitive programming and hiring challenges. They have a community of more than 2.5M developers. The platform supports more than 35 languages for coding and like the other platform, you can practice problems on different topics (Data Structures, Algorithms, Python, Machine Learning). The site is good for people who are preparing for job interviews.
The website offers thoughtful challenges mostly good for experienced programmers. They hosts monthly coding challenges and hackathons. Their challenge Code Monk is quite popular among programmers. ThoughtWorks, Amazon, Accenture, Walmart Labs, IBM, Intuit these are some leading companies of HackerEarth.
Coderbyte is a good site for beginner and intermediate programmers. They offer more than 200 challenges in various programming languages. The site is good for job interviews and you will find the level of challenges from easy to difficult. You can ask questions on Coderbyte if you face any difficulties and more likely you will get answers from their really active community. You can match your answers from the official solution provided by them and you can also view the solution of other users. They also offer some courses for interview preparation and computer science fundamentals. Deloitte, PWC, HBO, LogMeIn these are some leading companies of Coderbyte.