Last Update: 27.11.2017. By Jens in Developers Life | Learning
I published in a recent newsletter how I learn. Today, it’s moving from the secret labs to the open space.
Some time ago I wrote about the 3 most common learning mistakes developers make. Today, I’d like to share how I learn new technology.
In my early days, pre-internet, it was a mix of following book instructions and dabbling around with the computer. But that’s not effective, and it gladly changed over time and got way better. But how do I do it now?
The first and most important thing is, I need a reason to learn it. A compelling reason. It sounds so simple, but often people forget it, me too. Unfortunately, when I do not have a reason, I struggle, it’s not fast and productive anymore, or I procrastinate until I have no interest in it anymore.
The reason can be so simple like curiosity or so complex like building a whole working project with it. It just must be compelling for me.
The second thing is, I reduce the scope a lot. For example, I never say I want to learn, e.g., Javascript and then absorb every aspect of the language before I feel I am ready. No, I usually build one of my standard sample applications with it and only learn those aspects I need to solve that task. My sample applications change over time, like an address book manager to a blog to at the moment a comment store. However, what all of them have in common are 1. I know the domain problem, 2. they cover all basic CRUD operations, 3. they are simple.
After I decided which sample app to build and thus the scope, I start collecting resources for accomplishing that task. In case of a new language, I usually start with the basic syntax, what the purpose of the language is and move to file input/output, DB access and such things. It depends on my reason and goal.
In the next step, I start creating my sample application and learn by doing. Which is a cycle of reading, applying what I read, reflecting it, refactoring my code and some playtime. Also, I move from back to front with the create and retrieve part of CRUD first. When I’ve finished the sample app, I start building my actual project; most of the time I have an application in mind I want to build with X.
When I am done so far, I start to write an article about it, mostly for my own understanding. If I can explain it, I have understood it. If I can’t explain a particular thing, I revise it until I can. However, not all of those go public.
I hope you can take a few things out of it and progress with your own learning style.
How do you learn?