Things that we will discuss here
- Why you should listen to me?
- What is Competitive Programming?
- Why you should do Competitive Programming?
- How should you do Competitive Programming?
- Where to Learn, Practice, and Compete?
- Summary.
Why you should listen to me?
Because, I have the first-hand experience of entering into the world of Competitive Programming without any guidance, struggled a lot in learning and now I am comfortable in Competitive Programming.
Because, I am failing a lot to be a yellow - orange programmer ( Currently I am green @Codeforces and purple @Codechef ) and I know the reason for this and trying to fix it.
Because, I received all my Internships (@Trimble Inc.) and Full-Time Placement (@Gameskraft) because of my College Curriculum and Competitive Programming Skills from where I learned and practiced most of the Discrete Maths, Data Structure, and Algorithms, Operating systems, Database, etc. This says that I know the path to be taken to get a good placement and learn anything which you want and be great wherever you be.
I hope that these many "Because" motivates you to read the further, if not then also do give a read so that you can get some great insights from my good and bad experiences with Competitive Programming. Let's now talk about competitive programming
What is Competitive Programming?
- It is a mind sport held over the internet or local network where contestants solve the problems/puzzles given to them by the host-based on provided specification and on fixed time duration. For more please read this Wikipedia page.
Why you should do Competitive Programming?
- It teaches you how to think logically, come to the right conclusion and execute your logic properly in the given time frame.
- It helps your brain to develop its creative problem-solving potential.
- It can help you to get a job in your dream organization.
- It will teach you how to think and learn new things on your own.
- And all this will make you feel proud of yourself.
How you should do Competitive Programming?
Now let's discuss that how you can become a good competitive programmer.
Step 1: Learn any programming language (C++ Preferred)
Step 2: Understand and implement basic Data Structure & Algorithms.
Step 3: Learn some basic Number Theory
Step 4: Solve problems from some online platforms.
Step 5: Participate in the contest
Step 6: Learn a new concept
Step 7: Repeat Step 4 to Step 6
So in competitive programming focus, consistency and repetition are the key requirements for you to be good, there are no short-cuts.
Where to Learn, Practice and Compete?
If you are a beginner or knows the basics
- Learn fundamentals of Design and Analysis of Algorithms from Sadagopan Sir's Lecture.
- Practice all the problems at CSES and learn all the concepts that are required from CP-Algorithms.
- This is the best problem set to learn and have fun with problem-solving without getting lost in the ocean of problems.
- Solving all the problems without searching for tutorials over the internet, the best way to develop your brain's creativity in problem-solving.
- In parallel, you can compete at AtCoder Contest.
Once you complete the CSES problem and are very much comfortable with the contest.
- Participate in any contest which interests you and keep on practicing from your chosen platform.
- Some of the platforms which are recommended to you are
- Use anyone for practice and you can compete in as many as you wish.
Summary
In this post, I tried to unwind the world of competitive programming to you in the simplest possible way. I mentioned the things which are just sufficient to get you the best outcomes without getting overwhelmed by the information available on the Internet regarding Competitive Programming.
In my next post, I will share with you resources and information about the Competitive Programming Contest like ACM ICPC, Google Kickstart, CodeJam, Facebook HackerCup, etc.
If you want to know something more or have any queries feel free to comment.
Thank you for reading. Regards
Praveen Kumar Rana
Tags:
CP