It's basically a mind-sport where you are given a problem and you have come up with optimized solutions for given constraints with your coding skills. This helps in building our logical thinking and analytical thinking skills and most importantly your data structure and algorithms knowledge.
1: The most preferred language used in competitive programming is C++, Java. I prefer C++ always because it is flexible, very fast. C++ has many Data structures and Algorithms built-in library which makes it easier while coding.
I think this will be one of the best beginner-friendly websites for practicing basic problems. here there a wide range of problems from beginner to advanced. Even we can practice in different languages C, C++, Java, Python, etc...
HackerEarth is an Indian company focusing on coding problems and hiring challenges. Even this platform provides good beginner-friendly questions. Here there will monthly contest held where you can participate. this website has tutorials for all practice topics. It hosts competitions conducted by various MNC's and Colleges
I think these two websites are more enough for practicing basic questions.
This is the most important thing that should be learned and practiced. Having good knowledge of Ds&Algo will make up a more optimal solution for the problem we are trying to solve.
* Array * Stack * Queue * Linked list * Tree's * Graph's * Hash table's * Trie's * Dynamic Programming * Divide and Conquer * Backtracking
Next is completely based on your practice to be master in competitive programming."The more you practice the more you get stronger"
There are different websites you can practice competitive programming
Even you can go through GeeksforGeeks for additional reference.
Everything cannot be done overnight. You have to be focused on your learning and practicing problems. Just put up your goals, time table and follow through with it. Atlast I would say three words Take it easy