DEV Community

Cover image for Roadmap for beginners  to  Competitive programming
Nishanth
Nishanth

Posted on

Roadmap for beginners to Competitive programming

What is Competitive Programming?

It's basically a mind-sport where you are given a problem and you have come up with optimized solutions for given constraints with your coding skills. This helps in building our logical thinking and analytical thinking skills and most importantly your data structure and algorithms knowledge.

Alt Text

Learn a language

1: The most preferred language used in competitive programming is C++, Java. I prefer C++ always because it is flexible, very fast. C++ has many Data structures and Algorithms built-in library which makes it easier while coding.

2: Java This language is also used widely in programming but one drawback is it is not suitable for beginner programmers because it is longer code to write and not beginner-friendly.
Alt Text

Practice basic problems from these sites.

Hackerrank

I think this will be one of the best beginner-friendly websites for practicing basic problems. here there a wide range of problems from beginner to advanced. Even we can practice in different languages C, C++, Java, Python, etc...

HackerEarth
HackerEarth is an Indian company focusing on coding problems and hiring challenges. Even this platform provides good beginner-friendly questions. Here there will monthly contest held where you can participate. this website has tutorials for all practice topics. It hosts competitions conducted by various MNC's and Colleges

I think these two websites are more enough for practicing basic questions.

Alt Text

Learn Data structure and Algorithms

Once you are done with the basics of coding and practicing it then it's time to learn Data Structure And Algorithms.
Alt Text

This is the most important thing that should be learned and practiced. Having good knowledge of Ds&Algo will make up a more optimal solution for the problem we are trying to solve.

Important Data Structures and Algorithm Topics:

* Array
* Stack
* Queue
* Linked list
* Tree's
* Graph's
* Hash table's 
* Trie's
* Dynamic Programming 
* Divide and Conquer 
* Backtracking
Enter fullscreen mode Exit fullscreen mode

Alt Text

Pratice..Practice...Pratice....

Next is completely based on your practice to be master in competitive programming."The more you practice the more you get stronger"

There are different websites you can practice competitive programming

1:Codechef
2:Codeforces
3:Topcoder
4:Sphere Online Judge

Resources.

1: Introduction To Algorithms
2: MIT OpenCourseWare
3: Cp-Algorithms

Even you can go through GeeksforGeeks for additional reference.

Everything cannot be done overnight. You have to be focused on your learning and practicing problems. Just put up your goals, time table and follow through with it. Atlast I would say three words Take it easy

Top comments (0)