Learning never ends. You can be a student, work on a regular job or you can be an invisible remote developer, you can have an employer or you can be self-employed, no matter what you do, there is always one common thing : you have to improve yourself every day. Some people think, they just have to finish the university, get a job, work from 9 am to 5 pm and never have to learn again. They did what they had to do and they can sit in their chairs and enjoy their lives and there’s nothing left to do. Actually they are men and women who lie to themselves. There are no jobs that last forever, no programming frameworks that exist forever and there is no knowledge that guarantees you will have the same job in the upcoming ten, five or even one year(s).
How to learn: the wrong way
I know a guy who did not even think he have to learn English. He has learned to program in Delphi and he has been programming in Delphi for about 20 years. It is 2017 and he is still programming in Delphi. Last year, he decided to get a new job. As he have never allocated time to learn something new, he had no choice at all: he found only one employer who wanted a Delphi developer in the whole town. Finally he was able to get the new job, but the same time the job market was closed for him. And he still has not started to learn new technologies in an industry when every new technology is going to be obsolete in about one or two years.
Allocate time for learning
I believe there is only one solution: every single programmer is responsible for his or her self-development. You are the only person who has to take care about increasing your knowledge and you are the only person who has to prepare for your future projects or jobs. There are nobody else in the world who will learn the new technologies and the new programming languages instead of you.
Maybe your are a lucky guy. A great employer invests into your career and helps you to improve your skill set, but most of the people have to take care about their learning path and have to find a way to improve. Sometimes your are even more lucky and your employer lets you to learn in several percent of your working time. It is great.
But most of the employers will do not even think about that. In that case, you still can try to allocate some time for learning: you just have to create a learning path, figure out good reasons why it is good for your company if you learn them and talk with your manager about it. I am sure, if you have prepared yourself well and you can prove that the company will have benefits of investing in your learning, you won: you will get your time to learn.
And what is the worst case? The worst case is if you are not allowed to use your working time to learn. In that case you have to allocate your private time to do that: You can wake up one hour earlier or you can go to sleep one our later, it does not matter: only one thing matters: you have to improve. Actually I also recommend to do the same even if you can learn in your working time. If you improve more today, you will be more valuable tommorow.
Find your learning sources
There are several methods to learn something new. There are blogs, tutorials, video courses, online courses or books. You can also hire somebody to teach you a technology or a framework. I recommend you to try out all of them and find the best method that suits you.
My case is simple: I cannot read a whole book from the first page to the last one. I cannot watch a whole video course and do nothing. I rather create a small project and I learn by doing.
Learning by doing
My learning method contains 3 steps:
- Set a goal: Figure out a new project that I will be built with the chosen technology/framework/language.
- Try to find a mentor
- Collect the learning sources: Collect a list of getting started tutorials, reference books, Pluralsight courses.
- Learn by doing: Start to implement a project. If I need some information I already have a collection of learning materials at hand. I do not have to search.
Extra tips on learning
I also have some rules about learning new things:
- Avoid to use StackOverflow
- If I use StackOverflow, I never just copy-paste the solution. Check the reference and try out in a demo project. I never copy paste a code that I do not understand.
- Really try to find a mentor. I cannot say it enough.
- Create your learning plan.
- Use Trello, KanbanFlow or any other ticketing system and your progress will be visible.
You can be a visible or an invisible programmer, it does not matter. You have to develop yourself. Pluralsight has a great slogan about that: ‘Smarter than yesterday’. You do not have to learn Chinese one night; you just have to increase yourself every day. Just create a learning plan, broke the whole plan into smaller steps and learn everything that you want, step by step.