Tech-Eva



STARTING WITH COMPETITIVE PROGRAMMING



Key Things Required in Competitive Programming:

1. Choosing a comfortable programming language and learning its syntax. It can be any C, C++, Java, Python or any other programming language. Beginners may use Python. But, C, C++ and Java are the fastest programming languages and are also allowed for coding challenges and interviews.

2. Learning the Fundamentals of Data Structures and algorithms and also the concept of Space and Time Complexity. There can be many solutions for a single problem, but the best solution is the one which takes minimum time and space to get the output.

DSA, being the heart of Competitive Programming, cannot be ignored. Various topics like Arrays, Linked Lists, Stacks, Queues, Trees, Graphs, Sorting, Searching, Recursion, Dynamic Programming, along with different types of algorithms, should be known. Knowing to use them at the correct position gives us the optimal solution.

3. Regular Participation in contests is Necessary. There are several platforms where regular contests are held like Codechef, Codeforces, Hackerrank, HackerEarth, Leetcode, Spoj, Encoder etc. Participation is Necessary as it will give the knowledge of different new topics and also the experience of a fight with different programmers of the world. One thing to remember is that rating is just a number, and it may decrease at first, but constant practise and motivation will make the person more reliable and better.

4. Being Patient for Gradual Improvement in Solving Problems is the key. There r many who were stuck on one problem for more than a day, and they left CP in a week. Impatience because of not getting the "Correct Answer" mark is the primary factor why people leave Competitive Programming.

Conclusion

Once you Start Programming, you develop the "Art of Thinking" by breaking your code into smaller chunks and then using your logic-based creativity to solve a problem from different angles. It needs a lot of patience, and so not giving up or not getting discouraged on getting wrong answers in the key to success. Try it for days, weeks, months but do not give up. One should read the solution only when he/she is sure that they have made enough attempts and now can't do anything for the problem.


And lastly, IMPROVEMENT WON'T COME IN A SINGLE DAY, BUT ONLY IF PRACTISED DAILY CONSISTENTLY.

Source/reference(if any):internet