Best Competitive Programming Course Online [Updated in 2023]

Learn to Prepare For Online Competitive Programming Contests Like ACM ICPC, Google CodeJam, Facebook HackerCup, and many more. Learn from highly rated and recognized competitive programmers on platforms like Codechef, LeetCode and CodeForces.

4.8

60+

200+

Our students that took the course got hired at…

This is where you embark on an amazing journey!

Clear your doubts with ease

1:1 sessions over voice call & chat with our teaching assistants

Features that keep you going

A structured curriculum that makes learning easy

Weekly milestones to keep you motivated

Practice code problems of varying difficulty

Compile & run in an integrated coding environment

Industry leading mentors to help you grow

1:1 Mock interviews with resume and career guidance

Structured feedback to make you better

Get a chance to be referred to your mentors’ company

Most flexible program in the industry

Freedom to learn

Cheat days

Comprehensive placement package to make you job ready

Get access to an expert placement coach,

professional resume & portfolio services, and Hirist

spotlight benefits, with close focus on soft skills

professional resume & portfolio services, and Hirist

spotlight benefits, with close focus on soft skills

The results

11 LPA

40x

95%

"I would like to dedicate my coding journey to Coding Ninjas. I found their courses very helpful in developing my basic programming concepts."

Sudhanshu Kumar

"The course pause feature is a boon to students like me who are pretty irregular with schedules. The course structure helped me learn everything step by step."

Nishant Birla

Course updated in 2023

Course curriculum for the curious

Introduction to flowcharts, Decision making using flowcharts, Loops, Example problems

First program, Variables and data types, Taking input, How data is stored in memory, Arithmetic Operators

Introduction to If else, Relational and logical operators, Nested conditionals

While loops, Flow of execution of statements in while loop, Example problems using while loop

Introduction to patterns, Basic Patterns, Square Patterns, Triangular Patterns, Character Patterns, Reverse Triangle, Inverted patterns, Isosceles triangles

For loops, Break and Continue, increment - decrement operators

Introduction to functions, Working of function calling, Variables and its scope, Pass by value

Introduction to arrays/lists, How arrays/lists are stored in memory, Passing arrays/lists to functions

Understanding Binary Search, Selection sort, Bubble sort, Insertion sort, Merging two sorted arrays

Introduction to strings, storage of strings and theirinbuilt functions

2D lists, Storage of 2D lists, Example problems using 2D lists

Introduction to recursion, Principle of mathematical induction, Fibonacci numbers, Recursion using arrays, Recursion using strings, Recursion using 2D arrays

Order complexity analysis, Theoretical complexity analysis, Time complexity analysis of searching and recursive algorithms, Theoretical space complexity, Space complexity analysis of merge sort

Introduction to backtracking, Problems based on backtracking: Rat in the maze, Word search, and N-Queens.

Introduction to OOPS, Creating objects, Getters and setters, Constructors and related concepts, Inbuilt constructor and destructor, Example classes

Static members, Function overloading and related concepts, Abstraction, Encapsulation, Inheritance, Polymorphism, Virtual functions, Abstract classes, Exception handling

Introduction to linked list, Inserting node in linked list, Deleting node from linked list, Midpoint of linked list, Merge two sorted linked lists, merge sort of a linked list, Reversing a linked list

Introduction to stacks, Stack using arrays, Dynamic Stack class,Stack using linked list, Inbuilt stack, Queue using arrays, Dynamic queue class, Queue using linked list, Inbuilt queue

Introduction to Trees, Making a tree node class, Taking a tree as input and printing, Tree traversals, Destructor for tree node class

Introduction to Binary Trees, Taking a binary tree as input and printing, Binary Tree traversals, Diameter of binary tree

Introduction to Binary Search Trees, Searching a node in BST, BST class, Inserting and Deleting nodes in BST, Types of balanced BSTs

Introduction to Priority Queues, Ways to implement priority queues, Introduction to heaps, Introduction to Complete Binary Trees and its implementation, Insert and Delete operations in heaps, Implementing priority queues, Heap sort, Inbuilt Priority Queue

Introduction to Hashmaps, Inbuilt Hashmap, Hash functions, Collision handling, Insert and Delete operation implementation in hashmap, Load factor, Rehashing

Introduction to Tries, Making a Trie Node class, Insert, Search and Remove operation implementation in Tries, Types of Tries, Huffman Coding

