How to start your coding journey
Tags: codenewbie, computerscience, programming, beginners
Published: 2022-10-21 21:06:27

> This is more of a how-I-did-it post than a how-you-should-do-it post.

I first dabbled in coding in class 11 when my curriculum added in C++. I was familiar with python before but C++ was where my real coding journey began. And it has really been a roller coaster ride ever since. From pitfalls of depression to riding the waves of confidence, coding has it all. I am now a mediocre noob after much procrastination and practice.

In this post I want to share the platforms and resources that helped me a lot on this journey!

---

## [HackerRank](https://www.hackerrank.com/)


I joined HackerRank in class 12, during the covid period and it was my first foray in competitive programming. It is very beginner friendly and it is a very good place for beginners to start with.

## [CodeChef](https://www.codechef.com/)


I next jumped to CodeChef when it was still free and really good for people to start off with. I started giving contests from here. The Long Challenges are really good for noobs as the longer duration allows people to learn the topics well and apply them to solve the questions. However with the pro plans arriving and the blatant cheating during contests made me move away from this site.

## [Codeforces](https://codeforces.com/)


Codeforces is very well known in the competitive programming world as "the" place for contests. It might seem a bit overwhelming for newcomers at first, but after solving a few problems you will be able to get the hang of it. Contests are held regularly every week. The level here is harder than codechef, so directly jumping here will be a bit difficult for you. Better take it slow, or else you will fall into spiral of despair which is hard to get out of.

## [LeetCode](https://leetcode.com/)

LeetCode needs NO introduction. It is THE interview preparation platform. The problems here focus on algorithms more with rigorous practice for data structures like linked list, stack, queue etc which is not generally seen in other programming websites. The problem classification, study plans and weekly short contests make it a really good place to hone up your coding skills.

[Neetcode](https://neetcode.io/) is a great companion website for Leetcode. It has curated problems and their solutions from Leetcode.

One other website that focuses more on algorithms is [Codewars](https://www.codewars.com/). It will really help you in improving your coding style and help you write clean and efficient programs.

[LightOJ](https://lightoj.com) is something I came across fairly recently and it has really good categorisation of problems. This is good for practicing certain topics and getting a better grasp at them.

Like every skill, only regular practice makes you improve. [CLIST](https://clist.by/) is a great place to keep track of upcoming contests. You can directly add them to your calendar from the site.

[GeeksForGeeks](https://www.geeksforgeeks.org/) and [CP-Algorithms](https://cp-algorithms.com/) are really resources. Make sure to use them! However, some topics are out of scope in these websites, so make sure to use your own discretion.

The following are famous annual contests conducted by large organizations. 

1. [Google Codejam](https://codingcompetitions.withgoogle.com/codejam/)
2. [Facebook Hackercup](https://www.facebook.com/codingcompetitions/hacker-cup)
4. [Google Hashcode](https://codingcompetitions.withgoogle.com/hashcode) [This one's an optimization contest.]

Some good youtube resources are:

1. [Errichto](https://www.youtube.com/c/Errichto)
2. [SecondThread](https://www.youtube.com/c/SecondThread)
3. [William Fiset](https://www.youtube.com/c/WilliamFiset-videos) (Graph algos)
4. [Strider](https://www.youtube.com/c/takeUforward)

---

This is an exhaustive resource dump. Do not get overwhelmed. Just refer these when you need help. Everyone's way of learning and understanding is different. Explore and try to find the suitable way that will help you the most. I will keep updating the blog post as I get older and wiser.

Happy learning!