How I learn

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?

Want content like this in your inbox each workday? No BS, spam or tricks... just useful content:

I understand and agree to the privacy policy