Introduction to Graphs, Graph Terminology, Graph implementation, Graph Traversals (DFS and BFS), Weighted and Directed Graphs, Minimum Spanning Trees, Cycle Detection in Graphs, Kruskal's algorithm, Prim's Algorithm, Dijkstra's algorithm

ntroduction to Memoization, Introduction to Dynamic Programming, Fibonacci numbers using recursion, memoization and dynamic programming

Longest Common Subsequence (LCS) using recursion, memoization and dynamic programming, Edit distance using recursion, memoization and dynamic programming, Knapsack problem using recursion, memoization and dynamic programming

Why Competitive Programming?, How To Approach A Problem In Contest, Various Types Of Errors

Introduction to Recursion, Recursion and PMI, Fibonacci Number, Recursion and Arrays

Order Complexity Analysis, Theoretical Analysis, Linear Search time complexity, Insertion Sort time complexity, Selection Sort time complexity, Theoretical Analysis - Recursive Algorithms, Merge Sort Time complexity, Fibonacci Time Complexity Analysis, Space Complexity Analysis, Merge Sort Space Complexity Analysis, Fibonacci Space Complexity Analysis, Kadane's Algorithm

STL - Data Structures, STL - Functions, Hussain Set, Voters List, Permutation & Palindrome

Aggressive Cows, Inversion Count

Working of two-pointers and sliding window technique, Intuition behind Two Sum Problem Max sum of k consecutive elements and Longest Substring with At Most Two Distinct Characters

Introduction to Greedy Algorithms, Greedy Vs DP, Logic building for the problems like Fraction Knapsack and Activity Selection etc.

Introduction to Sorting Algorithms, working of Sorting algorithms like Merge Sort, Quick Sort Counting Sort etc and A problem based on Quickselect Algorithm

Binary Search and its implementation details, problems based on search on answer and problems based on search on input.

Generating all subsets and all Permutations using recursion and Logic building of Combination sum Problem

Introduction to Backtracking Algorithms, Recursion vs Backtracking and Logic behind popular problems like Rat in a Maze,N-Queens

All basic bitwise operators like (OR, AND, NOT, XOR, Left Shift and Right Shift) and properties of each of these operators Common operations done using these operators(like Set ith bit, Count Set Bits)

Checking whether a number is prime or not in sqrt(n) time Sieve algorithm, Segmented Sieve problem’s solution, Euclid’s algorithm, What are LDEs and how to solve them using Extended and Euclid’s algo

Modular Arithmetic Properties, How to find Modular Inverse, How to find number of solutions of LDEs and Euler’s Totient Function

Exponentiation and Modular Exponentiation Matrix Exponentiation, How to find Nth term of a recurrence relation using Matrix Exponentiation and How to find Nth term of Fibonacci Series

Non-Deterministic Primality Tests, Fermat's Theorem, Miller Rabin Test and its Deterministic Version, Wilson's Theorem and Chinese Remainder Theorem

Basics of Dynamic Programming(Introduction, Need) and Memoization vs Tabulation Method Optimization of recurrence relation (overlapping subproblem) into DP- Solution 2-dimensional DP Solution

The intuition behind problems like LCS, LIS(How to build logic), Further Optimization of Dynamic Programming Solution using Segment tree or binary search Multidimensional(3D,4D) Dp Solution Conversion of DP-State into DP-Transition and vice-versa

Algorithms based on Tree DP including Binary Lifting, Re-rooting(In-Out) DP, Algorithms based on Graph DP and Algorithms based on Digit DP

Introduction to Disjoint Set Data-Structure, need and Applications of DSU, find and Union Operation and union by Rank and Path Compression Technique

Introduction to Trees(different terminologies related to tree, need of non-linear data structure, applications), various Tree Traversal Techniques, N-ary vs Binary Tree and Concepts based on n-ary tree

Introduction to Euler’s Tour, Technique(Construction and Properties), Introduction to Mo’s algorithm, Problems based on Tree Queries like Subtree Queries and Path Queries

Introduction and Basic terminologies of Graph, DFS and BFS, Finding Path Between Two Nodes, Detecting Cycle in Graph and Topological Sorting

Minimum Spanning Trees, Kruskal Algorithm Prims Algorithm, Explaining Dijkstra Algorithm, Bellman-Ford Algorithm and Floyd Warshall Algorithm

Bipartite Graph Test, Introduction & Applications of SCC, Tarjan's Algorithm for SCC and articulation points and Bridges-what are they how to find them

Introduction to Combinatorics, revising Permutation and Combination, Combinatorics-nCr, nPr and Binomial coefficient etc

