I myself am a beginner in Competitive Programming, and what I write here is solely on basis of my personal experience. Though this worked for me, but I’ll advice the readers to do what suits them the best.
⦁ First Step
Learn a Programming Language (C++, Java and Python( for small problems) are most preferred languages. Learning a language just involves knowledge of basic loops, if-else statements, arrays and strings (No STL or Data Structures involved).
Here’s the link to Hackerrank Tutorials for each of the above mentioned languages.
C++ - https://www.hackerrank.com/domains/cpp (Solve till the heading Strings)
Java - https://www.hackerrank.com/domains/java (Solve till 1-D Arrays)
Python - https://www.hackerrank.com/domains/python (Solve till String Split and Join)
⦁ Second Step
Start practising problems.
I would not suggest to jump directly into contests. Firstly practice enough problems to get friendly with CP environment. For beginners, I suggest solving the problem set available on Codechef.
beginner | CodeChef
CodeChef - A Platform for Aspiring Programmers CodeChef was created as a platform to help programmers make it big in…
Solve atleast 50 beginners level problems before moving on to easy or medium level.
The reason for choosing Codechef is, according to me, Hackerrank does have good problems, but it shows the test case details beforehand, which makes it difficult for a person to shift to Codechef/Codeforces in future. Secondly, Codeforces is too advanced for beginners.
⦁ Third Step
After solving enough problems ( atleast 100), start participating in contests. For people who feel that they want to practise contest participation even before, I will suggest go for a virtual contest on Codeforces. That way, you can get enough practise of contests participation.
But, once you solve enough problems, go for live contests. Virtual Contests can never substitute Live Contests.
I personally like Codeforces for contests, but Codechef is also good enough.
And finally, you all will face ratings drop or moments when you won't be able to solve a single problem, but that's completely okay. That's the beauty of CP, and you should just not give up.
I hope it clears all your doubts. And again, what I wrote is completely my personal experience, no facts or figures involved.