Competetive programming

Competitive Programming

Definition of Competitive Programming according to Wikipedia,

Competitive programming is a mind sport usually held over the Internet or a local network, involving participants trying to program according to provided specifications. — Wikipedia.

As you understand from the above definition CP [ Competitive programming] is a sports.

Any fool can write code that a computer can understand. Good programmers write code that humans can understand.” – Martin Fowler

As above line by Martin Fowler explained that Writing code so that humans will understand is more important than computers will understand.

This is what CP teaches you.

CP teaches you how to think the real-life problem and how to write code in an efficient manner so that it is understandable by computers as well as humans.

Best Website to Start Competitive Programming

Today there are many websites that host live contests and also provide free editorial for the solutions. Some of them are –

Codechef

The Codechef is an educational initiative of Directi, an Indian Software Company. Codechef focuses on building a base of novice programmers.

They host three main contests in each month

  1. Long Challenge – Duration of 10 days
  2. Lunch Time – 3 Hours
  3. Cook-Off – 3 Hours

TopCoder

Top Coder is open community of programmer, designer, and many more experts. Topcoder ran regular competitive programming challenges, known as Single Round Matches where each SRM was a timed 1.5-hour algorithm competition.

Hacker Earth

HackerEarth provides remote hiring solutions for organizations worldwide.

As they are hiring solutions, they Host many contests every day for the company. All the contests are mainly of CP.

They also provide you free study material for CP which you will find on their website.

Hacker Rank

Hacker Rank also works the same as Hacker Earth. They also provide hiring solutions for many organizations. Some of the best companies that hire from Hacker Rank are Amazon, Samsung and most importantly Microsoft.

Hacker Rank host many Competitive programming contests for the hiring of freshers or intern for the top companies.

How to prepare for Competitive Programming

Practice is the Key in CP field, But everyone needs a structured way to learn anything.

Here I am going to list some useful websites from where you can learn basics as well as the advance of CP for free.

Leetcode

The Leetcode is a website where people practice their coding skills and give a sharp finishing to their skills. Leetcode offers a Free and premium version of his website.

It has 1000+ of listed question based on diffrent variety such as Time Complexity, Backtracking, Graphs etc.

They also provide you a free practice section where you can code and submit the solution in many languages

GeeksForGeeks

Geeksforgeeks is also a well-known website for Data structure and algorithm. You will find plenty of articles related to DSA.

They provide many premium courses of CP and many more technology such as Full stack developer, iOS developer etc.

GFG also provide you a free practice section where you can code and submit the solution in many languages.

They also provide you a medium of apply Jobs to many company. They have a Jobs section where you find many jobs according to your requirement

Topics in Competitive Programming

CP is very vast in terms of topics, but you don’t need to learn each and every topics. Some Topics are very easy and some topics are very hard to understand.

Here, we divide the topics of CP in three sections

Easy CP Topics

These are some Easy CP Topics and also Base of the CP

  1. Time Complexity
  2. Space Complexity
  3. Basic Maths
  4. Permutation and Combination
  5. Linear and Binary Search
  6. o(N^2) Sorrting
  7. Array

Medium CP Topics

These are some Medium level topics which build’s base for Advance level topics

  1. Linked List
  2. Stack, Queue
  3. Modulo’s Arithmetics
  4. Number Theory
  5. Recursion

Advance CP Topics

These are some Advance level CP topics

  1. Dynamic Programming
  2. Greedy Algorithm
  3. Backtracking
  4. Tree
  5. Graph
  6. Tries

There are many more type of algorithm and DS which I am not able to cover in this article because CP is too vast.

Which Language To Choose For CP

More than 50% of coders use C++ For the CP because of STL.

If you visit any coding website and check for Submission you will find this ratio everywhere

  1. C++ more than 75%
  2. JAVA approx 15%
  3. Python and other languages approx 10%

If you are a beginner, we will only recommend using C++ for Competitive programming. Mostly users Used C++ for CP. Whenever you want to see some solution of the problem you can easily find Submission of that Problem in C++

Advantage of Competitive Programming

Many freshers and students think that Is Competitive programming is necessary and if Yes then Why?

We are going to discuss why you must start CP and practice it every day.

Brain Exercise

One of the best part of CP is that your brain gets some exercise. Whenever you try to crack a problem, you start thinking about how to solve it and give time to the problem and your brain starts working.

Your IQ will start improving when you try to solve the problem and give some good amount of time to problem.

Increase the Chance Of Selection

Many Big companies hired newcomers from the CP and the ability to crack a real-life problem. Microsoft, Amazon and even google host much Competition of CP, some of them are Codevita, Hacker Cup, etc.

Many coding websites like Codechef, HackerEarth, Hackerrank host multiple contests of hiring for big companies.

Make You Focused

Contests of CP will make you very focused. Whenever you try to solve a complicated problem and do a wrong submission one or two times you will notice that you are getting more addicted and more focused to solve that problem.

And after when you solved the problem and see the time you will be amazed that you took approx 3 hours to solve the problem without distraction. This will increase your thinking ability, Focusing, and also decrease your distraction and easily drop the question rate.

Some Book’s For Competitive Programming

