How do you keep your software development knowledge up-to-date as new languages, libraries, and platforms are released? The amount of information out there can be overwhelming. Whether you’re just out of a Bootcamp, switching technologies, or just trying to keep up, it can feel impossible to find the time to learn.
In this talk, Josh Justice shares an approach to learning that he stumbled upon in the process of making two major technology career shifts within three years. It’s a way to avoid mistakes that may be hindering your learning, make the flow of information manageable, solidify your skills, and feel motivated all along the way. Everyone’s background and life circumstances are different, but this talk will offer tools and ideas that you can apply in a way that works for you.
Resources
- Sustainable Learning slides on SlideShare
- Making Badass Developers by Kathy Sierra
- Perceptual Learning == More Ruby Experts? by Stefanni Brasil
- Optimize for Learning
- Notion
- Obsidian
- Logseq
- “Kent Beck’s Paint Drip People” by Bob Marshall
- Exercism
- GitHub Wikis
[00:00] (bright music)
[00:04] - All right, so I'm Josh.
[00:05] If you haven't met me yet,
[00:07] been at Test Double for about four months now.
[00:09] And I'm going to be sharing a talk that I've given before
[00:11] called Sustainable Learning.
[00:15] So bit about my story from the background.
[00:17] I'd been a developer for about 10 years
[00:20] at one point when this story begins.
[00:22] And I went through a job change
[00:24] where I had to switch programming languages
[00:26] and get up to speed very quickly on a new language
[00:28] I hadn't worked in before.
[00:30] Then a few years after that I switched from backend
[00:32] to front-end development, and again,
[00:34] I had to get up to speed very quickly.
[00:36] There's a lot of learning
[00:38] in a very compressed period of time.
[00:39] I wonder if any of you can identify in this industry
[00:42] with a need for rapid learning.
[00:45] Some of you maybe have gotten
[00:47] into the programming recently.
[00:49] Maybe you're picking up a new language
[00:50] or framework for work,
[00:52] or maybe you're just keeping up with new features
[00:54] and new versions of libraries and frameworks
[00:57] and platforms and browsers
[00:58] and just keeping up with the latest.
[01:00] There's always more to learn in our industry.
[01:02] And so the question is how do you keep learning
[01:04] without getting exhausted?
[01:06] Maybe you aren't and you're getting exhausted
[01:08] by me describing this right now.
[01:10] I know I am.
[01:11] So I have some things to share on this, some ideas,
[01:14] but first I want to start with a caveat.
[01:15] We all have different wirings.
[01:17] I was talking about this with another Double agent recently.
[01:20] So I'm going to share the experiences,
[01:22] the approaches that have worked and helped for me.
[01:24] And they may be exactly the opposite of what works for you.
[01:27] I'm not a professional brain scientist
[01:29] or anything like that, or even a hobby brain scientist.
[01:32] So, but I hope this prompts ideas.
[01:35] So certainly if something that I share doesn't seem
[01:37] like it applies to you, go with that.
[01:39] Like, trust your instincts on that,
[01:41] but maybe it'll prompt some ideas and some thoughts.
[01:44] Find out what works for you and then tell me and others,
[01:46] and share it around.
[01:48] So as I look back over the years that I've been working
[01:51] in consulting and think about what has worked for me
[01:53] for learning, I've seen a pattern and I've started
[01:58] referring to it as cyclical learning.
[01:59] And I want to share what that is.
[02:01] This is not something that I've designed from the start.
[02:03] This is something that I look back on what evolved
[02:06] and came about as I was going through this process
[02:08] of repeatedly learning technical things.
[02:10] And this is the steps that I saw myself
[02:12] going through repeatedly, cyclically.
[02:14] And so there's a lot, and so we're going to talk through
[02:16] one at a time to explain what I mean.
[02:19] First observe.
[02:20] So this is the first step that I come to go through.
[02:22] And I define observe to mean get as much exposure
[02:25] to others' code as you can.
[02:27] This is a great way to learn new technical knowledge
[02:30] as a foundation.
[02:31] Some of my ideas about this initially came
[02:33] from a talk by Kathy Sierra.
[02:35] Many in the Ruby community may be familiar with her.
[02:37] She was very influential.
[02:39] The talk is called "Making Badass Developers."
[02:41] It was from 2015.
[02:42] Then at RubyConf just two years ago,
[02:45] a talk called "Perceptual Learning Equals More Ruby Experts"
[02:48] was given and it referenced Kathy's talk
[02:51] as well as some later things about this learning.
[02:53] But a key very simplified version of one part
[02:56] of these talks, I'd recommend watching them in entirety,
[02:58] they're great, but one part of it is just observing,
[03:01] just getting exposure to examples,
[03:03] especially good examples is really helpful
[03:06] for learning and for growth.
[03:09] So places that you can observe to make yourself available
[03:11] to get this knowledge: online communities, social media,
[03:14] maybe some social media more than others these days.
[03:17] Chat forums are all great ways to learn.
[03:19] Live communities like meetups and conferences,
[03:22] in person or virtual depending on how things are going
[03:24] at that time.
[03:25] Articles, books, videos, podcasts, code reviews.
[03:28] This is one that folks can tend to miss,
[03:30] but on client projects and at work,
[03:33] when you're doing code reviews, you can learn,
[03:36] you can learn from how someone's approached something,
[03:38] if they're more experienced than you
[03:40] or more experienced with the technology,
[03:42] or even if they've just taken a different approach.
[03:43] Even if you kind of feel like there are weaknesses there,
[03:46] by observing it and thinking about it,
[03:48] like, you're getting more data,
[03:50] you're getting more options to consider.
[03:52] Pair programming and mob or ensemble programming
[03:55] is another great opportunity to observe.
[03:57] A coworker of mine that I used to work with,
[04:00] and I'll share out the link to this blog post,
[04:01] used a phrase "optimize for learning."
[04:03] He got the advice,
[04:04] "Choose a job where you optimize for learning."
[04:07] And I really feel like Test Double is a place like that.
[04:09] It's a place that I'm learning all the time
[04:11] and others are doing the same.
[04:13] So observing is the first step.
[04:14] Get this raw material, this data about approaches to code.
[04:18] Second, capture, and by capture I mean record things
[04:21] of potential interest to investigate later.
[04:24] This was really transformational for me
[04:26] when I ran across the tool to help me start to do this
[04:29] because it helped me to decouple "I've heard about it"
[04:32] from "I'm looking into it."
[04:34] So this allows for the ebb and flow of your schedule.
[04:36] You can hear on Slack or somewhere about a new idea,
[04:39] library or book or something, and you don't have to decide,
[04:42] "I'm going to look into it now or I'm going to forget about it,"
[04:45] or have it constantly running in your head,
[04:47] "I should get back to that thing."
[04:49] You can file it somewhere where it's captured
[04:51] that you can get back to it when you have time
[04:53] or when the need arises.
[04:54] It allows for filtering later to decide later
[04:57] if you do or don't want to look into it.
[04:59] And it allows for cyclically revisiting things repeatedly
[05:02] when you want to reinforce them or check in multiple times.
[05:06] So some ways to capture, there's different categories
[05:08] of information to capture: taking notes,
[05:11] saving links to websites, to a reading list,
[05:13] and keeping a personal to-do list,
[05:15] which seems not quite related, but I'll explain
[05:17] why I think this is essential to consider here.
[05:20] First, taking notes.
[05:21] So here's some of the attributes that I found, for me,
[05:24] are essential attributes of a note-taking system.
[05:27] And I do use digital notes almost exclusively.
[05:30] Some folks really swear by paper notes,
[05:32] and there's different parts of the brain
[05:34] that get exercise and things about focus.
[05:36] So this is not me saying don't use paper notes.
[05:38] I'm just sharing where I'm coming from and what I found
[05:40] is helpful on the digital side.
[05:42] Number one, low friction to create a node.
[05:45] You don't have to think about filing,
[05:47] you can just start recording something.
[05:48] Second, it's successful everywhere.
[05:49] Work computer, personal computer, phone,
[05:51] as long as the client or a company doesn't have restrictions
[05:55] on data being shared in some way.
[05:57] But it's easy to get to in whatever your context you're in,
[06:00] 'cause you might hear something in one context
[06:02] that maybe apply more in another one.
[06:04] Full text search, you don't know if you've titled that note
[06:08] in something that's easy to get back to or tags.
[06:10] And so if you just mentioned something in passing,
[06:12] you want to be able to find it again so you don't lose it.
[06:15] Syntax highlighting support,
[06:16] I often have code snippet examples,
[06:18] so that's pretty important to make sure that's something
[06:20] that I want put code samples in there instead of feeling
[06:22] like it's messy to put it in.
[06:25] So note-taking app options.
[06:27] A lot of folks that I talk to
[06:28] have a lot of thoughts on this.
[06:30] if you're not taking notes currently,
[06:31] even something as simple as the notes app built into the OS
[06:34] for your computer OS, your phone OS could be good enough.
[06:38] Notion is really popular these days,
[06:39] has a lot of powerful features.
[06:41] Obsidian maybe a bit more targeted
[06:43] towards individual note-taking, really, really great.
[06:45] Obsidian is what I'm using for note-taking currently.
[06:48] Logseq is an open source product
[06:50] that has a lot of the benefits of Obsidian.
[06:52] Or if you have something else that works, that's all great,
[06:54] but these are some options to consider.
[06:56] If you're not consistently note-taking,
[06:57] you find that you're in a system that doesn't facilitate
[07:00] the kind of attributes that I was talking about.
[07:02] Second, saving links to a reading list.
[07:05] So what qualifies as a reading list?
[07:07] I think these features are essential for this kind of tool
[07:09] in the workflow that I'm describing.
[07:11] It needs to have an unread or read feature
[07:14] so you know what you've looked at already.
[07:16] It needs to be accessible everywhere.
[07:17] Again, work computer, personal computer, phone.
[07:20] If you need more boundaries to keep you
[07:21] from being overwhelmed, that's fine too.
[07:23] Like for me, this fits into the flow of my life
[07:25] to have access to these things,
[07:26] to pull 'em up at appropriate times.
[07:28] Ideally, it has tagging-by categories
[07:30] so you can group things and find them.
[07:32] Some things that I would say personally don't work
[07:35] as reading lists include browser tabs.
[07:38] They're not permanent enough.
[07:39] Maybe your computer is very stable
[07:41] and you haven't rebooted in three years.
[07:42] Mine crashes and I lose my browser tabs,
[07:45] and sometimes that's good to just let them go.
[07:47] But if I want to capture something,
[07:49] it needs to be somewhere more permanent.
[07:51] Browser bookmarks I think don't qualify as well
[07:53] 'cause there's not an unread or a read feature.
[07:55] There needs to be a very low-friction way to just record,
[07:58] like, "Oh yeah, I haven't yet checked this out,
[07:59] I want to make sure to get to it."
[08:01] I've already read it,
[08:03] and it's now it's available for future reference.
[08:04] So some software you might consider,
[08:05] your web browser of choice may have a reading list feature,
[08:08] that's becoming more built-in now.
[08:10] Pocket is the tool that first got me into this approach.
[08:13] It's by Mozilla, and it's a great way to capture links,
[08:16] and integrates with links sharing
[08:18] from all kinds of different places.
[08:19] So yeah, I recommend that as an option.
[08:23] So personal to-do list as a way to capture information.
[08:26] How does this relate?
[08:27] This is not really related technically
[08:29] to technical learning.
[08:31] I think keeping a personal to-do list is essential,
[08:33] and this is just great professional advice
[08:35] because it helps you ensure you don't forget things
[08:38] you need to do.
[08:39] You don't have to just keep them in your head.
[08:40] It helps you do one thing at a time.
[08:42] You don't have to keep remembering the four things
[08:44] you need to do today 'cause you have 'em on your to-do list.
[08:47] It gives you mental space to look up,
[08:48] to take a breath and say, "Oh, is it time for me
[08:51] to learn something, to go a bit deeper and brush up
[08:54] on my knowledge in between the tasks that I have assigned?"
[08:57] And it helps you fit in learning in that way.
[08:59] So if you're not using a personal to-do list
[09:01] for your daily tasks and work, I think,
[09:04] I mean, people are wired differently,
[09:05] but I think it's worth trying to see if it frees up
[09:07] some mental space so that you can not just be trying
[09:10] to make sure you get the things done that you have to,
[09:13] but you have time for learning.
[09:15] So there's a million different to-do apps.
[09:17] That's the joke, even in the Rails community in particular.
[09:19] Any one of them is fine to get started.
[09:21] So just check out one and, you know,
[09:24] once you get into the habit of using a to-do list,
[09:26] you'll know when you need something different,
[09:27] when there's a feature that's bugging you
[09:29] that's missing that you need.
[09:31] So that was capture.
[09:33] So the next step after we observed knowledge about code
[09:36] and we've captured it, next is focus.
[09:38] I summarize that by saying you don't need to learn at all.
[09:41] In fact, it's literally impossible to learn everything
[09:43] there is to know about programming in 2023.
[09:46] You may feel like there are people who know
[09:47] everything about programming, it is not true.
[09:50] And in fact there's no need to learn all those things.
[09:53] So what does expertise look like instead?
[09:55] What does growing your career look like?
[09:57] Ken Beck has used the term paint-drip developer,
[10:00] and this link that'll be in the slides that I share out.
[10:02] Takes you to a blog post where someone wrote about it.
[10:05] You think about the visual image you see there.
[10:07] You have both breadth and depth.
[10:09] You work across a wide variety of different things.
[10:11] Think about a paintbrush going across the top.
[10:13] And in some things, oh, you don't go very deep.
[10:15] You just, for whatever reason,
[10:16] other things, you go very deep, it drips way down.
[10:19] And so you have areas of depth and broad areas
[10:22] where some of them are not quite as deep.
[10:24] So that is expertise, that is, none of us get beyond
[10:29] paint-drip levels of experience,
[10:30] and so you don't need to know at all.
[10:32] So you need to focus and choose what to focus on.
[10:35] So you have an item on your unread list,
[10:38] and you have options to decide what to do with it
[10:40] when it comes to focus.
[10:41] You can read it fully.
[10:43] You can skim it until you learn enough or lose interest.
[10:46] I mean, you go with your instincts, go with, you know,
[10:48] your energy levels.
[10:49] If you've lost interest, okay, that's enough for now.
[10:52] Or maybe you skip it, maybe you've captured it,
[10:54] but now at this later step you've decided,
[10:55] "It's been a while, I haven't gotten to reading this.
[10:58] I guess I'm not motivated in this right now."
[11:00] But I've often deleted something when I've decided
[11:03] I don't need it, and then I regret that,
[11:05] and I look for it later.
[11:06] So I would say if you got reading list software,
[11:08] like, just mark it as read, just lie to yourself.
[11:10] Or maybe there's another category,
[11:12] but keep it tracked in the system you've captured in
[11:14] so you can get back to it later.
[11:15] What was that article about that one programing language
[11:17] or that one book?
[11:19] You can find it again if you haven't deleted it.
[11:22] So how to decide whether you go deeper
[11:23] in a given topic or not with all the overwhelming areas
[11:27] of tech that are out there?
[11:28] Is it related to something you already know
[11:30] so it's easy to build on?
[11:32] Is it useful for something you're working on right now,
[11:34] it's timely?
[11:35] Is it useful for something you want to work in?
[11:37] You want to head towards it sooner or later in the future,
[11:39] it can be good to dig into that.
[11:41] Are you able to follow it?
[11:42] This was really interesting when I read the book
[11:44] "Domain-Driven Design" and I was like,
[11:46] "Wow, it's a great book and it's well written.
[11:49] I cannot follow it. I'm out of my depth on this."
[11:51] And I've tried a few times, I still haven't made it through.
[11:54] I'm sure if I force myself, but I didn't want to force myself.
[11:57] It's available. I can get into it.
[11:58] I know the kinds of things that are in there.
[12:00] I can get into it if and when it's helpful.
[12:02] So you know, trust yourself as far as if your brain
[12:05] is able to follow it or not,
[12:06] and don't judge yourself for that.
[12:09] Does it energize you? Does it make you excited?
[12:10] Or does it feel like a slog?
[12:12] And, you know, decide that I've read enough of this,
[12:15] I'm going to mark it as red, I'm going to put it on the shelf
[12:17] and save it for later.
[12:19] So once you've observed, captured and focused,
[12:21] decided to focus on something, understand it deeply.
[12:25] Dig into a topic to ensure you thoroughly comprehend it.
[12:29] That's kind of general,
[12:30] so let me put some more details onto that.
[12:31] How can you help your understanding of something
[12:34] so that you've really gotten your mind around it well?
[12:37] Applying the steps for yourself,
[12:38] like, don't just read it and say,
[12:41] "I think I understand that," but try it out yourself.
[12:44] If you don't get how a piece of it works, look it up.
[12:47] For all of us, this is common, when you're reading through
[12:49] and it just references another technology or a protocol
[12:52] or a spec or a principle from computers and you're, like,
[12:55] "Yeah, I've never heard of that before,
[12:56] and they assume I know it."
[12:57] Well you can pause and go look that up.
[12:59] You can capture what that thing is.
[13:01] Maybe you come back later or whatever.
[13:03] Experiment and see how it breaks.
[13:05] This is something that I wasn't big on at first,
[13:07] but I learned from others.
[13:08] I see something working, well, what if I don't add
[13:10] this parameter that they say is required?
[13:12] What if I pass the opposite boolean?
[13:14] What does it do? And you learn from that.
[13:16] Ask the person questions if they're available,
[13:18] if they're the author or creator of something
[13:21] on the internet, you can reach out, and a lot of times,
[13:23] more times than you would expect, they respond.
[13:26] A lot of folks care if you care about the topics
[13:28] that they've written about or tools that they've created.
[13:31] And so you can get answers, you can get help.
[13:34] So by trying these things,
[13:35] you make sure that you haven't just read something
[13:37] but you're deepening your understanding of it.
[13:40] The next step is a way to, in a sense,
[13:43] deepens your understanding,
[13:44] but it's putting it into practice.
[13:46] Repeatedly apply a technique to build the habit.
[13:49] So I talked about following the steps above
[13:51] in the context of the learning resource,
[13:53] like a book or an article described something.
[13:56] And so I try out those steps myself.
[13:57] Practice here, I'm referring more to applying
[13:59] that outside the context of the learning resource.
[14:01] I have a technique, I have a tool, a library,
[14:04] now I'm on a project or something, I'm going to pull
[14:06] from what I learned before and try it out there,
[14:08] outside of a well-prepared tutorial environment.
[14:12] So where can you practice?
[14:14] On work projects, you can practice and try out new things
[14:17] if it's appropriate for that project.
[14:19] In a REPL, a read-evaluate-print loop tool.
[14:21] This is very common in Ruby,
[14:23] it's available in Node and other dynamic languages.
[14:25] You can just get in, start writing code,
[14:27] and see what happens when you try things out.
[14:29] Code exercises, there's a number of different tools online
[14:31] for code exercises.
[14:33] Exercism.org is a great one
[14:35] on many, many different programming languages,
[14:37] and so that's a way to try out on these small exercises.
[14:39] On a side project, I wrote a blog post recently
[14:42] about side projects.
[14:43] You can do those for yourself, not to start a business,
[14:46] just to scratch an itch and just to get a chance
[14:48] to practice things you'd like to practice.
[14:51] You can build a standalone experiment repository in Git.
[14:54] Something where it's going to take a series of commits,
[14:56] you're building out a little bit, but it's not intended
[14:58] to ever become something useful.
[14:59] You just put it there and you keep, you know,
[15:02] in many source code hosts, the repositories are free.
[15:05] And so throw it up there.
[15:07] Things about data layers, things about node,
[15:09] things about web sockets that I've experimented with,
[15:11] I've stuck up all these repos so I can reference them
[15:13] in the future to see how my experiment worked.
[15:17] So you've gotten chances to practice these things,
[15:20] and that further deepens your knowledge, you're learning.
[15:22] So now I'd recommend a step of reflection,
[15:25] and this is never something that when someone encouraged me
[15:27] in advance to do it, made sense,
[15:29] so why am I encouraging you now?
[15:30] But we'll try, but when I look back when I've done this,
[15:33] this has really helped me out.
[15:35] Think about what you've learned,
[15:36] seems pretty straightforward.
[15:38] But here's some questions that I propose
[15:40] as a way to reflect.
[15:43] You could ask yourself,
[15:44] "Am I applying everything I wanted to?
[15:45] Did I say after reading this article that I was going to try X,
[15:49] but then I haven't actually done it yet?
[15:50] Maybe I just haven't gotten into the habit yet,
[15:51] and I can try."
[15:53] Is it working as described? Why or why not?
[15:55] Believe it or not, things don't always work
[15:57] as well as described.
[15:59] Maybe they're not that good. Maybe contexts differ.
[16:02] And so see if it lives up to the promises or was described.
[16:06] And there could be a good reason.
[16:08] Maybe you learn something that's getting in the way
[16:09] to improve it.
[16:11] Does it feel natural or is it taking a lot of effort?
[16:13] Would you be doing this technique or using this tool
[16:17] if you weren't making intentional choice to do so?
[16:19] It could be a sign that maybe it hasn't clicked yet
[16:21] or maybe it's not a good fit for you.
[16:24] Does it conflict with something I've learned before?
[16:26] How do the two relate?
[16:28] This could be a wiring thing.
[16:29] Some folks are totally fine with contradictory or, you know,
[16:33] different views in their heads and holding them in tension.
[16:36] Other folks really want to resolve them.
[16:38] I'm somewhere in between, I think.
[16:39] But I do find that I learn when I say, like,
[16:42] "Oh, this view from this programming community
[16:45] says one thing, this view says something else.
[16:47] Like, they don't go together
[16:48] or maybe they're at right angles,
[16:50] like, they're talking to about different things."
[16:51] Do they fit together, do they not?
[16:53] And you can learn more about both perspectives
[16:55] by comparing them with each other.
[16:58] So you've reflected, so that helps you internalize
[17:00] this knowledge some more even.
[17:01] Then record it.
[17:03] And record sounds a bit like capture,
[17:05] but there's something very different,
[17:06] and it's very significant that these are different ends
[17:08] of the learning process.
[17:10] In record, make a record of settled knowledge
[17:13] so you can come back to it.
[17:15] Now writing something down,
[17:16] once you've really internalized it and writing it down
[17:19] in a distilled form, can help you catalyze that knowledge
[17:22] and learn whether you're checking what you wrote
[17:24] or it just cements it in your brain.
[17:27] So I would recommend having something
[17:28] like a reference system.
[17:31] And I'll talk about what I mean by that.
[17:33] It's different than notes.
[17:36] It is a kind of note, but it's a way where you have
[17:38] low friction to find information.
[17:40] This isn't targeted for easily writing things down
[17:42] and capturing them, but when I need to find something
[17:44] on a topic, can I easily get to it?
[17:47] It's a setup where you have a topic that
[17:48] lives at one authoritative place.
[17:50] Encyclopedic comes to mind as far as like,
[17:53] so for example, take GraphQL.
[17:55] I might have dozens of different notes
[17:57] from different days with things that I've learned
[17:59] about GraphQL or looked into or questions I've answered
[18:02] or using it in different programming languages.
[18:04] But I want to have one GraphQL reference page.
[18:06] So it's like these are the most important things
[18:08] that I've learned about GraphQL, like a Wikipedia page,
[18:11] like an encyclopedia page.
[18:13] And it's for the information
[18:14] you're most likely to need again.
[18:16] Yeah, whenever I often have these same questions
[18:18] about Git or about Ruby or about Rails or whatever.
[18:22] So here's some options for this idea of a reference system.
[18:26] You could use a wiki for sure.
[18:28] GitHub wikis are available there on your repositories.
[18:30] If you're using GitLab or something else,
[18:32] like, those might very well be in there as well.
[18:34] And so those are easy ways to get to it.
[18:37] But I made a side project.
[18:39] It's 'cause I'm kind of picky.
[18:40] I want my tools to be really simple,
[18:42] and so I don't want to have, if I just want a place
[18:45] that my knowledge is, I don't want it hiding
[18:47] under a wiki's tab under GitHub
[18:48] when it's not really for code.
[18:51] And I asked on our slack about a Ruby-based wiki
[18:53] that's really easy to deploy on a Heroku,
[18:55] and we couldn't find one.
[18:57] But luckily I already created a very terrible one
[18:59] that I love and works great for me.
[19:01] So it's called Slapdash, and it's called that for a reason.
[19:04] And I'm not here to advertise my project,
[19:06] 'cause this is, like, I'm here at Test Double.
[19:08] This is the simplest, most trivial Rails application
[19:12] you can imagine.
[19:13] Like, you look at this, this is a list,
[19:15] this is a detail page.
[19:16] You can imagine if you're a Rails developer
[19:18] how this is implemented.
[19:19] It's implemented that way or worse.
[19:21] Like, it's just the simplest thing imaginable.
[19:23] But I wanted a place where it was edible in the browser,
[19:26] don't have to download a thing,
[19:27] don't have to make a Git commit.
[19:29] This is not publishing, this is, I just want one place
[19:32] to record my Android knowledge.
[19:34] One place to record my Google Chrome knowledge.
[19:36] I always want to know how to clear the data
[19:38] and how to disable JavaScript and reset site permissions.
[19:40] So I put it in there, but it's encyclopedic
[19:43] where this is just, like, there is one page for Atom, RIP.
[19:47] There's one page for Bootstrap,
[19:48] and I can get back to them very easily.
[19:50] I just know where to go for this settled knowledge
[19:52] in this reference system.
[19:55] For you, it might be the same as your note app.
[19:56] If you're disciplined and you know how to create those pages
[19:59] where there's one place to go,
[20:00] maybe that works fine as well.
[20:01] But whatever the tooling is like,
[20:03] have a place where you have that settled knowledge
[20:05] you can get back to.
[20:07] The last thing I'll share, the last step is sharing.
[20:09] And this is something that I'm really glad
[20:11] in the last five years we've talked a lot of
[20:13] in the about in the software industry.
[20:14] Pass along your learnings to others.
[20:17] So why is it valuable to share?
[20:19] It helps others, and that is in and of itself valuable.
[20:22] Teaching a topic helps solidify your own knowledge of it.
[20:25] This has been known in teaching and learning circles
[20:27] for a long time.
[20:28] And now, when you've prepared it in such a way
[20:30] that you can teach it to someone else,
[20:32] now that information's even clearer for future you.
[20:34] And so you can read it and you're teaching future you
[20:37] even better, so sharing this knowledge can be a great idea.
[20:40] This could be done on a link on social media,
[20:42] Slack and Discord.
[20:43] Like, literally just sharing the URL
[20:44] and maybe a few words of commentary
[20:46] is already a way to share.
[20:48] You could write a blog post.
[20:50] Test Double folks, we'd love for you to write blog posts
[20:52] for our blog.
[20:52] Make a personal blog and share something out.
[20:55] Do a presentation at work. Give a meetup talk.
[20:58] Most meetups would love to have someone volunteer
[21:00] to give a talk.
[21:01] Apply to give a conference talk as well.
[21:04] One thing I always say on this topic is it can be hard,
[21:07] the smaller the big things on here to do it to say,
[21:10] "Ah, others have already said it better.
[21:11] I'm not a speaker, I'm not a writer,
[21:13] I don't need to share anything out there."
[21:15] What I always say, and I've gotten this advice
[21:16] and I pass it along, say it the way you
[21:18] would've liked to hear it.
[21:20] And that's different than anybody else would phrase it.
[21:22] And there's someone out there that that's going to help,
[21:25] more than the docs and more than the talking heads
[21:28] and more than how I would say it.
[21:29] The way you say it is going to help someone
[21:31] who's wired the way you are, who is in a circumstance
[21:33] that you're in, so it's valuable to share that.
[21:37] So these are the steps of cyclical learning,
[21:39] again, as I observe how I've gone through these.
[21:42] And I'll put 'em back up in a screen in a minute
[21:44] for us to discuss a bit more, but just to wrap up,
[21:47] what if learning new technologies
[21:48] was energizing instead of draining?
[21:50] That's a tall order for the software industry,
[21:53] but I think it can be to some degree
[21:55] with the principles we've discussed where you filter out
[21:57] the too much that's out there,
[21:59] and you make it something manageable.
[22:01] And so I would encourage you for your own happiness
[22:03] and enjoyment in our profession,
[22:05] don't settle for an all-or-nothing approach to learning
[22:07] where you either have to stop what you're doing
[22:09] and really dig in to learn something
[22:11] or else it just goes into a browser tab
[22:13] that accidentally gets closed.
[22:15] Again, if that works for you, that's fine,
[22:17] but don't feel like you have to give up
[22:18] if you're stressed and you don't have time to learn.
[22:20] Capture this stuff.
[22:21] Have some way to go about it so you can go back to it later.
[22:24] Augment your brain with tools
[22:26] and with processes and practices.
[22:28] And definitely don't get down on yourself
[22:30] for not having infinite capacity.
[22:32] Nobody does. Zero people do.
[22:34] We're all in the same boat there.
[22:36] So I hope this has been helpful,
[22:38] and I'll make these slides available
[22:40] wherever this talk is shared out.
[22:41] And so, thank you so much for considering it.
[22:44] (bright music)