This is a blog post meant to many people who have ever tried to start competitive programming, but didn’t found where to go ahead and left in midway. And also to those who wonder where to start from. Getting high-ranks in Codechef/TopCoder/Codeforces competitions isn’t an overnight success. It takes a lot of time and effort and there aren’t any shortcuts (as far as I know). But the good thing is, it is a lot of fun (seriously, when you get better, it is much more fun than computer games) and anyone can do this.
I am too not a expert in this, but I would recommend the following things according to my experiences :
- Choose a programming language you are going to use in all the competitions. I would say the best choice is C++, because of its speed, available data structures / algorithms in STL library and because all the competitions support it.
- Get some theoretical knowledge of algorithms. Book “Introduction to Algorithms”, written by Cormen, is considered Bible on this topic. It contains pretty much all the algorithms, math and data structures you need to know for programming competitions.
Further before starting, I would like you to read these links :
How-do-i-start-coding-at-compet itive-sites-like-codechef-or-t opcoder
Secondly I have this amazing file to share with you, it covers almost all topics of programming with sample questions in competitive programming :
http://researchweb.iiit.ac.in/~shivam.khandelwal/ProgrammingCampSyllabus.pdf (alt link)
Now its time to start, you have all the tools with you.. 😀
But yeah “golden words”, if you can’t solve any any problem ever, don’t get demotivated. Try as much as you can.
You would be able to solve, if not read it’s editorial and try again..!! Even reading editorial don’t give you hint, read other solutions and try to generate thinking ability to solve that question. Now code and get yourself AC.
Whatever you choose, do write solution yourself at end, each way you would learn something, but skipping question would give you nothing..!
Other important links:
All the best..
Happy programming.. 😀
Do you have anything more to add ?
Add by replying in comments section, so everyone get benefited.. 🙂
(Any other help/guidance needed, don’t forget to ask your question)