Best free online resources to learn competitive programming I am quite proficient in C++ and Java and want to learn competitive programming to participate in contests like Google codejam and other online contests held on sites like CodeChef and Codeforces. I would like to get information about any free resources including websites and courses to learn the "sport". Book suggestions are also welcome.

Please suggest some courses which have some practical work included and not just flat theory. I want to work on my problem solving skills rather than just learning algorithms and data structures.
Practice Algorithmic Thinking

If there's one thing I believe programmers need to master, it's the process of dissecting a problem statement and planning their approach.

By this, I mean having the ability to approach an unseen challenge and think about what is being asked. 

If I were you, I'd look at challenges posted around this website, ranging from trivial to difficult, and take the time to plan how you would solve the problem. That way, you'll be able to have a hands on experience with problem solving. 

Once you do this enough, start placing time restrictions on your thinking time. Because I know from personal experience that competitive programming is most often timed. Once you have got that nailed, you should be ready for competitions. 

In summary: practice. Y'all need to walk before y'all can run. I hope to see you as an active contributor around here!