I believe that when someone asks “Where do I start if I want to learn programming?”, the answer must be given to this specific question, with the emphasis on the word “start”. But not to the much broader question like “how to learn programming”. They seem similar, but require very different answers.
If you’re thinking about starting learning programming, you probably don’t really know yet whether you’ll like it or not.
It’s also likely that you haven’t decided yet what exactly you’d like to do when you know how to code. Probably, right now you want to do everything: to create websites, web applications, mobile apps, video games, etc.
So, obviously, it’s not the moment when you should decide what specific path in programming is best for you. It’s just too early.
Even the programming language is not very important at this point. Hence, don’t worry if you feel like you don’t know how to make the right choice among dozens of programming languages yet.
Instead, I recommend you to focus on the following two steps. They can be completed in just several hours.
Step #1. Learn what programming is in general
Whether you have some prior technical background or not, whether you have some understanding of what programming is or not, — it’s always a good idea to start at this step.
If you don’t know what programming is, then the reason to do this is obvious.
But even if you know what programming is, it’s still possible and often quite likely that your understanding of this question is not complete enough.
Anyway, in order to understand what programming is in general you don’t need to read some thick book. You even don’t need to read a thin one.
All you do need to do is to watch this excellent 1-hour-long YouTube video by David Malan of Harvard University. This is a lecture from the course CS50 at Harvard — probably, the best introductory programming course ever made.
If you expect it to be a typical long boring lecture, then don’t. It is so dynamic and exciting that it’s not only very informative, but also really entertaining.
Step #2. Play with Scratch
If you watched the video from the previous step, you already know what Scratch is. It is a tool used by David Malan to illustrate the basics of programming in the video I recommended before.
Having seen how it works in that lecture, you should definitely try Scratch yourself. It is completely free and easy to use.
Even though it might look like some simple game, Scratch is a programming language. It will be fun, but actually, while playing with Scratch, you will be creating your first real programs.
Yes, some hour ago you might even haven’t known what programming is, and now you’re writing your own programs. How awesome is that, right?
Since it’s always important to get first results as quickly as possible when you try learning something new, these two steps are, probably, the shortest and the most direct answer to the question from the title of this article.
What to do next
If after these two steps you want to get to the next level of learning programming, see also the article 5 Main Stages of Learning Programming.