title: How do I learn?
url: https://snook.ca/archives/other/how-do-i-learn
hash_url: 11244da948ea7db85f66f53764ac43f5

<p>I hear this question quite a bit lately. Our industry feels like it’s expanding exponentially with new techniques and technologies. People feel overwhelmed and unsure how to ingest it all. </p>

<p>I’ve found that I have 3 phases to my learning process:</p>

<ol>
<li>Reading</li>
<li>Building</li>
<li>Writing</li>
</ol>

<h2>Reading — Superficial Learning</h2>

<p>I read a lot. I’ll click on links from Hacker News, Facebook, and Twitter. I’ll read about new techniques and new technologies and integrate those learnings into what I already know. </p>

<p>This is very superficial. With this knowledge, I can refer back to things if somebody asks about how to solve a particular problem. I couldn’t necessarily apply the approach myself yet but I have enough to know that a solution exists. That in itself can be quite useful. </p>

<h2>Building — Application and Expansion</h2>

<p>From there, when I want to learn more about a given thing, I build something with it. Most recently, I wanted to <a href="https://snook.ca/archives/other/physical-web-beacons">learn about web beacons</a> and took the time to make a beacon to see how it worked. I do this frequently. I’ll build small one-page apps to test out a concept. The exercise may take me anywhere from an hour to a week to build. </p>

<p>Building something expands my knowledge on a topic and now I can speak more authoritatively on the pros and cons of why and when you’d want to use such a technique or technology. </p>

<h2>Writing — Explore the Edges</h2>

<p>The last step is to write about it. This could be a blog post, a book, or a conference talk. When I write about a topic, I explore the edges of what I know, the edges outside of what I needed to initially implement the idea. </p>

<p>For example, it’s one thing to know that web beacons exist. It’s another thing to know how to implement them. It’s another thing to know the range and other limitations that exist. </p>

<p>In writing a <a href="https://snook.ca/archives/html_and_css/all-or-nothing">blog post about <code>all:initial</code></a>, I forced myself to test in every browser and discovered how inconsistent the implementation was. </p>

<h2>Reading, Building, Writing, Repeat</h2>

<p>It’s not necessary to go through this process for everything. You can stay at the superficial level for many things and only dive deeper when you need to, like implementing an idea on a client project. </p>

<p>Likewise, you don’t need to write about everything you work on. Writing is, for me, how I learn a topic more intimately. Not everything needs to be learned that deeply. </p>

<p>As your career develops, you’ll gain a sense of what things to explore sooner rather than later, or not to explore at all.</p>

<p>I have a list of things I’d like to explore—like progressive web apps, service workers, and web components—and when I do, I’ll go through this same process again and again. </p>
