Competitive Programming
April 4, 2024 2024-04-04 14:35Competitive Programming
Beginner Guide To Start Competitive Programming

What is Competitive Programming and Why it is useful?
They are mostly algorithms and data structures based and you have to use logic to solve the hypothetical problem posed to you. Not only solve the problem but you have to arrive at a very efficient solution with good time complexity (optimum time to run the program) and space complexity (utilize optimum space).
Let's Understand why it is important–
- Having a successful professional career.
- Being provided an opportunity to work for an innovative company that builds such a product.
- Meeting the minimum hiring bar at the innovative company.
- Succeed in programming/design interviews at the company. Having the ability to solve algorithmic problems within a time limit and not be stressed.
There are many competitive programming websites which can help you out in competitive programming by not only increasing your ability to think but also make you able to derive the shortcut of doing the task in less time with more effectively.
Some of the known websites are Codeforces, Codechef, Hackerrank, GeeksforGeeks, TopCoders and many more. Do practice on this websites to be a good programmer.😀
Key points before starting the Competitve Programming 🤗
Here are some of the things to keep in your mind before going for a competitive programming:
Choose Your Language
Which language are you most comfortable in? When you are entering a Competitive programming battle, you have to select the proper language which will be accepted. For example, C++ will be accepted by most competitions and is one of the fastest languages out there.
In today’s world most of the languages are equal but C++, Java and Python are most popular.
Find your way and Do Master in your Programming Language
You may have a specific coding style. You might add more spaces, or you might add braces in the if statement. Your unique coding style defines your coding. Do not deviate from your coding style unless it’s absolutely necessary. Master your style. While developing your coding style remember to keep it —
- Easy and fast to implement.
- Easy to Read, which naturally means it would be easy to debug too.
- Well learn and explore the inbuilt libaries of your programming language to avoid them writing again, it can saves a lot of time.
Do Master in Data Strctures and Algorithims
This is the hard part. You have to go through complex data structures and algorithms and they are so many. How will you start off? The best thing to do here is to follow a hierarchical system. Start with the fundamental algorithms and then, start going deeper.
Always try to think of the most optimal solution that is one which runs with least time complexity and occupies minimum space.
Do Participate in Contests for Practice
Don’t overwork the previous day but work hard enough in the days before. Give your best in developing your programming voice.
Take participate in both long and short type contests, long are the way better to practice and learn new tricks and topic in live contests. On the other hand short contests improve your coding speed.
Stay Consistent with the Process – LEARN, PRACTICE, PARTICIPATE!
One of the most important things to remember that is often ignored by most individuals is staying consistent with the process of learning, practicing, and participating. Yes, you need to know that it is a continuous process, and to master competitive programming – you’re required to keep learning, keep practicing, and keep participating. You need to get out of your comfort zone and expand your limits. For instance, after becoming proficient with basic DSA concepts – move to advanced DSA or after having mastery in solving beginner-level problems – switch to intermediate-level and further on, expert-level problems.
Where to Start? 🤔
With so many online sites and resources it’s very natural that one will be confused. So, to make things easier I will be going through some of the most popular sites for competitive programming that you can decide yourself which one suits you the best.
- Hackerrank : HackerRank is a place where programmers from all over the world come together to solve problems in a wide range of Computer Science domains such as algorithms, machine learning, or artificial intelligence, as well as to practice different programming paradigms like functional programming.
- Codechef : CodeChef was created as a platform to help programmers make it big in the world of algorithms, computer programming and programming contests. We host three featured contests every month and give away prizes and goodies to the winners as encouragement.
- GeeksforGeeks : GeeksForGeeks is the best platform to learn Data Structures and Algorithims.
Hackerrank is best place for Beginners. If you are clear with syntax of your language, and are starting with implementing stuff/algorithms, then I suggest practice questions from both side by side, else there are “language specific tutorials” on hackerrank.
Resources 😛
Write us your valuable suggestions and feedback at : cgcassgn@gmail
