You're about to find out what are the important tips that I am implementing when I am trying to learn programming languages. Most of the tips that I will mention are the things I wish I knew earlier or somebody taught me. But those are painful lessons that I've gone through in order to become better.
I've compiled below some tips that will surely help you to become better at your craft and learn more effectively.
9 Tips for Learning Programming Language Effectively
1) Know Your Why
Asking yourself why you need to learn that programming language/tools are very important. Without, why you will lose inspiration along the process because you don't know why you are trying to learn that particular that. Base on my bad experience, when I am curious about particular tools I try to learn it without knowing what is the benefit of it. Only a few days have passed, I already forgot why I even started in the first place.
Some of the Why's that are really effective for me are just testing this new tools, I want to build something cool using this tools, I want to expand my knowledge, I want to experiment and see what's the difference of this in the things that I already know. It will save you a lot of time and it will surely give you the motivation to continue even if you encounter struggle along the way.
2) Know Your Learning Style
Learning style is a very person to person. So knowing how you learn best will surely give you a faster way to learn. Some style such as reading book or documentation, watching video tutorials, listening to podcast, looking for a mentor. For me, my style is watching video tutorials in the start followed by reading blogs, documentation, and listening to a podcast for something this that I might miss. Watching the video is my first start.
I find it really effective because the person explaining the video already understand what he was trying to say. I mostly avoid those videos that more that an hour length, because I always got sleepy when I try to watch it and it's so damn boring. What I always looking is those series that are in a chunk that only specific concept and topics are being explained. In this way, I have the time to practice and apply what I've learned immediately while it is still fresh on my mind. When I'm done with the video series I follow-up with the documentation or read blogs to see what others people are a better way to do it.
The best video tutorials that I've used before is with Bucky Robert of the TheNewBoston. He explains the concept really well. Most of the series is in chunk so you will not be overwhelmed with the content.
I am a lazy reader of the documentation so I was using it just for reference when I already know the concepts and theories.
So try to know what's will work for you.
3) Schedule Your Learning Session
Scheduling your learning session will give you routinely to continue the momentum of learning. At least 1-2 hours a day a schedule to learn that language will surely help you to keep moving. Learning doesn't happen overnight. If you try to learn everything at one go, the knowledge will not keep much because learning happens in a repetition.
Creating a schedule and committing to it will help your brain to start even though you don't feel like doing it. In my experience when I don't have a schedule I tend to procrastinate and thinking that I could do it tomorrow the result is the motivation to continue slowly fading.
So try to create a schedule when you want to learn and make sure you commit to it.
4) Go Back to Fundamentals
Going back to basic is the best part of the process no matter what your skill level. In programming languages/tools there is always a fundamental that we need to grasp to get into advance. Like basic syntax, conditional statement, looping, etc. Different programming languages have a different style on how they do it but once you really understand it you just need to know how it is being implemented in the current programming language you want to know.
Don't try to go immediately in advance because you will feel a lot of resistance there. Because of the advanced stuff always just a mix of different basic. As the idioms say "We must learn to walk before we can run".
5) Connect What You Already Know
When you try to learn new things, there is always a point that the particular topic or concept is really similar to what you already know. By knowing those things that you already know you could just scan it and you could move forward to the other part of the programming language. When you already know the basic of programming like looping, variables, conditional statement, you could already apply it.
6) Practice What You Learned
Gaining knowledge is just one part of the process. You could watch videos or read all of the documentation but without practice, it will be useless. We need to apply and repeat so that we could reach a point where we don't need to look for the documentation or video tutorials. I love the feeling when I could code continuously without so much interruption because I've forgotten on how to do a particular thing. Practise helps you to make it become second nature.
7) Create a Simple Project
Creating a simple project will force you to apply what you've learned. It is like removing the training wheels in your bike. It will help you to think beyond the videos and tutorials because you will meet several problems that are not being mentioned in the documentation. I wish I have learned this earlier in my career because I find it really useful to build something base on what you've learned. One execution is better than thousands theory so learn to build awesome things.
8) Join Community and Ask Question
Joining community is like you are having several mentors because most of the time people already experience the problem that you have. It is a really good channel as well if you got stuck in seem an unsolvable problem. Just make sure you've done some first research on your problem because most of the people find it really annoying when you just want an answer without googling. At least show them that you've tried your best to solve and done some first research but still stuck in the problem.
9) Share Your Knowledge
Helping people will surely help your self as well because it will help you to reinforce what you've learned. At first, I have doubt with this because I don't want to share my knowledge with people because I've worked hard on it. But I realized when I teach what I've learned it helps me to simplify my words so that they could understand. It helps as well to boost my confidence because I am saving time to people so that they don't need to learn everything from scratch.
**Bonus: Enjoy the Learning Process
A lot of people always forget about this. Learning is a process so, be patient in ourselves because most of the time we try to add pressure and we become too hard just to learn things. Base on excerpt letter of Albert Einstein to his son.
That is the way to learn the most, that when you are doing something with such enjoyment that you don’t notice that the time passes. I am sometimes so wrapped up in my work that I forget about the noon meal. . . .
I find it really true because most of the time when I just enjoy what I am trying to learn and not worrying about what other's people are thinking. It makes the time so fast because you are in the zone.
To summarise my tips: Know you're why, know your learning style, schedule your learning session, go back to fundamentals, connect what you already know, create a simple project, join the community and ask a question, share your knowledge and enjoy the learning process. Those are tips are not only for learning programming languages it could be anything you want to learn. Just pick something from me that you could use along your journey to becoming better.
The next time you will try to learn something, think about the tips that I've mentioned to make your learning habit better.
Let me know If I miss something really important or you have additional tips on how to learn programming languages effectively.
What tips and strategy you've in your mind that you find really useful to become a programmer and developer? Let me know in the comment down below.