So here, I am going to mention some of the books that are very useful for CP. Books are important but it does not make sense when you did not practice Challenges enough.

DSA By Narsimha Karumanchy

Narasimha Karumanchi is the founder of CareerMonk Publications and author of few books on data structures, algorithms, and design patterns.

He was a software developer who has been both interviewer and interviewee over his long career

This is a basic level book that explains every DS from Scratch and this book is best for Beginners.

CP by Steven Halim

Steven Halim is a well-known Programmer and also an ICPC Winner. This book is an excellent resource for intermediate and advanced level students only.

Introduction to Algorithms

This book is also Known as CLRS. This book is speciall for Algorithms section and most importantly DP, Greedy and Strings.

Specifically for competitive programming, I’d suggest looking at:

TopCoder offers a lot of tutorials on algorithms (especially implementation): Algorithm Tutorials.

ACM has an entire repository of practice problems for its programming competition: ACM-ICPC Archive

Resources For Competitive Programming

Also, there are many platformss where you will find courses related to CP. Here I am going to list some useful resources for CP, some are free and some are paid.

Codechef YT Channel

Codechef provides free Videos for Learning DSA and the best point is that You can find all related videos in a very sequence manner.

William Lin YT Channel

William Lin is 7 Star coder at codechef. He created his own youtube channel, where he makes editorial of contests problem and also explains many of hard topics in easiest possible way.

GeeksForGeeks CP Course

GFG is most viewed website in field of CP. They also offer many course related to DSA. They offer CP Live course at the price of Rs 11999.

In thier Live CP course they taught CP from very basic and also provide you practice set and also 24*7 support. The course price is too high but also it provide you good quality education.

You can also pay via EMI if you have credit card.

Coding Ninja’s CP Course

They also Offer CP course of the tenure of 6 Months. In this course recorded videos are available and after the videos section practice section is attached.

Recorded videos are of Parikh Jain and Ankush Singla(Co-Founders). They also provide 1 Hr max Doubt resolve time with more than 60+ Hours of content video with 15 Assignment and 50+ Live problems.

They also offer you EMI option via credit card with 0% Interest

PrepByte 125 Day’s Expert Programmer Course

Prep Byte is also emerging in field of CP. They provide 125 days of CP Course mentored by CP Experts.

Their price for CP Start’s from 8999 and goes to 7199 according to enrolled date.

They also provide Recorded videos and provide you a certificate of CP Course. Price of CP Course is not too much. They provide you the course for the lifetime.

You can get EMI Option in their Payment section

Famous Contest’s in CP

Here, I am going to list some famous CP Contest’s. Many contest’s are of World level are hosted by big organization such as Google, Facebook etc.

Facebook Hacker Cup

It is an annual international programming competition organized by Facebook. This competition was started in 2011.

This competition is completed in five-round. The Qualification Round is the first of five rounds in 2020. You can learn more about the structure of the season here. This is the biggest season yet, with triple the cash prizes and a $20,000 grand prize.

Almost 18,000 people participated, making this the largest season yet! Over 14,000 competitors qualified for Round 1 by solving at least one problem.

Google HashCode

Hash Code is a team programming competition, organized by Google, for students and professionals around the world. You pick your team and programming language and we pick an engineering problem for you to solve.

This year’s contest kicks off with an Online Qualification Round, where your team can compete from wherever you’d like, including from one of our Hash Code hubs. Top teams will then be invited to a Google office for the Final Round.

You can refer to this for update on Google hashcode

Google Code Jam

This is the longest-running competition of google. This competition is for all the programmers. This is a multi-level contest and you need to work very hard for getting in the final round which is organized in google office.

World final get the champion title and award of more than $15000

You can refer to this for update on Google CodeJam

Code jam

Google Kick Start

This is also a google contest and for the students who are new to programming. This contest is also a multilevel and questions become hard as you go to the next round.

Kick Start hosts online rounds throughout the year, giving participants the opportunity to test and grow their coding abilities while getting a sample of the programming skills needed for a technical career at Google.

ACM-ICPC

This is the most thrilling competition in field of CP. It is also treated as Olympic in CP.

The ACM-ICPC (Association for Computing Machinery – International Collegiate Programming Contest) is a multi-tier, team-based, programming competition.

In terms of prize, the top team takes home $15,000 along with the ICPC Gold medal. Three other teams getting Gold Medal are awarded $7,500.

Each Silver Medal team gets $6,000 and each Bronze Medal team is awarded $3,000. Courtesy of the UPE Computer Science Honor Society, the First Solution Award will be $1,500. For the other solved problems, The First to Solve Award will be $1,200.

Microsoft Imagine Cup

For nearly two decades, students from around the world have participated in Microsoft’s global technology competition, the Imagine Cup, to bring their unique tech solutions to life.

But the Imagine Cup is more than just a competition—you can work with friends (and make new ones!), network with professionals, gain new skills, make a difference in the world around you, and have a chance to win travel, mentorship, and cash

Conclusion:

This is all about Competitive programming. I think I shared almost each and every topic’s in detail. If you need some assistance then you can comment here or contact us by going to Contact-Us Page