Last week, after a work day, I bought an online course about Angular and decided to instantly dive into it. Despite it may seem easy, focusing on a course isn't always straightforward. Yes, you may come across many courses which challenge you by solving challenges with the newest knowledge you acquired, but no one really follows you as a school teacher may do instead.
If you're used to buy online courses, that says a lot about you. It also says a lot about your determination to gain new expertises and, on the other hand, I really appreciate the effort many teachers and developers put into recording entire programs, exercises to test students' skills while learning and their ability to abstract several topics in a shell.
Whether you're a student or a self-taught developer, you've definitely come across a bug you needed to solve at least once. That's why it's so important to fail, succeed, fail and fail again. The more bugs and issues you encounter (and you're able to solve), the more successful you will become in the future.
Despite the title mentions how I learnt (and still I'm learning) Angular in particular, I'd like to share a couple suggestions to help you improve your learning flow while studying a new programming language in general in the lowest time.
If you're learning through videos or courses, code along with your teacher
Expertise and knowledge comes from actually coding, not looking at others coding. It's okay to get a valuable amount of theoretic notions, but don't forget to also code along meanwhile absorbing them.
Don't misunderstand me: I'm a huge fan of theoretic and I definitely prefer knowing what the code means and how it behaves behind the scenes by studying it. But don't feel completely absorbed by the theoretic side or discouraged by looking at the amount of things you still need to learn or by listening to others saying how hard a topic is.
You are different than others, and they are different from you. Something you may find easy may be difficult for someone else. And something which may seem difficult to you may be instead easy to someone else.
Keep learning and stay focused on your path.
Pause videos and code on your own before looking at the solutions
I comprehend how you may feel hurried of learning anything of that new language at once, and how much you're already imagining yourself living your best life by having that new knowledge, or applying for that job you believe to deserve after all the effort you put into studying and learning.
But hey. Pause. Breathe. You're not done, yet. You still need to fail, fail and fail. Give yourself the chance to.
It doesn't make any sense to finish the course without writing a single line of code. Be proactive, don't be a passive learner. Put yourself into work, feel yourself being so happy to be learning that new programming language you always wanted to learn. But learn it. Don't watch others endlessly speaking without absorbing any knowledge.
Pause the video, mute that online course, close that book. Or, at least, put a bookmark on the last page you read. You need to practice and you can't do so if there's someone who gives you all the solutions for any problem you face while coding.
Just try to learn the theoretic and, if you have an assignment, don't wait for the teacher to solve it. Solve it on your own, and then compare your questions. You may feel so proud of yourself when discovering how much your beginner solution may be similar the professionist teacher one.
Join communities, and try to read a lot about that new programming language
Customize your Medium, daily.dev or whatever other reading services' feed you make use to list all the articles about the new programming language you're learning. Don't underestimate how many projects certain people already built, how many issues and bugs many people already came across and how many discoveries certain people already made about that new language. Be absorved by all the new syntax, tips and knowledge you face. That'll be a huge game changer and, not so long from now, you will be the one sharing all that knowledge to new learners. Keep it up.
Write a little personal book or take notes about it
Discover how fun is to go back in time and become a child again. Prepare a little book and write down the essential knowledge about that new programming language. Split it into sections, and fill them with major details about the syntax and the main features of the language.
As an example, think about having a page called How to declare variables in PHP or Declaring functions in Python basing on what your language is and what are you interested in remembering and learning further, and list down all the possible syntax to, respectively, declare a variable in PHP or declaring functions in Python.
If, for coincidence, you were just looking for how to declare a function in Python, this will work for you:
def calculateSolarSurface(self, someArgument):
return someArgument;
Having fun is the first argument of the learning function
It's okay to push your limits, studying and deepening anything you like. What'll make you an outstanding developer, though, is how much you're able to have fun while learning. As developers, we're creatives. Let your creativity be your fuel, but make sure to rest and solve any issue you face always with a huge smile and a lot of desire to learn and improve. And, if you fail, don't feel discouraged, since you're doing your best.
Mistakes are proof that you are trying.