Coding Ninja has raised its bars to yet another course, we’ll be launching Eminence the online competitive programming course from 1st October. Registrations are open, the early bird discount lasts till 20th September. Grab it now!
Why is Competitive programming important? Competitive programming is one of the hottest topics right now. It not just helps build your skill set for your future internships/jobs but it will also help you in creating efficient programs, appreciate algorithms and build proficiency in a language.
If you are thinking that spending hours on algorithms and techniques which you might never use in real life programming is worth it, then think again. Competitive programming will enhance your skills to an adept level. If you need self-assessment and motivation, this is the best platforms to start with. It will provide a competitive environment for your neat codes, and who doesn’t like competition?
Once you start spending time on algorithms, programming and advanced concepts will come easily to you. When you’ll code intensively, you won’t take a lot of time grasping new concepts in future. Competitive programming will bring a solid base of computer science knowledge which will reap you great benefits in future and learning a new concept will come to you relatively easier.
By continually moving to cover what companies require in an engineering talent, Coding Ninjas intends to create an environment where students feel confident what they learn. It is very excited to announce the newest online course, Eminence which will help hone programming skills. A number of algorithms including complete search, divide/reduce/transform and conquer, greedy, dynamic programming will be covered in detail. Programming language libraries will also be covered. Besides this, domain specific techniques like graph, mathematics related and computational geometry will be taught. Other topics include number theory, advanced data structures and bitmasking. For complete topic wise class breakup, refer to lecture breakdown here.
The course instructors will be Ankush Singla, a code enthusiast from IIT Delhi and Stanford, and Parikh Jain the “ninja” of competitive coding from DTU.
If you’re wondering how to be an ace programmer, then one of the best ways to do so is through competitive programming. Topcoder, Hackerearth, SPOJ, etc all must ring a bell, these are sites that provide high-quality problems to you that are a little difficult to crack. Competitive programming needs a slightly different approach than regular programming.
How is competitive programming different from normal programming?
I got this excerpt from a popular Quora answer which could answer it best:
Answer for: How is competitive programming different from normal programming?
This basically tells us that in developmental programming, we need to write an efficient code. However, competitive programming requires a code which “just works” with the given conditions.
So, what exactly do you need to “kill the lion” in 2 minutes?
- You need to know the basics of a language, pick any, C++ or Java, whichever you’re comfortable with.
- Pick an online judge. Some popular ones are: topcoder, SPOJ, codechef and hackerearth.
- Start with simple problems such as Div 2, 250
- Practice these problems thoroughly such that you earn around 240 points a day.
Sounds easy? Well, for those of you who have tried a hand at it must know that TERMS like TLE(Time limit exceed), MLE(memory level exceed) and WA(Wrong answer) are so good at giving NIGHTMARES!
How to be a Ninja Competitive programmer?
To gain crazy ninja skills at competitive programming, one needs to have a grasp of a few specific topics.
Topics mostly covered in contests are:
- Graph algorithms: Breadth first search (BFS), Depth first search(DFS), Strongly connected components (SCC), Dijkstra, Floyd-Warshall, Minimum spanning tree(MST), and Topological sort.
- Dynamic programming: Standard dynamic programming problems such as Rod Cutting, Knapsack, Matrix chain multiplication, etc
- Number theory: Modular arithmetic, Fermat’s theorem, Chinese remainder theorem(CRT), Euclidean method for GCD, Logarithmic Exponentiation, Sieve of Eratosthenes, and Euler’s totient function
- Greedy: Standard problems such as Activity selection
- Search techniques: Binary search, Ternary search, and Meet in the middle
- Data structures (Advanced): Trie, Segment trees, Fenwick tree or Binary indexed tree(BIT)
- Game theory: Basic principles of Nim game, Grundy numbers, and Sprague-Grundy theorem
Our newest online course Eminence indulges in all of these so-called tricky topics just so that can ace that programming contest in just three months. Eminence will be taken up by Ankush Singla who has a Bachelor’s degree in CS from IIT Delhi and Masters in Computer Science from Stanford University; and Parikh Jain, the “ninja” of competitive coding who holds a degree in CS from Delhi Technological University (DTU). Register now to book yourself a seat in a course that will brush up your competitive skills to a whole new level.