Getting Started With Competitive Programming

Divya Jain
Techiepedia
Published in
4 min readAug 28, 2020

Competitive Programming is a sport. The only way to excel is practice!

I have heard a question especially from Tier-3 college students that how can I get placement in FAANG , the answer to all those questions is competitive programming. A good profile on Competitive Programming platforms can fetch you referrals which can help you in accomplishing your dream. And yes, Competitive Programming is not the only way to get placement in FAANG.

What is Competitive Programming?

Competitive Programming is like a sport where sport programmers have to find answers to various algorithmic questions using Data Structures and Algorithms.The aim of competitive programming is to write source code of computer programs which are able to solve given problems. It helps to develop the “art of thinking” which makes you a good programmer. It not only enhance your programming skills but also enhance your problem solving skills, patience level, debugging skills and logical thinking. Once you get started, then there is no comeback.

How to get started?

The only things you need to get started, is to know the basics of some programming language like C, C++, Java or Python and knowledge of some basic data structures like array.

Remember you don’t need to be a master of programming language or DSA to get started.

I have seen many people getting confused about which language to choose. Most programmers choose C++ due to it’s built-in-library STL and it’s fast speed.

Which platform to choose?

There are many platforms for competitive programming and choosing the right one gives a severe headache. Each has it’s own feature. But in my opinion, start with Codechef long challenges and once you are comfortable with beginner level problems, move to Codeforces. Codechef long challenge is a 10 day long challenge held very month where 7–8 problems are given and each problem has 100 points. Believe me, once you start doing it, you will wait every month for the challenge to come. Codeforces organize short contests every 2–3 times a week where problems are sorted according to the difficulty level of the problem.

Don’t wait for the right time to give contests, start giving them even if you are not able to solve a single problem. After the contest, look at the editorials and the solutions of other programmers. Upsolve the problem and analyze the complexity. Don’t worry if you are not able to understand the technical terms. You will get acquainted with all these, once you get started.

Some points worth remembering…

It’s completely fine, if you are not able to solve problem in one go. Keep practicing!
  • One thing I want to make note of is Don’t get demotivated by looking at the ranklist and you are not able to solve a single problem, it’s just practice. Believe me, the only way to improve is Practice.
  • Don’t run behind ratings. I know everybody want to be a good rated coder but your main aim should be knowledge. Don’t indulge in cheating to become a good-rated coder. Say no to Plagiarism!
  • Competitive Programming is sport. Play it honestly! If you are copying other people’s code without understanding, you are cheating yourself.
  • Maintain consistency. Code daily and the results will be outstanding!
  • If you find any technical term that you are not able to understand, just google search it.
  • If you are stuck somewhere, ask for help! Everybody is ready to help you, just ask them.
  • Grow your network, make friends with other coders and discuss logics and complexity with them.
  • Remember, there will be some days on which you will not be able to solve a single question or will be stuck somewhere. Don’t worry, everyone face this, Just take a break and start again.
  • Competitive Programming is not the only way to get placed in product-based companies, there are plenty of other ways too, so if you don’t enjoy doing competitive programming, you can do many other things like App Development, Web Development or open-source contribution.

The biggest mistake programmers make is probably getting discouraged and not practicing enough. Or practicing only on problems they feel they’re good at.
– Derek Kisman, aka SnapDragon

Resources

www.codechef.com

www.codeforces.com

www.geeksforgeeks.org

Introduction to Algorithms by Thomas H. Cormen, Charles E. Leiserson, Ronald L. Rivest, and Clifford Stein.

Cracking the Coding Interview by Gayle Laakmann McDowell

I could have mentioned a detail list of resources but that would not do any good. So just focus on these. You can learn Data Structures and Algorithms from GeeksForGeeks, it’s one of the best site for programmers.

--

--