Learning a Programming Language

Here I'm going to expose what I believe is an optimal way to learn any programming language for beginner-intermediate profiles.

So picture this example:  from school you have some few experience with C++ and you want to become at some point proficient with Java, but you have 0 idea on it. How can you do that?

Some people would take a book about Java and they will do with it. But for the rest of us is not like this. We start with a lot of motivation, but at the end of the day, at chapter 3-4 we quit. WHY? Because who wants to spend the day reading a goddamn book about Java, you want to develop apps or games! So maybe you need something more practical.

1.- CodeCamp (https://www.freecodecamp.org/). It's a platform where you can learn the basics of several programming languages. So you go here and you learn in a practical way about Java.

2.- After one whole afternoon in CodeCamp you should move to CodeWars ( https://www.codewars.com/). Codewars is another platform full of practical programming exercises. Exercises are divided in katas from 8 to 1 (being 8 the easier level). Here is where you are going to start programming. Once you finish an exercise you will see other people solutions. Codewars is one of the best tool you can find, believe me. Very important this webpage (https://stackoverflow.com/), Stackoverflow is the bible of any programmer, it does not matter how dumb is your question, you are going to find an answer there.

 

3.- You need some weeks for reaching a 4-3 kyu level. At this point you have a nice insight in the programming language, although I'm sure you have several flows in many points. You should continue practicing and NOW you get a goddamn book, you learn good practices, and you understand from simple to more difficult characteristics of the language.

4.- At this point you need some real practice, you need to build something, so your platflorm is GitHub (https://github.com/), go there and register, find a nice project that suits you and practice a lot!