The Learning Funnel
By: Przemek Smyrdek
Tags: Programming, Self Organization, Learning, Knowledge Sharing, Time Management

Such a ‘layered learning funnel’ can be used by developers to manage the topics they learn about, invest time into them and interact with. The key point about this funnel is that it adds the next dimension to our thinking about learning and growing as a software developer, by introducing this concept of level of involvement.

As it turns out, noticing the difference between the order of things to learn and the level of involvement, gives us a useful model for approaching every new concept, without the need to limit your expertise to areas you’re most familiar with.

To see how all of this works, let me explain the rules of this model.

It’s All About Layers

The concept I want to show you today consists of multiple layers (buckets) for everything that is (or may be) related to your growth: books, courses, talks, conferences, studies, papers, docs, frameworks, languages, etc.

Layers in the upper part of the learning funnel may contain multiple topics you just “collect” —in order to stay aware of how things work these days, or keep abreast the next big thing for your peers working in different areas of software development (languages you know less about, frameworks you didn’t have a chance to work with, etc.). Layers in the lower part require more effort, but they help you build your expertise and market value.

The most important thing about all these layers is that the deeper you go, the smaller the number of topics you bring with you (because there are a limited number of hours per day), but your level of involvement has to increase (because this is the place to focus and work deeply).

Let’s go through each layer of this funnel to see how it works.

Awareness

This is the bucket for all kinds of activities for people interested in the world of software development — no matter what language, technology, or framework is being mentioned. The awareness layer is about attending conferences, talking to people at meetups, following social media profiles or just briefly reading some docs only to stay aware of everything that happens around you. Relatively low level of involvement, but a wide range of topics to cover.

Interest

There are some topics in the previous layer that may look especially interesting for you. For example, at one conference you listen to the talk about this brand new framework you have to check or maybe someone mentions this great language that BigCo uses daily, and you decide it’s worth spending some time on it. You filter out some of the topics from the Awareness layer only to briefly check how does this new tool looks from your own perspective.

Comparison

The Comparison layer contains all of the topics that fight really hard for your attention and which are promising in real life. This is where you compare shiny new toys with tools you use to build stuff every day. This is the time to think about their weaknesses, bad parts, the context in which they need to work and the value that this specific framework, language or technology brings to the table. This is the layer that ends our dry analysis of a given subject, because everything that comes next is mostly about practical application.

Evaluation

It’s time to check how your topic of choice works in reality. For example, you can create a repository for a demo project where you test this newly discovered practice or framework. You may introduce it in one of your pet projects, or even build an MVP based on it. The key thing is that at this stage the risk of introducing this brand new tool should be relatively low — all in all, you’re only evaluating it without making any final decisions.

Action

Everything that lands in the Action layer can be immediately propagated to your portfolio, LinkedIn profile or your summary of expertise. The Action bucket is a place where we keep languages, techniques, and practices that help us build stable, reliable solutions in which risk is minimized. Topics we put in this bucket are never a waste of time. They’re directly related to our daily job, the projects we work on and the reasons we get paid.

Advocacy

The Advocacy layer is totally optional for most programmers, but the value it brings forces me to include it among others.

So what’s inside it?

Well, from time to time we discover something from these “actionable” buckets that makes us so excited that we can’t wait to share it with our colleagues or the community. We start promoting it on the web, we talk about it at conferences, or we record a video explaining the basics of it. In some companies, we’d be called “evangelists” of this specific topic. Activities from this layer are often very time-consuming but the return of investment from them can pay off in a meaningful way (building a personal brand, meeting experts and sharing knowledge with them, or even building a foundation for everything that comes next for you).

Show Me How It Works

My learning funnel, as a front-end developer working mostly with Angular projects, looks like this: