Tips to Learn Programming More Effectively
Learning to program is learning how to learn

Learning how to write code is challenging. It requires a lot of time and focus to attain a certain level of mastery.
Unlike in other disciplines, technology keeps changing every day making it difficult, especially for beginners, to keep the pace. This applies not only to beginners but also to seasoned developers.
Today I’m going to provide you some great ways to learn programming that have been proven to work throughout the years. Let’s begin.
1. Don’t Try to Learn Everything
This is the biggest problem encountered by most beginners.
Trying to learn many things at a time is simply a waste of time and will make you less productive. Instead, choose something you want to learn and stay focused on it.
For example, if you want to become a Java developer you don’t need to learn C, then C++, then Java as I see many beginners doing. Instead, you can jump directly into Java and start learning the language without wasting any time. Later on, you can pick a framework of your choice to work more professionally after mastering the basics of the language. As you advance professionally with the right foundation you will now be able to quickly adapt with new tools which will make your job even easier.
In addition, you have to dig more deeply into anything you are learning (this can be a programming language or a technology). The ability to persist when things get boring is what makes you a real developer.
2. Focus on making things work
Many developers, especially inexperienced ones, focus so much on learning the tools that they forget their original purpose in learning it.
Look at it this way: “A mechanic will not waste his time learning how to handle a spanner instead he will focus on untying the bolt”. What I’m trying to say is this: focus on building something.
For example, if you’re trying to learn a framework like ReactJS, your goal should be to create your first page or get started with a small project. This is effective because it helps you to learn exactly what you need in order to make it work.
Moreover, learning with little projects at hand keeps you motivated. Fix goals for your projects or specific concepts within a reasonable time frame and reward yourself after the achievement. For example, you can say to yourself: if I succeed to complete this project next Friday I’ll visit X restaurant. It need not be big reward. On the other hand, if you fail, don’t get discouraged — just keep in mind that success and failure are part of the journey and they’re not permanent.
3. Adopt a Learning Strategy
There are many different ways of learning and this varies between individuals. What works for me might probably not work for you — so finding the right way for you is important.
It took me some time in order to figure out what works for me. I used to sit down and blow through a textbook for about three hours then take another five hours to follow a YouTube tutorial. Even though I managed to grasp a few pieces, I believe that it was not effective because the productivity was low.
After figuring this out I realized I had to keep a balance between conceptual and active learning.
When I talk of conceptual learning this is basically the usual form which consists of sitting back reading a book or watching a video. On the other hand, active learning is practicing what you have learned. For example, opening your editor to start writing code. Balancing these two forms of learning is very important because if you’re 100% conceptual learning you will surely run the risk of not being able to open a code editor to apply what you’ve learned. And the reverse is also true: going to a code editor without knowing the basic syntax and concepts will slow down your learning.
As a beginner you can keep a ratio of 2:1 — that is after every two hours of conceptual learning an hour of active learning should follow. Later you can keep a ratio of 2:2. Depending on where you are in your career try to balance this in order to lie on the sweet spot.
4. The Pomodoro Technique
I learned this technique from my mentor a few years ago and it has greatly shaped my way of learning and not just as a developer. This is simply a time management system that encourages people to work with the time they have — rather than against it.
Using this method, you break your workday into 25-minute chunks separated by five-minute breaks. These intervals are referred to as “pomodoros”. After about four pomodoros, you take a longer break of about 15 to 20 minutes.
When you know you only have 25 minutes to make as much progress on a task this makes you manage time more effectively leading to better results and also a great experience. Applying this to your programming session will help you a lot. For example, you can take an 8 hours course on Object-oriented programming and split it using the Pomodoro technique in a 2 days interval instead of learning everything at once.
5. Teaching or Re-explaining Concept
This is another great way of learning, whenever you learn something new try to re-explain it to your peers, better still you can teach yourself. That sounds funny right!? But for sure — it works.
Alternatively, you can write a blog post about it and explain what you just learned in detail or share your knowledge in a social forum.
This definitely works well and is one of my favorites. When you have to formulate an idea you learn much more.
6. Keep Track of What You Learn Including Your Doubt
There’s no way you can read a book and memorize everything without any question or doubt. As a programmer, you often encounter repetitive tasks. Keeping track of what you are learning makes it easy to quickly refer to it later when a similar task is at hand and goes a long way to increasing productivity.
Tracking your learning is like documenting all that you’ve learned, including your code, and with time you will use this documentation as the building blocks of other projects making you more effective and productive. This requires a level of self-discipline which I think every programmer should have. On the other hand, you should conductive intensive research into your doubts and any questions you encounter while learning.
7. Avoid These Three Things
- Perfection: As a beginner, seeking perfection will be of no advantage to you. You will probably end up procrastinating or stagnating instead of progressing. Seeking perfection makes things more complex than they are. Don’t wait for the right context, time and solution to do anything — just do it.
- Comparison: This is one of the most demoralizing things to avoid in your journey to learn programming. The fact that some of your peers might appear to be talented programmers doesn’t necessarily mean they have prior experience or are not investing time and effort as you do. Focus on improving yourself and don’t be too shy or proud to learn from others.
- Complexity: Learn how to break problems into smaller problems to conquer them easily. Say you are trying to build a website like Udemy, where individuals can take courses online. The first thing you might like to build after analyzing the problem would be a Sign-up/Login page instead of trying to do everything at once. Another thing you to bear in mind is that there’s no perfect code — so avoid over-engineering things and move forward. First, make it work, then make it right, and finally make it fast. “Simplicity is the ultimate sophistication,” said Leonardo Da Vinci.
8. Rest and Recovery
You’ve decided to step out of your comfort zone to learn to program. Yes, that’s great, because many people are afraid to do so, but have you thought about…your health? Surely not!
In the past, I have noticed that most programmers often sacrifice their precious time, including their health, in order to achieve mastery or complete a project on time. I’ve even heard people saying things like “a programmer is an organism that turns pizza and coffee into code”, which really hurts me. But the truth is you can play the game without deviating from the purpose of life.
Our health is the foundation of how we can build our time and wealth. If you sacrifice health in order to become successful, then for me that’s a waste of time and energy.
When you begin to deprive yourself of sleeping normally, start eating junk food, and stop exercising regularly, this not only increases your stress level but it’s also proven to decrease your IQ and get you demotivated. That’s why I prefer to study hard when it’s time to study and also rest well and relax with friends and family when it’s time to do so. This helps to keep a life-work balance (Note: It’s not a work-life balance as society has made you believe — your life comes first!)