Competitive programming requires writing a computer program for a given problem within a stipulated time period. Competitive programming has applications of mathematics and science cognitive structures.
Best site for Competitive Programming
The criterion to select a site as best for competitive programming is given Table 1 below:
Based on criterion given in Table 1 following websites has been shortlisted and considered best for Competitive Programming, Table 2 gives list of Best site for Competitive Programming:
In-Details of Best Site for Competitive Programming
IT companies remain in quest to find programmers having experience in competitive programming. Competitive programming has roots in debugging skills. To develop competitive programming skills, understanding of algorithms is required.
Competitive programmers develop algorithms, implement it using programming constructs and submit it to a contest system. Developed program is tested against a set of test cases. Table 3 provides analysis of websites selected as best using Table 1.
Google Code Jam
Google Code Jam challenges programmers to solve algorithmic puzzles within a predefined time limit and difficulty paths. Annual code jam competition is held each year online having four rounds.
Each round has a predefined challenge. At the completion of four rounds 25 contestants are selected.
Google holds two more coding competitions – hash code and kick start.
hash code: hash code is team work. A team is built to solve engineering problems. Competition is programming language independent.
kick start: Newbies in coding competitions or students at learner level are invited to participate in competition. Competition is held on algorithmic puzzles.
Benefits of Code Jam:
- Certificate for one submission during the Qualification round.
- Certificates are updated automatically as the proficiency in programming skills are reflected by contestants.
This website provides past problems to practice and check its result in practice mode. Website also provides small and large practice datasets.
Sponsors of Google Code Jam:
Google India recruits directly from Google Jams or coding competitions.
The International Collegiate Programming Contest competition is for college students and is based on algorithmic programming.
Competition promotes Teamwork and challenges contestants to solve real-world problems. Teams may be developed within class and may project a team leader.
Benefits of ACM-ICPC:
- Contestants receive benefits in terms of story features on ICPC social media channels.
- Contestants receive gift cards.
Practice Session of ACM-ICPC:
ACM – ICPC provides past problems to work on. Past problem dataset is huge and provides past problems from 1974 to 2019.
Sponsor of ACM-ICPC:
Two Sigma is one of the sponsors of this code challenge.
Facebook offers two programming challenges – Facebook Hacker Cup and FB Hack.
Facebook Hacker Cup is an annual programming competition. This code challenge tests problem-solving and algorithmic coding skills.
In this code challenge contestants can participate using a variety of languages like C++, C, Haskell, Java, Perl, PHP, Python or Ruby.
Benefits of Facebook Puzzles:
- Contestants who solve one Round 2 problem successfully received a Facebook Hacker Cup t-shirt.
- 25 finalists will receive a prize range from $200 to $20,000.
Practice Session of Facebook Puzzles:
Hacker Cup home page provides access to prior competition problems for practice. This page provides practice sets ranging from 2011 to 2020.
Sponsor of Facebook Puzzles:
Google and Facebook offer jobs to finalists of Facebook Puzzles
CodeChef challenges programmers in the domain of algorithms, computer programming, and programming contests. Codechef hosts programming contents each month. CodeChef hosts discussions and training sessions. This platform also provides algorithm tutorials and forums to beginner programmers.
Benefits of CodeChef:
This platform provide following benefits:
- It has prizes worth Rupees 20,000 for Indian Community and $700 for Global Community.
- Apart from this Codechef goodies to contestants is also reserved.
Practice Session of CodeChef:
Codechef provides practice problems to train contestants for multiple challenges. Practice problems are categorized into Easy, Medium, and Hard.
Apart from this, it also provides practice challenges to attain programming skills. Codechef has mini courses to provide an overview of the topic along with drill practice sets. Each mini-course has 3 sessions that help to learn topics in an easy and quicker way.
Sponsor of CodeChef:
Top programmers of Codechef are hired by rubrik, samsung research, nutanix, rippling, sharechat, Uber, and Microsoft.
Competitive programming is based on two pillars – the design of algorithms and its implementation. Algorithms development has its foundation in problem solving and mathematical skills. Competitive programming sites such as CodeChef, Facebook Puzzles, ACM-ICPC and Google Code Jam provide rigorous training to build algorithm based problem solving and mathematical skills.
As there is no fence between algorithm design and mathematics, competitive programming websites – CodeChef, Facebook Puzzles, ACM-ICPC and Google Code Jam have practice and drill training sessions and have pedagogical courses that have learning paths and dedicated objectives.
All solutions to programming problems submitted by contestants are accepted by code analyzers of CodeChef, Facebook Puzzles, ACM-ICPC and Google Code Jam; submitted solutions are tested against a set of test cases. CodeChef, Facebook Puzzles, ACM-ICPC and Google Code Jam search for programmers that are able to write code that are short, efficient and effective.
As per content analysis C++, Python, and Java are three languages that are most used by contestants of Competitive programming. Google Code Jam in 2017 had approximately 3000 contestants out of which 80 percent of contestants used C++, 16% used Python, and only 8% used Java.
ICPC promotes teamwork and provides one computer for each team. Each team has 5 hours of working and in which nearly 10 algorithm problems have to be solved.
Other Best Site for Competitive Programming includes AtCoder, CS Academy, HackerRank, and Topcoder.
To win competitive programming it requires practice on algorithmic programming problems. CSES having link https://cses.fi/problemset/text/2433 is a site that has algorithmic problem sets.
Apart from CodeChef, Facebook Puzzles, ACM-ICPC and Google Code Jam that provide practice sets to develop algorithm and mathematical skills, books are also great sources to learn competitive programming skills. Few of the books that may be used to develop competitive skills include – Competitive Programmer’s Handbook and Guide to Competitive Programming published by Insight Book.