Once you step into the field of Computer Science, You find yourself surrounded by large number of fields that tempts you to explore them. One such field is Competitive Programming.
If you are interested in problem solving and immensely in love with mathematics, competitive programming is your thing!!!
Now the basic confusion is: Where do I start from?* Which programming language should I prefer? *How do I improve my standard and be a fluent programmer?
Well,I will be jotting down some basic key points which a newbie must follow to give a fine and smooth start to his competitive programming journey!
1. Firstly,choosing the right language for coding.
With so many languages to choose from , beginners often find it hard to pick the right one.
As my personal favourite ,I will suggest C++ ,the reason being its high speed evaluation capability, straight-forward algorithmic implementation and its vast STL(standard template Library)Features .You can also go for Java as well ,it’s good enough but C++ is more preferable.
2. Start implementing and solving questions on online judges
There are a large number of platforms like Codechef , Codeforces, AtCoder, SPOJ,Timus etc. that have variety of questions in abundance.
So is it required to solve all of them on all platforms?
No, You will mess up things if you try doing all at the same time.
Choose 2-3 of them but practice devotedly. Get started with Codeforces or Codechef and solve basic implementation and maths questions .Try to make your code clean and precise. Once you are strong in maths and implementation part,u can move on easily to the advanced level questions involving algorithms. HackerRank is also good for beginners as it has its topics in a organized manner.
Note: Do not keep solving the same type of questions .Try to increase the level and variety.
3. Get your hands dirty with data structures and algorithms
One may think why should I indulge in these sophisticated algorithms when I can also solve it using brute force?
But guys , it doesn’t work that way .For efficient coding ,data structure and algorithm fluency is a must. Firstly , read all the STL of C++ from Geeks for Geeks(most preferable). Then for algorithms , u can follow Geeks for Geeks or “cpalgorithms.com”. Both of them cover all the required algos for Competitive purpose.
4. Contest Participation
“ This question was so easy but I couldn’t solve it in the contest!! Dont know what happened with me!!.“
Ya..this happens and this is what is important for u to understand. Solving in a relaxing atmosphere and solving in a time frame..there is a hell and heaven difference. So try giving contests as much as u can and keep a track of your improvement. To be precise:
Codechef Long challenges(10 days) -Deep Thinking and implementation
Codechef LunchTime,Cookoff,Codeforces contest(All short ones with a max duration of 2.5hrs)-Fast coding,Agility and implementation.
For any SDE Interview,the first round is always a coding round of aroung 90 minutes.So learn to perform under pressure because at the end of the day,that is what will get you through.
5. Read Read Read
Reading is one of the most important things in competitive programming along with problem solving. Always read blogs, concepts, editorials and try grasping their implementation in questions.”Introduction to algorithms” by CLRS is considered the Bible for competitive programming which is book of only1292 pages .Yes it’s vast but it is one of the most important books that you should read.
Competitive programming is not a one day affair!!
It takes time to improve but students end up getting frustrated and leave it midway. Consistency, patience and practice is the key to success in Competitive Programming.
About the author
Preeti Dey is a CS Undergraduate at IIIT Bhubaneswar. She is actively involved in competitive coding and also does web development side by side. Her technical skills involve frontend framework,while she uses node js for backend purposes.She is a avid reader,with crime thriller as her personal favourite.
If You find it interesting!! we would really like to hear from you.
Ping us at Instagramemail@example.com
If you want articles on Any topics dm us on insta.
Thanks for reading!!