View Feed
group-icon
Coffee Room
Discuss anything here - everything that you wish to discuss with fellow engineers.
12774 Members
Join this group to post and comment.
jigneshdgreat
jigneshdgreat • Jan 26, 2012

How to start learning for competitive programming?

I am interested in solving coding problems like the ones on codechef, acm icpc. But I find I am approaching it the wrong way. All I know is basic c++ that I learned in sem1. So it takes me a lot of time solving those algorithmic problems. Perhaps I should first study algorithms and data structures? I should focus more on standard library in c++? I am little confused, so would be grateful if anyone suggest me how I should start for competitive programming.Also how can i code better in c++, using its advanced features.
simplycoder
simplycoder • Jan 28, 2012
You need to build in basic understanding first before going for any advance concepts.
If you dont have good foundation, you would stumble on this when you try to solve them.
Dont be in a hurry to get good and be prepared to invest atleast 6 months before you can solve problems on forums with an ease.

You can plan something similar.
1)Learn a language so that atleast you can know basic concepts and this includes file handling.
2)Write many small programs where in you print primes till 1000000 or similar. Start maintaining a library of your own where in you would easily find them and use them.
3)Learn data-structures and algorithms start with stacks,queues,Linkedlists.. and so on.. donot underestimate their powers.
4)Focus on algorithms.
5)Try to use templates from std C.
6)Practice a lot.

Above schedule should require dedicated efforts and time period any where from 6 months to a year.
Once you have done this, all is left is practice.
jigneshdgreat
jigneshdgreat • Jan 28, 2012
simplycoder
You need to build in basic understanding first before going for any advance concepts.
If you dont have good foundation, you would stumble on this when you try to solve them.
Dont be in a hurry to get good and be prepared to invest atleast 6 months before you can solve problems on forums with an ease.

You can plan something similar.
1)Learn a language so that atleast you can know basic concepts and this includes file handling.
2)Write many small programs where in you print primes till 1000000 or similar. Start maintaining a library of your own where in you would easily find them and use them.
3)Learn data-structures and algorithms start with stacks,queues,Linkedlists.. and so on.. donot underestimate their powers.
4)Focus on algorithms.
5)Try to use templates from std C.
6)Practice a lot.

Above schedule should require dedicated efforts and time period any where from 6 months to a year.
Once you have done this, all is left is practice.
What about maths? Is any special mathematical knowledge required?
simplycoder
simplycoder • Jan 28, 2012
Maths is an integral part of CS.
But there is nothing fancy or special maths required.
You can begin with Recurrence relations and Asymptotic analysis.
You can also start with Graph Theory.

You can find plenty of sources online. You can also refer to my blog. It has introduction to asymptotic analysis.
jigneshdgreat
jigneshdgreat • Jan 28, 2012
simplycoder
Maths is an integral part of CS.
But there is nothing fancy or special maths required.
You can begin with Recurrence relations and Asymptotic analysis.
You can also start with Graph Theory.

You can find plenty of sources online. You can also refer to my blog. It has introduction to asymptotic analysis.
thanks ..u guys r so helpful

Share this content on your social channels -