Catalan Number, Inclusion-exclusion, PigeonHole Principle and Application of Combinatorics Technique

Introduction to Computational Geometry, Distance of a Point from a Line,Collinear Points, Intersection of Two line segment and Circle line intersection

Area of Polygon, Convex Hull- Algorithm & Applications

Game theory-game states, Nim game and Sprague-Grundy theorem

Strings Data Structure and their huge, Importance in CP Pattern Matching basics, Rabin-Karp Algorithm, Longest Prefix Suffix explanation and KMP & Z-Algorithm

Manchester Algorithm and Introduction to Suffix Array, LCP Array

Introduction to Trie Data Structure, Search, Insert & Deletion using Trie and Applications of Trie Data Structure

Introduction to Range Query Data Structure Segment Tree i) Explaining use case ii) Showing implementation range query, point update, range update(Lazy Propagation)

Fenwick Tree i) Explaining use case ii) Showing implementation range query, point update, range update Sqrt Decomposition i) Explanation, Implementation Mo’s Algorithm i) Online Query ii) Offline Query

Introduction to Bit Masking Its Usage(related to Dp) and Representing subsets, DP+Bitmasking Problems

Meet the faculty legends that will make you legendary

Ankush Singla

Co-Founder & Instructor

Parikh Jain

Instructor & Founding Member

Soham Mukherjee

Instructor

Shivam Bhalla

Instructor

Waqar Ahmad

Instructor

Love from our alumni

Saurabh Goel

Amazon

Software Developer

It was a fun learning experience and I got to learn each and every concept in detail. The faculty is highly skilled, experienced, and approachable. Thankful to Coding Ninjas

Vinayak Kumar

Amazon

Software Development Engineer Intern

Coding Ninjas helped me explore various opportunities when I was in doubt during my 4th semester. Ankush sir is the best mentor I've come across in my life, gradually I moved on to Web Development and Competitive Programming course which helped me sharpen my skills and achieve an offer at Amazon.

Kanika Goswami

Microsoft

Software Engineer

This can be your go-to place for coding, all the faculty members are highly experienced. The course here helped me a lot in my placement process, grateful to the team!

Chhavi Jain

Adobe

Software Engineer

The best part about this institute is its instructors. The way they all teach is really engrossing and you learn everything pretty well. The course content is nicely structured to make the learning curve smooth.

Anjali Garg

Google

Software Engineer

I enrolled in Coding Ninjas' competitive programming track which consisted of 3 courses: Introduction to C++, Data structures and Algorithms with C++ and Competitive programming. All the courses are well structured and taught by excellent instructors. Apart from this, I also loved the CodeStudio practice platform of Coding Ninjas. I would strongly recommend one to take data structures and algorithms course here at Coding Ninjas if one is aiming for big product based companies like Amazon, Facebook, Intel, Qualcomm etc.

Raghuvansh Raj

Visa

Software Engineer

While I was experiencing the course, I constantly felt my confidence with respect to solving problems grow. I think that's what matters at the end of the day, the confidence that one can solve a problem and clarity in terms of approach. Coding Ninjas helped me inculcate both into my competitive programming journey because of which I was able to bag an internship at Visa.

Samarth Sahu

Microsoft

Software Engineer

Coding ninjas journey was a very fulfilling one and I would definitely recommend it to my juniors. The lectures and practice are of very high quality and are the right amount to secure any software engineering job/internship.

Himanshi Garg

Jivox

Software Engineer

It was a wonderful journey with Coding Ninjas and learning coding from Ankush sir was such a good experience that I am never going to forget this. A teaching assistant's support is really beneficial in solving your doubts.

Still in doubt? We are here to help you out!

Frequently Asked Questions

How do I get my doubts resolved?

Which plan should I take? Basic, Standard, Pro or Premium?

Where will the classes be conducted? What are the course timings?

I have done a Coding Ninjas course before. Is there any alumni discount?

How will I benefit from Industry Mentors?

Do I need a computer science background to enrol for this course?

Is there a guarantee that I will get an Internship or job after taking this course?

Which companies hire from Coding Ninjas?

Can I do this program along with my college?

What is the approximate stipend offered in internships through Coding Ninjas placement cell after completing this course?

Can I pay using EMIs?

My exams are coming; I don’t know when my college will start due to COVID; I have lots of work at office, should I take the course or not?

My course is complete and I am unable to access all my content. What should I do?

What is competitive programming course?

Is there any free course for competitive programming?

How do I train myself for competitive programming?

Not sure about the course yet?

Try it for free first!

Try it for free first!