Get to know Competitive Programming

By  Shweta Ravindra Kale    15 - 23 July, 20
get to know competitive programming

Share article on social media

When I joined college for my Computer Engineering degree I wondered what should I learn first. I asked my seniors and read various blogs. All of them said to learn a programming language and practice programming questions to improve competitive programming skills. So then I began my search about what competitive programming is and how to learn to code. In this article, I will tell you how can you learn coding and sites you can refer to practice and improve your coding skills. Before starting let me tell you what competitive coding is and how it helps you in your career.  

What is Competitive Programming:

These are programming questions which can be solved using either mathematical or logical concepts. These are puzzles which improve your thinking ability. To become master in this skill all you need to know is one language and practice. There are various competition held and most famous one is International Collegiate Programming Contest (ICPC).

Benefits of Competitive Programming :

Many times I have seen the argument that why to waste time on solving questions instead of working on real life projects. But according to me both are important and help equally in your career. Real life projects give you idea of what kind of work you will have in your job and Competitive Programming  help you to improve your logical thinking. While applying for job both are considered and hence you need to work on both. Competitive Programming  also helps you to develop and write different Algorithms and improve your time management skills. The competitions help you to improve your team working skills and you can analyze your strengths and weakness and work on them. Not only this if you have a good rank on different platforms then you get recognition from coders and many companies. In fact you can land a job in companies like Google, Microsoft if you regularly participate in different contest and get a good rank.

Which Language shall you learn to solve these questions: 

Most of the time there are no restrictions on language to be used and in many competitions questions can be answered in at least 5 different languages. The languages mostly used are C, C++, Java, Python, JavaScript, and Kotlin. Most of the coders use C++ as it is faster than Java and Python and the Standard Template Library(STL) available makes it easier to solve questions. Many new coders find Python better than C++ but C++ helps to improve logic. There is no such fix answer on what language should you use but I will suggest to begin with C++ or Python.

Which IDE can you use: 

IDE stands for Integrated Development Environment and its a software which you need to use to write code. There are lot of options available. Visual Studio Code, Sublime Text, Atom, and Notepad++ are few commonly used IDE. Apart from these software's you can also use an online editor. 

Where to practice: 

If you want to improve your coding skills practice is must. Now, there are different sites which you can use to practice questions. And most of these sites also conduct weekly or monthly contest which can help you to compare yourself with others as well as your past performances. Few sites are:

1. Hackerrank

This is a good website for beginners and it contains questions on different topics. Many college also conduct contest on this site during their college fest.

2. Hackerearth

Hackerearth it contains practice problems and tutorials . Many college also conduct their tests and competitive programming contests.

3. Leetcode

It is also a good website for beginners and it also conducts weekly as well as month long contest which you can participate in. This website is also good advance learner as it contains questions asked in interview by various product based companies like Google, Microsoft, Amazon, and Facebook. This is a good website to practice questions for interview.

4. Codechef:

It contains huge set of problems from beginner to advance and its really a good website to improve your skills and rank in competitive programming. It also conduct Lunchtime challenge, Cook-off  and Long Challenge. Solving questions from this website will help you to improve your understanding and Algorithm writing technique.

5. Codeforce

This is also similar to codechef and it contains questions which need some mathematical knowledge too. It also conduct contest from time to time. 

6. NoobtoDev

NoobtoDev is a new emerging platform for coders and programming enthusiasts, This platform provides the best and reliable tutorials and resources to learn competitive programming and any other technologies.

How often should you practice:

The answer for this question is different for everyone according to their schedule. But if you are a beginner then you should try to solve two questions daily and revise the new concepts you learned from solving the question on weekend. You should also participate in at least one contest in a month. At the beginning you may not be able to solve many questions it may be possible that you were not able to complete a single question. You should always keep in mind that its alright if you don't know the solution but instead during the contest you should try your best and once the contest is over many youtube channels upload the explanation you can refer that and learn the concept and try it again. Remember Practice makes man perfect.

Once you continue this schedule for 2-3 months then you will automatically fall in love with  competitive programming  and try to develop algorithm for new questions and discuss it with your friends too. The same thing happened with me too.

Hope you gained some idea about  competitive programming  after reading this article.