Learning programming is like learning a language, but much easier as the only part of the language we are concerned about is writing and reading. In fact, all children learn to read faster by learning to write. The simple act of writing allows the brain to grasp concepts as well as syntax very quickly. Similarly in programming, the easiest way to learn to program is to practice writing code.
1. Pick a Language
Almost all projects require some sort of database so learning SQL is a good way of learning how to store and retrieve data from any dynamic app or website.
By the end of this stage, pick the language and have a motivation/reason for learning the language (you will need this later).
2. Learn the Syntax
There are many ways of learning the syntax. I often learn by reading example code from Github, seeing what it does and then playing with it to see what I can make from it. Modifying and improving code is a great way to learn as it is enjoyable and there is some satisfaction to extending a completed project. A more rigorous way of learning code could be to use an online learning site like Codecademy, Coursera, Udemy and although I did use this to learn, it only takes you so far into being able to actually learn the language (the next step).
By the end of this stage, know how to write simple code but also know how to read code and spot if there are any errors.
3. Practise the Language
Practising the language requires an overview of your objective with relation to the programming language and how you would want the program to be structured after you have finished. This takes a lot of time to learn and the only way to do this is by setting yourself an objective project, planning it out and then using the learnt syntax to fulfil your objective.
(Analogous to a normal language, practising a language is essentially being able to say what you intended/wanted to say.)
Note this is not in general easy but don't worry you have Google and Stack Overflow. Set yourself a project, break down the steps and fulfil each step one-by-one.
As an example, for a social network you will need to do the following:
- "Principled" Database Schematic (Easy with sufficient practice)
- Login/Register Page
- Profile Page
- Newsfeed Page
By the end of this stage, start off with a project that has in some way been made before and research into how to build it part-by-part.
In general, it is not easy to learn programming but as with everything practising while having fun is the best way to improve at anything. Treat your programming project as a fun game or an exercise and consistently try and accomplish your goal. By starting to develop your first project, although there may be times where time will feel like it has been wasted there will always be a lot of new things learnt and all the experience will serve well for all your future projects.