If you want to hear from a expert, you can leave it right now as I am just a software developer but these steps are followed by many ex-googlers for beating competitive programming and one of them told me this.
For Starting You can follow the following steps:
- Learn Basic syntax of let us say programming language c(if,else,for,while,break ,input,output,datatypes,a
nd their range).
- Solve your first problem www.spoj.com/problems/TES
- You will learn what all you need to get a problem submitted.
- Find problems that only follow a particular formulae and solve around 20 problems.
- Now you are well aware how to get code submitted input and output.
- Now go for problems that requires optimization like www.spoj.com/problems/ARR
AYSUB/ attempt 20 of them.
- Now go for DP problems.
- You can now try reading books with algorithms like Corman for Algorithms.
- Start Reading about trees and graphs. Now leave the programming forms that don’t involve dp and tree, graphs or any other complex algorithms.
- Few Famous contest for you are : facebook hackers cup, Google CODEJAM , ACM-ICPC and few others.
- Start reading and solving Interview questions.
You dont need any book if you have internet.
These are steps one googler told me to follow but I m lazy 😛