Competitive-Programming-Learning-Path

The thing that is unique about this document is that this will contain everything required for competitive programming. People generally have confusion about where to start. We are completely self learned. So, we know where students generally face issues during beginning. This document will cover every topics required in competitive programming. We only assume that you know basic mathematics. The things will eventually get easy as you will move forward in your learning journey. People generally says everything is available on the web for free. Obviously, this is true. But, you need to know form where to learn. We will fulfill that gap through this document. Just follow the instructions step by step. We will also solve lot of good problems. We will also provide you some books at last, in case you want to delve deep.


Is this document for you?

Are you interested in problem solving or coding or competitions or mathematics? If your answer is yes, get ready to be “CodeZoned​”. Make sure to contribute on our Github repository. You can at least star our document or make your first pull request through our repository. If you are senior, experienced in competitive programming, we urge you to help younger budding programmers by contributing to this document. You can also send your suggestions directly to us anytime.


Disclaimer


All the documents, books, courses and links provided in this document are freely available on the web. We are just helping people find them easily.


Introduction


  • What is Competitive Programming?
  • List of Programming Contests.
  • Which programming language is best? See Google Code Jam stats here. Let me tell you, C++ is the best language for competitive programming. Stick with it. JAVA is also good. Some people say language has no effect on code. This depends on person to person.
  • Advantages of C++ in competitive programming: See the topic Python v/s C in the “LinksPDF.pdf” file in our repository.
  • Learn C++ from Bucky of The Boston School. Solve basic problems on Codeabbey. Now if you have completed this step. Solve some more problems on Project Euler, not all. Now you are ready to go.

Programming Techniques


Time Complexity


Sorting and Searching


Data Structures


Dynamic Programming

  • Highly recommended watch (1 and 2) and read .
  • Intution (read all parts).
  • Longest increasing subsequence problem (watch).
  • Paths on a grid problem (watch).
  • Knapsack Problem (watch this or this)
  • Subset sum problem (watch)
  • Watch this full playlist by Geeksforgeeks.

Graph Algorithms


Algorithms Design Topics


Tree Algorithms


Mathematics


Advanced Graph Algorithms

App developed by Me

https://play.google.com/store/apps/details?id=com.algomaster.app

Cpp Books (to be added more)

https://github.com/inductor69/Cpp-Books/blob/master/cp1.pdf