I was looking back at my experience when I really just started to learn programming and I identified some points to avoid or pay attention to. Going through these points can be helpful for someone who is just starting out.
Being Preoccupied with Practical Application
I think the trend of most available programming tutorials is about direct practical application. This is not something bad at all, unless this is done at the cost of long term understanding.
Most of the time a programming tutorial is about learning a specific programming language without spending a lot of time on some of the principals behind it. I think learning a specific programming language is actually not for beginners. A beginner should spend some time on some general principals, because their specific application (a programming language) would make more sense.
If you skip these steps or completely ignore them, it is very unlikely that you are going to develop something valuable. You need to understand programming at a deeper level by studying subjects like data structures and algorithms.
Not Working More on Smaller Projects
Another mistake that you can make is not spending enough time on smaller projects and going for the bigger ones too early. I know I was not very keen on working on smaller projects, because a smaller project doesn’t have a lot of use afterward.
However, if you do a lot of smaller projects you can get a better general understanding of programming. This is what you need to focus on in the beginning. This is tough, because it is hard to accept that it is unlikely that you are going to come up with something valuable at the beginning.
Not Optimally Using Learning Resources
Nowadays I think the supply of learning resources about programming is more than the demand. At least it looks like it. So one useful skill to have as someone trying to learn something, is the ability to identify the quality of learning resources. This way you can filter out material of lesser quality and spend time more efficiently.
Some key points to focus on when selecting learning material are:
They should be simple, because why would you over complicate things? Structured, so you will be able to find the information you need. Also comprehensive, addressing the whole subject and not leaving important aspects out.
Unbalanced Way of Learning
Another mistake to avoid is having a very unstructured and unbalanced way of learning. Putting too much time in a single study or practice session can be the cause of having an irregular learning process.
If you go on for several hours till you are bored and frustrated, you will less likely maintain a process that is regular and aimed at long term understanding. You are also more likely to quit the whole thing. I think it is smart to have some structure like a time limitation per session.
Short learning sessions that are planned regularly beat improvised and chaotic learning sessions in my experience. It is particularly these kind of learning sessions that often turn out to take more time then intended with very little results.
I pointed out some of the mistakes to avoid when you are trying to learn the valuable skill of programming.
The first mistake mentioned is the preoccupation with directly applying a programming language, while not spending enough time to get the general principles behind it.
Then I mentioned not spending enough time on the smaller projects. Working on several smaller projects can be an exercise to develop better understanding.
Also not optimally using learning resources can be a mistake. By carefully selecting learning material you can spend time more efficiently.
Lastly, I touched upon the mistake of a very unbalanced way of learning, which can be avoided by planning and structuring your learning process.