I started learning C++ from scratch during my first year of College. I knew nothing about programming, algorithms or data structures.N ow i am more comfortable with data structure and algorithms. What language should you choose? C++ — Highly recommended! It’s very fast. Implementing different algorithms takes little time because of STL. C++ is accepted in all competitions. I’ve been using it since my first line of code. C — Go and learn C++ because of STL. If you have knowledge of C, you are ready to code in C++ as well. JAVA — It’s slow. But it has Big Integer class, even if there are very few problems that require using it. If the time limit is tight, you will get Time limit exceeded. Java is not accepted in all competitions. Where can you practice? I recommend Sphere Online Judge (SPOJ) . It’s effective in terms of quality and quantity. Editorials and solutions are available online if you get stuck while solving problems. Supporting websites SPOJ Toolkit and Prob