Learning by Consumption and Creation
Date Published: 05 April 2022
After a conversation on our devBetter Discord server, I published a short twitter thread about learning. It resonated a bit and as of writing this has had over 22k impressions, so I figured I'd make an article out of it. Note that doing this is literally one of the tips in the thread, so this is slightly meta.
Have a Learning Strategy
If you're in a fast-paced industry like software development or many others, it's important to keep learning in order to keep up. It's not always required - plenty of professionals find a niche and stay in it for decades. But if that niche's market share has dwindled enough and your current role disappears, you may find it very difficult to market your particular set of skills. While I definitely support a strategy that involves focusing on a narrow set of technologies or even better, client needs, it's a good idea to evaluate how relevant your choice is from time to time. And even in most narrowly focused career paths, there is often change and learning needed to keep up with newer developments, even if it's only about how you interact with other systems or technologies, etc.
Assuming you've bought into the idea that learning is an essential part of your career, it's a good idea to have some kind of strategy for that learning. Lacking one, you may find that years go by in which you haven't really learned much, and suddenly realize you've fallen behind. A number of developers whom I've mentored have shared some variation of this story with me. It's not hard to grow complacent, which can be a career-limiting move depending on the timing (both where you are in your career and market conditions when your situation changes).
What is a learning strategy
Learning should be a habit. If you haven't read the book Atomic Habits (affiliate link) by James Clear, I recommend it. It's less about nuclear energy or warfare and more about condensing habits into their essential elements. In order to make learning a habit, you need to remove obstacles that prevent you from doing the activities that help you learn and you need to put yourself into situations where you can learn effectively.
If you ask a typical developer how they learn or how they keep up, you're likely to get a list of information sources. Some may be directly focused on education and teaching, while others serve many purposes, of which learning may be one. A few typical ones include (links to some examples):
And don't forget formal training events, boot camps, and of course college and university programs. But these tend to have a distinct start and end, the strategies above that involve continually getting information from a variety of books, videos, podcasts, etc.
But where you get your information from is really only part of the story. Another part of your strategy needs to be when and how do you make time to learn. And another needs to be how do you ensure real retention and understanding of what you learn. More on these in a moment.
Why focus on learning
Sure, for many of us, it's fun to learn about new things, new technologies. The real value of learning, though, is in the capabilities it grants us. The new classes of problems we now can solve. The tangible, career value of learning is in how we grow professionally, and how we apply that growth to bring value to our employers and/or clients.
There are at least two kinds of career value we can easily identify with regard to our learning:
- We become better able to solve problems with technology
- We are better able to market ourselves as problem solvers
The first kind of value is pretty obvious, and provided we are facing the kinds of problems we've just learned how to solve (or solve better), it's easily capitalized. The second kind of value tends to be much more often overlooked, despite its having an outsized influence on our career and earnings potential.
If you learn something, but don't apply it immediately, it's like that the learning will be largely lost fairly quickly. Our brains are good at filtering out things we don't need, and if we're not using it, we must not need it. So, it's good if we're able to quickly apply what we're learning so that we're able to retain it.
New knowledge and skills are not gold, but produce. Their shelf life is very short. Think of them as perishables, not durable commodities.
Also, if we learn something, but nobody but us knows it, then obviously it's not providing us any value in terms of helping us market ourselves.
Given these facts, two things should be obvious with regard to learning:
- New skills must be applied quickly in order to be retained
- New skills must be marketed or showcased in some manner in order to have career value
For employees, yes just demonstrating your expertise for your supervisor may be minimally sufficient. But it's definitely the bare minimum and will often be overlooked, sadly, so consider other ways of sharing as well.
There are two sides to learning: consumption and creation.
Most of us have at least a default strategy for consuming information. Most of our population's leisure time is spent consuming information and entertainment through a variety of media. You reading this right now is just the most recent example.
But far fewer of us spend any significant amount of time creating. Creation is how we develop, apply, and retain new information and skills. It's imperative, and there's not really any way around it. Think about it, would you rather have surgery performed by a surgeon who had done the procedure 1000 times, or the one who'd never done it before but had watched 1000 hours of YouTube videos related to it?
For many of us, we apply what we learn in our work. If you can do that, great! Not only is that a great way to apply your skills in a real world setting but it's also demonstrating them to your boss or stakeholders. Keep it up!
But if you're learning things that aren't immediately applicable to your current job or contract, figure out ways you can create something using these skills. And then think about how you can share it.
Note that not all creation has to be a side project or a GitHub repo. Even just posting a comment on an article you read or starting an interesting discussion about a topic you're interested in on some social media is a form of creation, and helps you better internalize and understand than if you just observed and didn't interact at all.
Sharing What We've Learned
I'm a big proponent of sharing what you've learned, even if you don't think you're an expert. And like I mentioned above, sharing knowledge doesn't have to mean writing a book, white paper, or even blog post. Find a way to share your knowledge that is attainable to you. I'd almost say "comfortable for you", but it's even better if it's just outside of your comfort zone, as that's how we grow.
Here are a few different ways you can share something you've learned, with increasing amounts of effort involved:
A few ways to share something you just learned, in order of effort required (approx):— Steve "ardalis" Smith (@ardalis) March 29, 2022
1) Tweet it or share it on Slack/Discord/etc.
2) Short blog post.
3) Newsletter email.
4) GitHub repo
5) Podcast episode.
6) YouTube screencast.
7) User group/conference talk
8) Online course
Depending on the book and course I'd put writing a book somewhere close to producing an online course.
What does producing content and sharing it do for your learning? Here are two quotes I really like that relate to this:
You will certainly better understand something once you've put effort into explaining or even just discussing it with others.
And what does it do for your career? Sharing what you're learning with others helps you to build an audience. It shows that you're someone who is both willing and able to explain technical concepts. It obviously helps others who benefit from your content, too. It's a win all around.
We talk a lot about ways to learn, ways to improve, and ways to market ourselves in my devBetter group coaching program. Membership gives you access to years of recorded coaching calls (about an hour per week, since 2018), as well as access to other resources like our private GitHub, Discord, and Stack Overflow sites.
If you're looking to improve skills and grow in your career, think about your learning strategy. Is it helping you to attain your goals? Are you both consuming and creating as part of your learning, or are you letting a lot of your consumed skills perish unused and unshared? What can you do today to start turning that around?
If you found this useful, one way you can create a bit of content is by sharing it along with your thoughts somewhere you think others might appreciate it. Keep improving!
Steve is an experienced software architect and trainer, focusing on code quality and Domain-Driven Design with .NET.