How To Learn Programming | Noobs Friendly

Introduction:

This is mostly a guide for high schoolers or someone who wants to ace their job interviews. I’m not going to show you how to build your first game, website etc (because I personally never did it, and I lack a lot of knowledge there). The programming problems I did were the ones on Codeforces. They are also reffered to as “competetive programming problems”- you need to come up with an efficient enough algorithm and then implement it in your language of choice. Some examples are solving Sudoku grid or maybe finding the shortest way to get from one city to the other.

How to start?

  1. learn a language. I recommend Cpp - fast, simple, usefull libraries and lots of material on how to learn it. Learn just the basics( arrays, strings, logical operators, loops…), and you will build on top of them

You don’t have to be a master cpp to start solving problems on Codeforces. Since all problems are rated you can start with the easiest, they usually require problem solving ( coming up with a way to implement what you learned) and simple conditional statements.

Since all of the problems already have their solutions, if you get stuck you can just look for editorials online.

  1. PRACTICE, that’s all , just practice and participate in competitions, and you will surely climb the ladder.

Now how to practice : Solve problems slightly above your level - those that aren’t easy for you but you can usually solve them. If you are stuck for 20-30 minutes, read an editorial and make sure you understand it. Implement a solution and if you struggled then go read other people’s codes to see how to do it easier. BUT if you have ideas, you’re not stuck, maybe they aren’t the best and prolly won’t work, just go along with them, and modify and adapt.

When you come across a new topic, read it on google or your book (I can’t recommend any sources other than youtube, because most of my sources are in Serbian). Once you understand that topic, don’t just go on to another ( all the work you did will be useless if you don’t practice problems), instead go and do around do some problems. For small topics 4-7 is enough, for bigger like dynamic programming you’re looking at 20+ (a lot more).

  1. Compete and get your rank— It’s what keeps it all competetive, the rankings. And it’s an easy way to find out wheter or not you’re progressing. Im currently a candidate master so I thought I could share my experience and the way I’m learning programming.

TIP- While this is excellent way of learning data structures, algorithms, improving problem solving skills etc, that’s all you will know. The mistake I made is not having any project, even trying to make a tetris or a really simple portfolio website is fine, just keep having projects.

Extra award for the best - sometimes, there are competitions that provide full schollarships for colleges around the world - the most recent one : https://codeforces.c…log/entry/93039 , https://codeforces.c…log/entry/93311

Happy learning!

5 Likes