Learning how to learn as a developer
Whatever it is you're building, there is constant pressure to stay on top of a moving target. Learning is not something you do in school then get a job as a developer. No, it a constant and critical part of your career. That's why we all need to be good, very good, at it.
Matt Harrison is back on Talk Python to talk to us about some tips, tricks, and even science about learning as software developers.
Episode Deep Dive
Guest Introduction and Background
Matt Harrison is a seasoned Python developer, trainer, and consultant who focuses on helping software teams and companies level up their Python skills. He has authored several books on Python, runs his own training and consulting business, and regularly speaks at conferences. In this episode, Matt returns to Talk Python To Me to share insights on learning how to learn effectively as a software developer—especially for those of us in the fast-paced world of Python programming.
What to Know If You’re New to Python
If you’re just getting started, remember that Python’s strength comes from its constant growth and flexibility—it’s normal to feel overwhelmed by new libraries, frameworks, or tools. This conversation discusses ways to stay adaptable and curious in an ever-changing landscape. Here are a few pointers from the episode:
- Understand that learning Python (or any technology) is ongoing, not a one-time event.
- Don’t worry too much about memorizing everything—practical exposure, incremental learning, and reading documentation work wonders.
- Experiment with small projects first so you can apply the learning strategies discussed in this episode, such as spaced repetition and memory techniques.
- Practice stepping back when you feel stuck—giving your brain room to connect dots is a key theme here.
Key Points and Takeaways
- The Importance of Continuous Learning Software developers must constantly level up because technology rapidly evolves. The conversation emphasizes that being able to learn quickly is more vital than mastering any single framework. If you’re not constantly taking small steps to keep your skills fresh, you’re gradually falling behind.
- Short-Term Memory and Chunking
Our working (short-term) memory can only hold roughly “five plus or minus two” items at a time. Chunking, or grouping information into meaningful units, helps us hold more in our heads. Over time, familiar patterns (like design patterns or single concepts) get stored as one “chunk,” freeing mental space for deeper work.
- Tools and Links:
- Requests (PyPI) (example of chunking with known library usage)
- Tools and Links:
- Long-Term Memory and the Forgetting Curve
While our long-term memory capacity is massive, the real challenge is retrieval and the tendency to forget. After a day or two, most of the information not revisited begins to slip away. The forgetting curve reminds us to revisit important concepts within a short timeframe to reinforce them.
- Tools and Links:
- Jupyter (often used to store and revisit code examples)
- Tools and Links:
- Memory Palaces and Associations
Visual and emotional triggers reinforce learning. Building associations—for instance, imagining a Knight Rider scene in your bedroom for remembering a name—can help recall details more effectively than simply reading them over and over. These creative techniques leverage different parts of the brain, strengthening long-term retention.
- Tools and Links:
- Anki (flashcard app often used for memory practice)
- Tools and Links:
- Spaced Repetition Reviewing material periodically—rather than cramming—yields far better long-term retention. Tools that send periodic quizzes or require you to recall information (instead of just re-reading it) are very effective. Rewriting your notes or using flashcards that quiz you improves memory connections.
- Rubber Duck Debugging and Explaining Concepts
Talking through a tough problem—even if it’s just to a rubber duck—can jolt the brain into making new connections and clarifying the solution. This technique taps into different parts of the mind to surface hidden insights and solutions you might not see by brute force.
- Tools and Links:
- Slack or a teammate for “rubber duck” style explanations
- Tools and Links:
- Incubation and Breaks Sometimes the most productive approach is to walk away from a mental impasse. The brain still subconsciously processes problems in the background. Many developers report breakthroughs after a good night’s sleep or a walk, reinforcing that you don’t always have to “power through” to solve tough problems.
- Minimizing Distractions Frequent context switching (e.g., notifications, chat tools, social media) depletes mental resources. Deep work, free from pop-up alerts, Slack messages, and pings, is crucial for complex tasks. Being conscious of your environment—like turning off desktop alerts or moving your phone—can drastically improve learning and focus.
- Interleaving and Cross-Pollination Practicing different types of problems or topics together can improve recall and creativity. If you only ever tackle a single subject, your brain might struggle to decide which tool or approach to apply. By mixing up tasks and frameworks, your mind becomes more agile at pattern recognition and application.
- Story and Emotion in Learning Tying facts to compelling stories or emotional contexts leads to deeper learning. Whether you’re listening to a story-based podcast or connecting a coding concept to a memory from a personal anecdote, narratives are “sticky” because they activate the parts of the brain that handle emotional engagement.
Interesting Quotes and Stories
“Multitasking is a lie.” Matt highlights that constantly having notifications or Slack messages bombarding you kills deep focus and creativity.
“I put you in the car, in the master bedroom—visualizing Michael driving KITT.” A fun illustration of memory palaces, showing how a bizarre or vivid mental image improves recall.
“If you don’t like learning, this is the wrong place to be.” Being a software developer means embracing continuous learning, not one-and-done educational moments.
Key Definitions and Terms
- Chunking: Grouping information into larger units for easier short-term retention.
- Memory Palace: A mnemonic device that uses spatial memory to recall information by placing it in imagined locations.
- Spaced Repetition: Reviewing learned material at increasing intervals to strengthen long-term memory.
- Rubber Duck Debugging: Explaining problems out loud (even to an inanimate object) to uncover hidden insights.
- Forgetting Curve: The declining rate at which information is lost over time if it is not revisited.
- Incubation Effect: Gaining insights after taking a break from active problem-solving, allowing subconscious processing.
- Context Switching: The mental overhead of switching between tasks or being interrupted, decreasing overall productivity.
- Interleaving: Mixing different but related tasks or study topics to improve problem selection and retention.
Learning Resources
If you’re new or want to solidify your foundations in Python, consider:
- Python for Absolute Beginners A comprehensive course covering core Python in a beginner-friendly style.
For more on Pythonic practices and deeper skills-building, explore:
- Write Pythonic Code Like a Seasoned Developer Focuses on writing clear, idiomatic Python that aligns with how the language is intended to be used.
To strengthen your understanding of memory and optimization in Python:
- Python Memory Management and Tips Learn how Python handles memory allocation and ways to optimize usage in your code.
Overall Takeaway
In the fast-paced ecosystem of software development—where Python, web frameworks, and libraries evolve at breakneck speed—your most valuable asset is the ability to learn efficiently. Techniques such as spaced repetition, memory palaces, incubation, and rubber duck debugging keep you sharp and keep knowledge accessible when you need it. By combining these mental models with a deliberate focus on minimizing distractions and allowing for creative downtime, you become a more effective, innovative Python developer—ready to adapt as technology continues to change.
Links from the show
Matt's Learning Course (use code TALKPYTHON20 for 20% off): mattharrison.podia.com
Friends of the show: talkpython.fm/friends-of-the-show
Streamlit: streamlit.io
Jupyter LSP: github.com/krassowski/jupyterlab-lsp
Episode transcripts: talkpython.fm
--- Stay in touch with us ---
Subscribe to Talk Python on YouTube: youtube.com
Talk Python on Bluesky: @talkpython.fm at bsky.app
Talk Python on Mastodon: talkpython
Michael on Bluesky: @mkennedy.codes at bsky.app
Michael on Mastodon: mkennedy
Episode Transcript
Collapse transcript
00:00 As software developers, we live in a world of uncertainty and flux.
00:03 Do you need to build a new web app?
00:05 Well, maybe using Django makes some sense since you've been doing that for a long time.
00:09 There is Flask, but it's more mix and match being a micro framework.
00:12 But you've also heard that async and await are game changers, and FastAPI might be the right choice there.
00:18 Whatever it is you're building, there's constant pressure to stay on top of a moving target.
00:22 Learning is not something you do in school and then get a job as a developer.
00:26 No, it's a constant and critical part of your career.
00:29 That's why we all need to be good, very good at it.
00:32 Matt Harrison is back on Talk Python.
00:34 Talk to us about some tips, tricks, and even science about learning as software developers.
00:39 This is Talk Python to Me, episode 293, recorded October 19th, 2020.
00:57 Welcome to Talk Python to Me, a weekly podcast on Python, the language, the libraries, the ecosystem, and the personalities.
01:03 This is your host, Michael Kennedy.
01:05 Follow me on Twitter where I'm @mkennedy.
01:07 And keep up with the show and listen to past episodes at talkpython.fm.
01:11 And follow the show on Twitter via at Talk Python.
01:15 This episode is sponsored by Brilliant.org and Linode.
01:18 Please check out what they're offering during their segments.
01:20 It really helps support the show.
01:22 Matt, welcome back to Talk Python to Me.
01:24 Thanks.
01:25 Thanks for having me on.
01:25 It's always great to have you on.
01:27 It's fun.
01:28 We're doing a lot of things together.
01:29 We were in the Humble Bundle together and done the book together and various things.
01:33 So nice to have you on the show as a return guest as well.
01:36 You were on before talking about Pythonic career advice.
01:40 Yeah.
01:41 It seems like not that long ago, right?
01:44 That's episode 111.
01:45 But that was May 2017.
01:47 I mean, that might as well be 100 years, right?
01:50 That was when people would go outside.
01:51 They would be around each other.
01:52 All that crazy stuff.
01:54 Yeah, that's a whole different decade.
01:56 And everything's changed since then.
01:58 It has.
02:00 But learning and basically the fact that software development means you're constantly learning.
02:07 I think that's only more true.
02:08 Yeah.
02:09 Yeah.
02:10 And I think people, especially for career development, I think people are in today's
02:17 society, you've got to do something to sort of level yourself up and stand apart from everyone
02:22 else if you want to sort of stick out.
02:24 Yeah.
02:25 I think there's these different layers in the software development career stack, right?
02:30 It's easy to kind of get stuck doing the same thing, not really progressing.
02:35 And the way that technology is moving is if you're not constantly sort of taking even
02:39 just little steps to keep your skills fresh, to learn the new things, it's almost like you're
02:44 falling behind.
02:45 Yeah.
02:45 Yeah.
02:46 I mean, even, I mean, the joke among JavaScript is like if you're using something that's six
02:51 months old, you're stale.
02:52 But I think there's a lot of that even going on in the Python world.
02:56 There's a lot of changes coming up in the Python world.
02:58 But even like web frameworks, right?
03:00 You have like FastAPI.
03:01 Yeah.
03:02 And a lot of development that previously was done with tools like Django and Flask are not
03:09 being done with those tools.
03:10 It's kind of stepwise, right?
03:11 It's like a discrete function.
03:12 It's not as continuous, I guess, and not linear anyway.
03:16 You kind of go along.
03:18 Okay.
03:18 Doing Django, doing Django.
03:20 Wait a minute.
03:21 Like Python 3 is now fully embraced.
03:23 And now you're doing this other funky API thing.
03:26 And you've kind of got to go in these steps.
03:28 So I don't know that it's necessarily constant learning.
03:30 But viewed from a zoomed out perspective, it looks like that.
03:34 The skill of being able to take something and understand it quickly and adapt it or at least
03:42 see where it fits into your problem domain is a very useful skill to have.
03:48 Absolutely.
03:48 Absolutely.
03:49 And you're right.
03:50 Everything is changing pretty rapidly in Python right now.
03:53 And I think that's one of these step functions, right?
03:56 The last year or two, people really have fully embraced the fact like, okay, we actually are
04:01 past Python 2, right?
04:02 We were supposed to have the big goodbye Python 2.
04:04 Thanks.
04:05 And see you later at PyCon this year.
04:07 And right.
04:08 It's officially deprecated and unsupported.
04:10 And it's a big deal.
04:11 Yeah.
04:12 And I'm even seeing stuff where it's like Python 3.6 is not supported anymore on some of these
04:18 platforms and on some of the tools.
04:19 Yes.
04:20 Yeah.
04:21 I've seen 3.7 and plus required, which is that's pretty insane.
04:24 And it's only going to get faster because recently they switched from an 18 month release
04:28 cycle to a 12 month release cycle.
04:30 So that's a 50% increase in, you know, frequency of those types of things.
04:35 Yeah.
04:35 Yeah, absolutely.
04:36 Now, before we move on, for new guests, I asked them how they got into programming.
04:40 But for return guests, I usually ask them, you know, what have you been up to lately?
04:44 What are you doing these days?
04:45 Yeah.
04:45 So I run a company called Medicine Inc.
04:47 That does corporate training and consulting.
04:49 And I've spent a lot of time recently doing a bunch of virtual training.
04:55 And sort of similar to you, I mean, my content traditionally has been going into large companies
05:01 and helping their developers level up.
05:04 And I've repeatedly got requests for sort of one-off individuals.
05:09 And so I'm building up a library of courses and been working on stuff that I can satisfy
05:17 the desires of the one-off person rather than, you know, here's a group of 20, 50, 100, 200
05:22 people who need to level up.
05:24 Yeah, that's really cool.
05:25 And we've lived similar lives in a lot of different ways.
05:28 We'll talk about those, I think, through this whole show.
05:30 The corporate training side is really interesting.
05:33 It's, I actually, folks who don't know, I did that for like 10 years, traveled around
05:38 all over the world teaching classes.
05:40 And it was really fun.
05:41 I really enjoyed those experiences.
05:43 And I think those actually reflect a lot on this topic that we're going to talk about here.
05:49 You know, learning how to learn for developers is you're dropped into these different situations
05:54 with different teams.
05:55 One week, it might be, I'm working with stockbrokers in New Jersey.
06:00 The next week, I'm working with a startup in Silicon Valley or Sydney or something.
06:05 And just, you've got to quickly turn around what's relevant and what you kind of know to
06:11 teach them in context.
06:13 Yeah.
06:13 And when the whole COVID stuff came out, my, previous to that, like my year was like scheduled
06:21 out, like traveling here and there, going to Dubai, traveling all over the US.
06:25 And then everything sort of hit a wall.
06:28 And I wanted to double down on that.
06:31 I'm like, okay, for the next year or so, I don't think I'm going to be doing much traveling
06:36 and teaching from that point of view.
06:38 And so I wanted to double down on the virtual training, but not only from like equipment,
06:44 like investing in computer and webcam and mic, but also investing in understanding how people
06:54 learn and what can maximize sort of the throughput of the teaching and help people be able to grasp
07:05 it, but apply it and make sure that it's effective learning, not just taking reading slides per se.
07:13 Yeah. I mean, that's at the heart of all the various things you mentioned, right?
07:17 The in-person corporate training, the virtual Zoom style training, the individual courses,
07:23 the online async courses like we have at Talk Python and that you've gotten your own library.
07:28 You also, it's also worth mentioning that you have a course over at Talk Python training
07:31 that is nice as well about Python 3 and some of the cool features there as well.
07:37 Yeah. Yeah. And I think there's a, I think you'd appreciate this too. I mean,
07:43 you've obviously lived it, but there's something to be said for live in person,
07:49 like just being able to like sit a group down and move them through something.
07:55 And from my experience, it's hard to beat that sort of live face-to-face there in front of you and you
08:01 can see what's going on. And this whole virtual having people might have a camera, they might not
08:08 have bandwidth to have the camera on. It really causes you to change how you teach or, you know,
08:15 wonder, am I just talking to myself in this room here? Right. Or...
08:20 Absolutely.
08:20 What's going on?
08:21 Well, there's a weird, I think there's a weird psychology around learning. And I think
08:26 the virtual stuff is a little bit, I think it's the most tricky, I guess. On one hand,
08:31 you have these cool events where you get together, everybody on the team is in one place and you
08:36 commit to spending like four days together, eight hours a day, and everyone's paying attention.
08:41 They're working together. They're working the exercises during the breaks, sort of next to each
08:46 other alongside each other. And there's a certain kind of focus and energy on that. And I think with
08:52 the online courses, people can decide like, I'm going to go and focus on this online course. I'm
08:57 going to spend an hour a day for a week and a half. I'm going to have this new skill. And they can do
09:02 that pretty well as well. But the virtual stuff, I feel like a lot of people don't, even necessarily
09:07 the attendees, but their coworkers and stuff, don't give it the same separation. They're like, well,
09:13 he's just in this online class, but hey, just send him a quick message and just distract them this way
09:16 or distract her in that way. Or, you know, it's like, ah, it's really hard to get people to focus.
09:22 And some of the things that we're going to talk about are all about those types of things, right?
09:25 Yeah. Yeah. There, I think with work from home, seeing being the standard operating procedure these
09:33 days and constant being on Slack 24 seven, people aren't used to a lot of these things. And
09:41 there's constant interruptions and focus. And so it can be a challenge learning. I think
09:48 your point of, for the individual sort of setting aside a goal to learn, they can do that, but getting
09:55 a group together and having them move at a constant pace or somewhat constant pace towards a goal when
10:03 they've got different distractions and things impacting them, it can be a challenge.
10:08 Yeah, absolutely.
10:09 All right. Well, let's talk about learning. And I guess it's probably worth mentioning this stuff
10:14 all applies to developers, but much of your presentation. And have we mentioned that this
10:19 is a course, I know you talked about focusing on it, but the reason I reached out to you is that
10:23 you announced that you created a course specifically on learning and around like mostly technical type
10:31 stuff. I imagine it's what you had in mind when you were bringing up the points you were talking
10:35 about, but yeah, tell people real quickly about the course and we'll talk about some of the takeaways.
10:38 Sure. Yeah. So like I said, when the whole COVID stuff came up, I doubled down on learning. And as I
10:47 mentioned previously, I've been making my own courses. And so I thought, why not just do a meta course
10:52 on learning that is applicable to almost everyone? I think it's applicable to everyone. And talk about
11:00 some of how your brain works, what's actually going on there, and then some tricks and tips
11:06 to maximize your learning and some skills to be able to, I guess you could say trick yourself, but
11:14 enable yourself to be more creative, work harder and be a better learner.
11:20 Yeah. It's cool. It's a neat topic. And I wouldn't necessarily use the word trick,
11:23 although I know exactly what you mean. I think it's more like understand the way that learning
11:28 works for people, understand the way the brain works and then go with the grain instead of
11:32 do something that's counter to the natural way it might work.
11:35 Yeah. Yeah. I guess hack is more the proper term that people would use these days.
11:39 Yeah, I guess so. All right. So let's start at the storage layer.
11:43 Okay.
11:44 Yeah. Memory.
11:44 Yeah. Yeah. And I think the whole story revolves around your brain and how your brain works,
11:51 right? And so there's, I think there's two main things to look at from your brain. And one is
11:58 your short-term memory and then your long-term memory. And your short-term there's, I'm sure many
12:06 of the listeners have heard, a fellow named Miller in the 50s released a paper called five plus or minus
12:11 two is the magic number. And so most people can't keep track of more than five plus or minus two.
12:19 So between three and seven things at a time. And you sort of see this play out at least in like two
12:25 factor authentication, right? And many apps are factor authentication. And they ask you, they're like,
12:30 we were going to send you a text and we're going to give you six digits, right? And I don't have any
12:35 problem remembering six digits for the amount of time that takes me to look at my phone or the text
12:41 message and then come back to the app and enter those six digits. Like I can do that just fine.
12:46 But if they asked you to say 12 digits or 14 digits, it's sort of game over, right? It's like,
12:53 okay, I can't really do that. And so being able to recognize that our brains can only hold a limited
13:01 amount in it at a time. This is like your working memory or your RAM makes you realize a few things.
13:08 I think one of those things is that multitasking, anything that you're trying to multitask is going
13:15 to take away from the ability of your brain to work on one task deeply because it's got to reserve some
13:23 of its capabilities to hold.
13:25 Right. You've only got so many slots, like low level slots to put stuff into. And if a few of them
13:32 are full of other stuff. Yeah. I like your analogy about the two factor auth. But as you were talking
13:38 over, I was thinking, I never remember the six numbers. I have no problem with two factor auth.
13:42 I remember two sets of three numbers and I don't know why that is. But anyway, I'm like, okay,
13:48 these three and these three. And then I just remember them really well. I don't know why it's so bizarre.
13:51 That's interesting. And that might go into this notion of chunking. So the idea there is that,
13:58 again, if you only have so much capacity and maybe you're five plus or minus three, Michael.
14:03 Yeah. Well, and I mean, I don't mean like I have to go back and look again. Like I remember them as
14:08 two, three digit numbers. I don't remember it as a single six. So it's just bizarre.
14:14 No, but this does relate to that idea of chunking. The idea there is if you're overloading your brain
14:18 with so much stuff coming in, one thing that you can do is try and combine things together,
14:25 right? So instead of six individual numbers, you're basically remembering 200 digit numbers,
14:31 like 207 and 365. Yeah. Right. And so exactly. That is a trick or a hack or a technique that you can use
14:40 to work more information into your brain. And then if you sort of build from a low level up,
14:48 you attack one little idea at a time and then you tie it into another idea. Those two ideas can become
14:56 a single chunk. And so your brain isn't worried about two ideas at that point. It's only worried
15:02 about one idea. And so this allows you as you master a subject to be able to take a very complex subject,
15:10 but treat it as a single chunk in your mind that in your mind has all these connections with that.
15:15 And then maybe apply that mastery to something else or take that experience and sort of unwrap it onto
15:23 something else into perhaps something very novel. Yeah.
15:26 And I think this is really, really important for developers who have a lot of experience and can
15:34 take, here's my old experience. I might not be using the same toolkits. I might not be using the same
15:40 technology now, but hopefully I can apply what I've learned to this new domain or new problem set.
15:47 You know what comes to mind? I know we're talking about low level short-term memory,
15:50 so it's not exactly the same thing, but this idea of chunking and knowledge. One of the things that
15:56 comes to mind really clearly for me here is design patterns in the sort of loose sense, right? Like
16:02 if you study like software patterns and stuff, you can, instead of thinking of all the details
16:08 of what that pattern might do, it's positives, it's negatives. You can just think of it as the one
16:14 little block that you have to put in your mind, right? Like a singleton, you could say,
16:18 well, I'm thinking of that. We use this idea. We have one variable, but there's only one and it's
16:22 shared everywhere and that'll make it a little harder for testing, but it'll also make it easier
16:26 for other parts to act like that's complicated, but singleton got it. Yeah. What's next?
16:31 If you have a common vernacular and a common description of these things, you know,
16:37 this is the visitor pattern or the singleton pattern, right? And again, it takes some learning to sort
16:43 of break that apart. But once you've digested that, yeah, then you have a single concept,
16:47 the singleton, right? That you can just talk about and it makes it very easy.
16:52 And then if you're trying to solve a problem, it is one, it takes up a smaller bit of your
16:57 short-term memory to, I would imagine like that's a piece of the puzzle that you can just hold in your
17:01 head.
17:01 Yeah, exactly. Yeah. Very good example.
17:03 This portion of Talk Python to Me is brought to you by Brilliant.org. Brilliant has digestible
17:10 courses in topics from the basics of scientific thinking all the way up to high-end science like
17:15 quantum computing. And while quantum computing may sound complicated, Brilliant makes complex learning
17:20 uncomplicated and fun. It's super easy to get started and they've got so many science and math
17:25 courses to choose from. I recently used Brilliant to get into rocket science for an upcoming episode
17:30 and it was a blast. The interactive courses are presented in a clean and accessible way and you
17:35 could go from knowing nothing about a topic to having a deep understanding. Put your spare time
17:40 to good use and hugely improve your critical thinking skills. Go to talkpython.fm/brilliant and sign
17:46 up for free. The first 200 people that use that link get 20% off the premium subscription. That's
17:52 talkpython.fm/brilliant or just click the link in the show notes.
17:56 Okay, so that's like the L2 cache or something. What about the disk?
18:02 Yeah, so then we have the long-term memory and there are a couple different facets of that that
18:07 I think are relevant to our audience. One is the capacity. How much information can you hold?
18:13 Another is actually accessing it. So, and this is very similar to like your disk drive or whatnot,
18:20 but the part that may be not so familiar or similar to the disk drive is the fact that this
18:25 long-term memory is mutable, which is a little bit different. And again, scientists aren't 100%
18:32 clear on this, but they know that there's basically a network of information that's stored in your brain.
18:38 And what the science is telling us is that the more you access something, the stronger that memory
18:45 becomes, but also the memory can change. And there are various examples of memories changing over time.
18:52 So that's pretty unnerving to be honest, right? I mean, I'm not debating whether it's true, but
18:58 you feel like your memories are, they're fact, right?
19:01 Yeah. Yeah. You think that, but every time like you share a memory, you're going to recall some part of
19:07 it. You might embellish a little bit more of it. And as you keep sharing that, like the embellished
19:13 part becomes more real to you. And at some point it is the memory. Yeah. Some interesting things like
19:20 the capacity of memory of our brains is actually pretty big. I think one report I read said that we
19:27 can store 3 million TV shows in our brain. Right. And so that seems very, very large. Right. But I mean,
19:35 so it seems like there's more than enough capacity. So what's going on there? Why can't I always recall
19:41 these other aspects? Why can't I recall all 3 million shows? Right. I mean, I've, I've already
19:46 watched the office once. Why do I have to watch it again? Yeah. And the issue there is another aspect
19:51 of our brain in that we forget things. So we have the capacity, but there's this retrieval mechanism
19:56 and that allows us to access things, but it also prevents us from accessing things. Or if we have
20:02 these memories stored in that, it sort of weakens the connections there such that we don't remember
20:07 it. And that's actually a good thing in that if you had to keep all of these two factor numbers that
20:14 you've ever entered into your apps in your brain, and they're always, you know, 568, 2027, right?
20:22 That would be a little bit crazy. And so the notion that we can forget things is actually
20:27 a good thing. Yeah. Or even if you somehow had to remember the equivalent of every frame of what
20:33 your eyes have seen as you sample the world, that would be insane, right? Yeah. Yeah.
20:38 What would you even do with it? It would almost all look the same and so on. And it might drive you
20:44 crazy if you had your mind completely equally full of all of these ideas all at the same time,
20:49 you just couldn't focus on anything. Yeah. And there's a physiological aspect to that as well,
20:54 is that your brain uses energy, right? To do its work for the brain. And so the evolutionary response
21:01 is for your brain to be lazy and to not consume that amount of energy. And so rather than constantly
21:09 thinking about things and having things at the forefront of your mind, it's going to be a little
21:13 bit more relaxed and not bring those to you. So forgetting is actually good. And that brings us
21:20 to something that probably a lot of your listeners are aware of, which is that memory decay curve. So
21:25 generally what happens is that after you learn something, you remember it for the first day or so.
21:33 And then after the first day or so, if you haven't done anything with it, it sort of just
21:37 kind of goes away very quickly. So there's a quick drop off and then it sort of slides into sort of
21:43 levels out. But this is good for two factor stuff. It's not so good for our tests that we're going to
21:48 have in a month or so. If we learned the information today and then it just goes away.
21:53 Yeah, absolutely. So what are some of the things we can do to help improve long-term memory or even
21:58 short-term memory? So short-term, like we mentioned, the ability to chunk ideas together
22:03 into coherent, bigger chunks is good. So that gives us the common vernacular. Like you said,
22:08 a great example of that is design patterns. Long-term memory, like there are various tricks that you'll
22:16 hear of. And one of those is the memory palace, right? And so if I want to, what would be an example?
22:23 An example might be like, I wanted to remember your name, Michael, right? And if I'm at
22:27 a conference or some, you know, for some reason I'm on a Zoom and your name's not there and I want to
22:33 remember your name, then I can use something like a memory palace. And it turns out that different parts
22:38 of our brain are, remember different aspects. And so you might've had an experience where you heard a
22:44 song and the song brought back a bunch of memories, right? Put you in a place where, oh yeah,
22:50 remember when I did that? And it was all connected to the song.
22:53 Yeah. You can feel the sun. You can see whatever you was there. Yeah. It's incredible how that works.
22:58 Yeah. And so your brain stores like verbal information in one place. It stores visuals and
23:03 sounds and smells. Even smells can bring back ideas. And so one thing that you can do is you can,
23:10 again, this is sort of a hack, but this is memory idea of a memory palace and that your brain
23:16 is very good at remembering visual things, maybe not so much verbal things. Like maybe it's hard to
23:22 remember Michael. So how do I remember Michael? And so an example of using this memory palace is
23:28 saying, okay, let's say I'm going to think of my room or my house, and I'm going to sort of put
23:35 things that I want to remember in my house. So I want to remember Michael. Michael starts with M.
23:42 And so I'm going to think of Michael in the master bedroom. And then what else could be in the master
23:48 bedroom? Well, maybe what reminds me of Michael? Well, I'm a child of the eighties. So Knight Rider
23:54 reminds me of Michael. So maybe I remember the black car, right? With the red swoosh going back and
24:00 forth. And maybe I like embellish it a lot. Right. So I think of like rubber burning out or something,
24:05 or like making the sounds that Kit made. And I try and tile this. And then I like put you in the car,
24:12 right? And I say, here's Michael. He's driving Kit in the master bedroom. And so now instead of,
24:18 I think, what was his name? I think of, oh, we're in the master bedroom. He's driving the car.
24:23 It's Kit. It's Michael. Yeah, Michael. Yeah. And this is actually the technique that like the master,
24:29 there's competitions where people memorize a deck of cards in some amount of time. And so if you want
24:34 to have better retrieval, this is one way to do that is this memory palace.
24:40 Well, I think that's super interesting. I love that example as well. That was cool.
24:43 I think sort of highlight something for me that at least personally has been really important is if I
24:50 can connect a story with information, it's so much more powerful and memorable. Yeah. Right. And even
24:56 like the podcast itself, it's sort of like my desire to have that exist. Yeah. For the Python world,
25:02 right? It's like, it's not just that I want to learn the API of FastAPI or I want to learn how
25:07 requests works. No, I want to hear how Kenneth writes, create requests and why did he do it? And what was
25:13 his motivation? And what is he like seeing it like just the stories around that just make it stick.
25:19 Yeah. Or why does Sebastian do this and not that for FastAPI? And then it's those stories just make
25:26 remembering things, especially technical things, just so much more real to me. Yeah. Even math and
25:31 chemistry and so on. And you've probably experienced that a lot going to conferences or whatnot, where
25:35 people would come up to you and like, they feel like you, they know you were like, oh, I remember that
25:39 story that you told such and such. Yeah. It just, there's something about a story and our brains being
25:46 able to capture all of this associations with that rather than just information. And so this goes both ways.
25:55 goes into that idea of the memory palace. Right. I think it's an external memory palace. You're not
25:59 constructing it, but it's kind of there. It's made for you. It's made for you in the story. Yeah. Yeah.
26:04 Yeah. And so that's sort of the introduction to the brain that we've got short-term memory. We've got
26:09 long-term memory. Our brain forgets things as we bring things back. We enhance those. And you can do
26:16 things like if I'm in a different location, if I'm studying in a different location than I learned,
26:21 my brain is going to now associate this new location with the information and that strengthens
26:27 the information as well. So very, very interesting.
26:30 Do you try to go when you're learning, especially when you're learning something or you're researching
26:34 or working on something, do you try to work in different locations, you know, sans COVID, right?
26:38 Like forget that you can't go anywhere, but imagine like for me, I go to coffee shops and libraries
26:45 and parks and just to try to mix up the environment a little bit.
26:49 Yeah. And so I've seen both takes on this. One is having a dedicated environment. That's like
26:55 no distractions. When I'm in this environment, that's my work environment. But also the research
27:02 tells us that if you can mix up the environment, the mixing up is actually good because those different
27:10 environmental factors, it strengthen the memory or the idea in your brain.
27:16 Yeah. Let's talk about distractions for a little bit. Okay.
27:18 It's probably a good idea to have like Instagram, Twitter, Facebook, all those things, like every
27:24 website I've visited popping up notifications all the time. Yeah.
27:27 Outlook is really good as well to have a pop-up for every email.
27:30 Yeah. I mean, one thing that is not good for work and a lot of what we do or a lot of knowledge work
27:39 is pretty intensive. And I think a lot of people are drawn to software because it requires them to be
27:46 creative and be able to create things sort of on their own. I mean, I think that's one of the things
27:51 that drew me initially is that you're basically given like, here's a whiteboard, you can do whatever
27:56 you want with it, right? The idea of creativity, but constantly being pinged with Slack or notifications
28:04 or social media, these things, I mean, these are engineered and they're engineered knowing how we
28:10 work to interrupt us and to get us addicted to them. Right. But that constant interruption is actually
28:16 very detrimental to our learning.
28:19 Yeah. I think a lot of deep technical work, not just programming, but especially programming is we have
28:26 to construct the thing that we're trying to invent. We're trying to create the software or algorithm or whatever.
28:32 We've got to build it in our mind and hold it in our mind and then like get it out into software or into
28:41 some kind of theory or something. And so it's only for a while existing in the mind. And if it gets shaken
28:48 out of your conscious for a moment, right, you've got to put it back in. And if it doesn't, if you forget some of it
28:54 or it kind of falls apart, theoretically, it's bad.
28:57 Yeah. The idea that people can multitask is sort of a lie. And anyone who's claiming that, I don't know what
29:05 they're trying to sell you, but they're just, people just aren't as productive when they're trying to
29:09 multitask.
29:10 Yeah. I mean, I guess it depends on what you're, if you're multitasking, making flipping hamburgers and
29:16 making the fries, like probably you can do that just fine. Right. But if you're trying to multitask,
29:20 optimizing an algorithm with like chatting on Twitter is probably not the best.
29:26 Yeah. Yeah. I mean, on that, maybe we could talk a little bit about what I've have listed as sort of
29:33 the four parts of creativity or work and sort of jump into that topic a little bit.
29:38 Yeah, absolutely. Let's do, let me though, ask you, what do you do for your, just before we move on,
29:41 what do you do for your like notifications and like your phone? Is there anything that you do to make it
29:47 less of an interruption for you?
29:49 Yeah. So I basically turned off all notifications except for email on my phone. I probably should turn
29:56 off email, but I also try when I'm working on something and I want to be focused on something,
30:02 I'll put my phone in a different location. Right. So it's not even there to distract me. And,
30:09 or I mean, and it might just be putting it behind me, putting it on a desk on the side,
30:15 just so it's not in my side. I'm like, I look at my phone, I'm like, Oh, I need to check it. Right.
30:19 I mean, there's sort of a response mechanism there.
30:22 Yeah. Yeah. It needs my attention. It's someone to me.
30:24 Yeah. Yeah. For me, I turn off basically all desktop notifications. Like I have no
30:30 social media pop-up. I have zero email pop-ups.
30:33 Yeah.
30:34 Only pop-ups on my computer, I believe are around calendars because I need those like in 10 minutes,
30:40 you got to do this. I don't care if it interrupts you, you got a meeting. But other than that,
30:43 like I've turned them all off. I should be better with my phone, honestly, that you've got a good
30:48 example there, but on the computer, it's like, yeah. Or if Slack, I realized a lot of people do
30:53 work through Slack, but like I don't install the Slack app. If I need to use Slack, then sort of
30:59 have a certain time when I can check into Slack. I think a lot of people's work environments are sort
31:06 of stifling them as far as their work in that we always want you to be available. And I think that's
31:13 not a good thing in that once, and I think most people realize this is, is if you're working on
31:20 something hard, it takes time to get into that. Like you said, and if you have this idea in your
31:24 mind and now you finally are working on it and then all of a sudden, bam, Slack comes in or whatever
31:29 notification pops up and like, oh, I need to deal with that because we've been conditioned that anytime
31:34 something comes up on Slack or whatever notification, that's the highest priority. When in fact, it's not the
31:41 highest priority and it's actually slowing us down and making us less productive to have those
31:46 notifications there.
31:47 Yeah. I feel like systems like Slack or Teams or whatever, I really dislike them. I mean, I think
31:54 they're neat for communities. I don't know why people think they're amazing for work because
31:59 there are just so many micro interruptions constantly. And then the fact, like if somebody sends me an email,
32:07 okay, I've got my email is a mess. And if anyone out there is waiting for a response for me, I've been
32:11 working on it. I'm sorry. But at least it stays in my inbox. Like Slack is a little bit like Twitter
32:17 that the stuff flies by. And if I don't get on it, I'm going to miss it. So it's like Twitter that you
32:22 can't ignore. Yeah.
32:23 To me. And it's just, it's sort of brings together a lot of these. I know it's great that you can just
32:28 jump on and quickly get something from somebody, but what have you done to that somebody by trying
32:32 to quickly just get that response, right? It feels like we're just going to bring everyone down in sort
32:37 of their, their deep work so that we can have faster response time, which it depends on what kind of work
32:42 you're doing, but I don't know that that's a good trade-off.
32:44 Yeah. So, I mean, to put it into like computer terms, like constantly context switching, right?
32:49 If you never are able to work on it, you're just constantly context switching,
32:53 not the scheduler you want on your computer.
32:57 Yeah, exactly.
32:59 This portion of Talk Python To Me is sponsored by Linode. Simplify your infrastructure and cut
33:05 your cloud bills in half with Linode's Linux virtual machines. Develop, deploy, and scale your
33:10 modern applications faster and easier. Whether you're developing a personal project or managing
33:15 large workloads, you deserve simple, affordable, and accessible cloud computing solutions.
33:20 As listeners of Talk Python To Me, you'll get a $100 free credit. You can find all the details at
33:26 talkpython.fm/Linode. Linode has data centers around the world with the same simple
33:31 and consistent pricing, regardless of location. Just choose the data center that's nearest to your
33:36 users. You'll also receive 24, 7, 365 human support with no tiers or handoffs, regardless of your plan
33:43 size. You can choose shared and dedicated compute instances, or you can use your $100 in credit on
33:49 S3 compatible object storage, managed Kubernetes clusters, and more. If it runs on Linux,
33:55 it runs on Linode. Visit talkpython.fm/Linode or click the link in your show notes,
34:01 then click that create free account button to get started.
34:03 All right, so I derailed your four parts of creativity, but I didn't want to get off this
34:09 distractions because this is like a huge deal, I think.
34:11 Yeah, it is a huge deal. And I think a lot of companies in the name of culture and have done a
34:19 disservice and that it actually impacts them the wrong way.
34:23 Yeah. I want to be clear. I think there's a place for those types of things. I think it makes sense
34:27 to say, let's set this up. So when we were ready, we could come and be part of this like group or this
34:32 community and we can contribute to it. And it creates this need. But I don't know that should
34:37 be the primary way to just constantly ping everybody all the time. Like that just seems
34:41 super detrimental. So not that it's purely bad. I just think it's like a use for the wrong thing a lot
34:47 of times. Yeah. And so to be fair, like my take on it would be like, if you had email and you're like
34:55 saying, I'm going to limit email and we're going to check email sometime in the morning and sometime
35:01 in the afternoon. Right. And then you can expect that you will get an email response, you know,
35:05 for something important that day, but it's not necessarily going to be 10 minutes after you ask.
35:10 Right. And some companies just have that same culture of, I need a response right away,
35:14 but it's just on email. Right. Which actually is worse. So I don't know. I guess it's,
35:19 there should really just be some time for deep work while we're on this before we move on.
35:24 How do you feel about Slack? Not Slack, the app, which we were just talking about, but Slack as in like,
35:29 I need to make sure that there's 10% of my time where I'm not required to be absolutely generating
35:36 closing Jira tickets or working on this thing during the sprint. But like 10% of my time where
35:42 if I find this to be interesting or I need to try two ways of doing things, you know,
35:46 like that kind of Slack.
35:47 Yeah. And like I said, the brain, when it's working, when it's working hard, it, it requires energy.
35:53 Right. And so there's only a limited amount of quote, deep work that we can do in a day.
35:59 And so the Slack is actually good. And there is an effect, and this is actually part of this creativity
36:06 or learning process, which is called the incubation effect. Yeah.
36:11 And so a lot of times you'll work on something and you'll get to an impasse. And a lot of people,
36:17 at least I've seen when they get to an impasse, that's like, okay, now it's time to double down.
36:22 I just got to keep working on it.
36:23 All right. Now I'm really going to bang my head against this problem.
36:26 Yeah. Yeah. I'm going to show how smart I am and I'm going to do that. And your brain has a great way
36:32 of like making connections and rearranging your thoughts when you allow it. And so there's this
36:39 effect called the Zygernick effect. Zygernick. I'm probably pronouncing that wrong, but the study
36:45 came out that a waitress could remember orders better if the orders were not complete. But as soon as the
36:53 orders were complete, they forgot them. And so if you want to sort of apply this technique, you can in
36:59 that as soon as you get to an impasse, rather than powering through it, stop and let your brain relax,
37:04 go on a walk. I mean, my experience has been a lot of times I've woken up at like in the middle of the
37:09 night or in the morning and I'm like, oh, I know what that bug is. Right. Yeah. And yeah, your brain
37:15 has that ability. It's the, I solved it in the shower sort of thing. Yeah. Yeah, exactly. And so you can
37:22 power through it, right. And stay up all night and try and power through it. Or you can go on a walk or go to
37:27 sleep. Another common thing. And as much as we talk about, like, don't interrupt people, but rubber
37:34 ducking is a similar thing where if you can, and rubber ducking for those who don't know it, there's
37:39 a book called pragmatic programmers that suggests you have a rubber duck sitting at your desk. And then
37:44 when you get to a problem or an impasse, what you do is you pick up the duck and you literally talk to
37:50 the duck and you explain what's going on. And because you're using a different part of your brain, like you're
37:56 vocalizing it and you're explaining it actually makes these different connections in your brain. And a lot of
38:03 times, if you haven't heard of rubber ducking, but you've probably heard of like going over to a colleague and
38:07 explaining to them your issue. And then like in the middle of explaining them, you're like, oh, never mind. I figured it
38:11 out. Right. Yeah, exactly. So these are all examples of what you would say slack or the literature calls
38:18 incubation, where literally giving yourself that ability to have breaks is super useful. And if you
38:26 look at a bunch of studies about super creative people, a lot of them, they go on a walk in the
38:32 forest every day. Right. Or yeah, yeah, they're productive. Like Einstein talked about that quite
38:37 a bit, I think. Yeah. But they also have downtime. Yep. I saw on Twitter, someone posted a message,
38:44 somebody learning to code system like, I know I've been told or I heard that I'm supposed to take a
38:49 break when I'm learning to code. So what schedule should I set myself on? Do I take a break every 30
38:54 minutes, every 45 minutes? And to me, I thought that was really interesting. I didn't know this person.
38:59 So I really feel like getting involved because my inbox already needs a lot of responses. I don't
39:03 need to start more threads. But to me, it feels like it's a completely the wrong trigger. Like time
39:08 shouldn't be the trigger. It should be, I'm going to sit here, I'm going to work. And if you're just,
39:12 you really like suppose you're studying object or new program and you're making connections and it's
39:16 working well, like just keep going. Yeah. Right. If like you're just really on fire, just keep going.
39:21 But all this, you know, if you're stuck and it's super frustrating, you can't make, then you take the
39:25 breaks. I mean, put aside whether you should take a break from typing for RSI issues.
39:29 But for learning issues, it feels to me like more like this incubation should be the thing that tells
39:36 you to take a break, not the every 27 minutes I'm on a schedule to walk for three.
39:41 Yeah. And some of that might be like Pomodoro. Yeah.
39:44 The notion of the Pomodoro, which I think is great for people who have like, I just need to do this and
39:50 I know I'm going to get distracted. So I'm going to set a timer and work on it for 25 minutes. Right.
39:55 Yeah. I've a lot of times used a different biological technique and that I would have a large cup of
40:01 water and just drink it. And then when nature called, I'm like, okay, it's time for a break. Right.
40:07 Yeah, exactly. That's pretty good.
40:08 But I agree with you. Like the notion that like, I need to take a break every 30 minutes or 40 minutes,
40:14 you're reading too much into like the optimal standing desk sitting split there. Right. I mean,
40:21 I think if you're having deep work and you feel like you're in a flow and time just going by,
40:27 like I wouldn't interrupt that just for the sake of like interrupting it. Right.
40:31 Exactly. You know, some of the absolute best times I've learned stuff and this could be programming or
40:37 it could be just studying chemistry or math or whatever it was I was doing is that time where
40:42 you're, you're focused on something and you're working on it. You're like, how is it dark? Like,
40:46 yeah. And why am I so hungry all of a sudden? Like, you know, you just got into it and you were just
40:51 consumed in, in that world. And then something broke you out of it. Right. Like it's that deep flow
40:57 sort of feeling and that's magical. So to me, it seems like that seems if that's going, don't mess
41:03 with that. Don't interrupt that. I mean, if it's going well, don't interrupt that. But to come up
41:07 with arbitrary, you have to do this and you have to take breaks at every 26 minutes and 15 seconds
41:14 seems like they're missing something. Yeah. Yeah. I'm not only, you can only express so much in a tweet,
41:20 but that's, that was what I, I've been accused of not having a nuanced tweet myself, but it's a tweet.
41:27 I'm sorry. That's how it looks. So, let's talk about some, some things that people can do
41:32 for like when they're studying and they're learning something new, some of the techniques and tips for
41:38 making stuff stick. Sure. Yeah. One that the research was pointing me at, which I wish I would
41:44 have known earlier, at least when I was in college was the notion of a bunch of studies have been done
41:51 that show that if you actually read or take a quiz or a test before you've even done any studying
41:58 of it, the person who does that is going to learn better than the person who doesn't do that.
42:03 And basically it's the notion that your brain can make these spots and sort of say, okay,
42:09 I'm going to be learning about whatever subject object oriented programming. And so I'm just going
42:15 to sort of have some buckets that are ready when this knowledge sort of drops in and it will make
42:20 the connections for them. So it's sort of like seeding, seeding your brain with information.
42:25 Yeah. It seems to me like that is sort of goes along with the reticular activating system where
42:30 that weird phenomena where like, if you are shopping for a new car and you decide I want
42:36 this kind of car, all of a sudden that car is everywhere. Yeah. Or we just got a puppy and now
42:41 all of a sudden like, you notice all the dogs, dogs. I just like notice all I'm like, Oh, there's a dog
42:46 park over. Look at that. And look at this dog. And look at those dogs are friendly. Like I mean,
42:49 I didn't hate dogs. I didn't like focus all over that. And it seems like the quiz is like, Hey,
42:55 these are the things we need your mind that lays our focus in on if it happens to find it in the
43:00 world. Yeah. Yeah. So that's one that I think is very applicable to students. I'm trying to figure
43:05 out how to like in my courses, I can do sort of quizzes beforehand for people who are independently
43:11 studying. I'd be curious as to how people can apply that. Another, probably the most powerful tip
43:17 is this notion of spaced repetition. And remember that there's that forgetting curve where basically
43:22 after two days, we've forgotten 80% of what we learned. So if you can review your material within
43:28 the one to two day timeframe, you can basically go back up to understanding the material. But what
43:35 happens with the curve is that the forgetting curve slows down. So now you're not going to forget it all
43:40 in two days. You might forget it in like four or five days, or maybe a little bit longer than that.
43:47 And so if you can revisit that material, you can keep it in your brain. And basically every time
43:55 you're accessing it in your brain, it's making stronger connections. So it's easier for your
44:00 brain to retrieve that. But also like we sort of hinted at before, if you can mix it up, whereas
44:05 you're studying it in a different place, or maybe in one of the studies I said, even said like, you should
44:11 have music going on and you should change the music and having that background is just going to tie a
44:18 different sensory portion of your brain to the information. So this is probably the most powerful
44:24 thing that students or people who want to retain information can do. And there's various tools like
44:31 Anki to basically do this for you. Or if you look at like Duolingo, those sorts of apps are basically...
44:38 Yeah, they've got a little schedule, they ping you, it's time to do your practice of this,
44:42 your basic verbs in whatever in French or whatever you're learning.
44:46 Yeah, so that's something that I think a lot of people can do one sort of, I guess, power tip on top
44:51 of that, rather than just rereading your notes, like if you've done it, something that's better than
44:57 reading your notes is rewriting your notes, or quizzing yourself on the information. And so you can
45:04 re-read and that's sort of the minimum thing to help you. But if you can quiz yourself, quizzing is
45:10 forcing you to, instead of just like putting it in the brain, it's forcing you to extract what you have
45:16 in there. Again, strengthening those connections in your brain. Rewriting them is, again, pulling
45:23 information out and then putting it back in. And it might be put in slightly differently if you rewrite or
45:30 force yourself to do these sorts of activities too.
45:33 And what do you think about taking notes as a non-student? I mean, suppose I want to learn,
45:38 say, FastAPI, and I'm going through the tutorials and I'm doing stuff.
45:42 Yeah.
45:42 It's not something that I really do a lot. I do it during conferences and talks and stuff like that.
45:48 But if I'm sort of just full, or even during like an online course, but if it's just full free
45:53 form, I'm like, oh, I'm on the website just learning how this thing's working.
45:56 Yeah.
45:56 It's not something I do. Should I?
45:58 That's a good point. So, I mean, a lot of my training is around data science and machine
46:05 learning type stuff. And I tell a lot of people, I'm like, for example, the Pandas API. The Pandas API
46:11 is super powerful. It's also super huge and can be super confusing. And it violates our Miller's
46:18 seven or plus or minus two number all over the place.
46:21 Yeah, it definitely does.
46:23 And so I tell people, okay, don't memorize it, because I think it's basically humanly impossible
46:30 to do that, even with chunking. But also don't use the website to go look it up. If you could,
46:37 so Jupyter has a great ability to pull up the documentation. Pandas documentation is actually
46:43 really good. And so rather than disrupting your flow, if you can master being able to access the
46:50 documentation in your environment, be that PyCharm or Jupyter or VS Code or whatever you're using,
46:56 you're not going to interrupt your flow as much. You're going to be a lot more productive and you're
47:00 not going to have the temptation to like, oh, I might as well check Twitter while I'm at a different web
47:05 browser. Right.
47:06 Right.
47:07 But I do think if you're just learning something new, like say you wanted to learn about like deep
47:13 learning or something and you go off and read a book on deep learning. And if you didn't take any notes
47:18 and you never typed in any code, it's going to follow that forgetting curve. And you're going to
47:24 two days later, you're going to forget most of what you read a week later. I mean, it's basically like,
47:29 eh, you read it, but it's all gone.
47:32 Yeah. Yeah. I find those, that kind of step back learning is great for the big picture.
47:37 And if I want to know what could you possibly do with say TensorFlow or what was the basic science
47:44 around say the Higgs boson, but you couldn't do a line of science by that kind of reading. Right.
47:49 So I guess it also depends on your goal, right?
47:52 Yeah. And there are the ability to make connections, right? Where if you are, you know,
47:57 a lot of data scientists are experts in their domain. And so they might be whatever, an oil and
48:04 gas expert, but then they read about deep learning and then they can do this, what's called interleaving
48:10 where, okay, they're learning about something new, but they're applying it to their area of expertise.
48:16 Like, oh yeah, I can use this to do this right now. And so.
48:20 Right. Right. I see where I would use this, like that sort of aha moment. Yeah.
48:23 Yeah. So that could be very useful, right? For picking up something new and discoveries,
48:28 right? I mean, a lot of sort of the advancements in society come from people who aren't in like the
48:36 automotive industry, right? I mean, you sort of look at like Elon Musk is not a car person per se,
48:41 right? But can push things from, I think from being an outsider and having more of a tech background
48:48 is adapting things and can have huge impacts that way. And so if you're an expert in something else,
48:56 cross pollinating those ideas with new ideas can be super powerful.
49:00 Yeah. I definitely agree on that. One more study tip, Rick, I guess I like to throw out there
49:05 that I think both of our kids have experienced is like, there's different, you mentioned songs before,
49:13 right? And one of the things that blows my mind constantly is how well you can remember lyrics and
49:21 those stories that are communicated through song. Like I can hear a song from the eighties or nineties.
49:26 I could hear like three notes. It got to the song that it starts like this, right? I can't do that for
49:31 any book I've ever read or any lecture I've ever attended. Not even close. Right. Yeah. And probably the
49:37 most insanely interesting one is the Hamilton, Hamilton, the musical, which is like an hour and
49:43 a half musical, but it's done as a rap about the founding fathers of America, which it's got a lot
49:49 of detail. Like, you know, it's got huge detail. It also has a moat. I don't know about you, but like,
49:55 for me, it's very emotional and I'm not like a rap person at all, but I'm like, I get chills,
50:00 like listening to certain songs. I'm like, so there's your brain is able to capture that. I'm
50:06 like, Oh, when I watched Hamilton, not only did I learn all this information, but I also felt this
50:11 way. I felt sadness or I felt happiness or pride or like all of these different feelings that go into
50:19 making that. And like, to your point, like you hear three notes and you're like, you know, like
50:24 five paragraphs of lyrics or whatever from that. It's so crazy. It's so crazy. And so Hamilton's
50:30 interesting. It's not that super applicable. I really love the musical, but I think it's incredibly
50:35 well done. But the reason I brought it up is when my daughter was studying biology, like the mitochondria
50:43 or cell cycles or so, I went into her room and she was like watching this rap. I can't find it again.
50:49 I found an example. It's not the same one, but they're like these teachers who are doing like
50:55 not terrible rap songs about like these technical subjects like biology and other stuff. And you know,
51:01 if someone's out there trying to learn, I would, I would give that a shot. Like it seems so effective.
51:05 So weirdly effective.
51:07 Maybe, maybe you should partner with Lin-Manuel on a Python course.
51:11 Yeah. Does, is that rap style or what's the story? I don't know.
51:15 Lin-Manuel Miranda, the guy who wrote Hamilton.
51:17 Oh yeah. Okay. Yeah. Well then we definitely should partner with him on a rap course. Like
51:21 if we could do it as a Broadway musical, think how popular Python would be.
51:24 I know. Yeah. That is super interesting. Could you encapsulate whatever course,
51:31 the new features of Python three into a rap? I bet you could.
51:34 You could, if you were skilled in both programming and I should partner with Smix,
51:38 right? Maybe he could do it.
51:40 Yeah.
51:40 He's the developers, developers, developers song. All right. Well, I think that's just
51:45 another interesting thing. It's not super practical because like there has to exist one of these like
51:50 songs about a topic, which is not that common, but.
51:53 Yeah. Yeah. I mean, if you can find a song, similarly, my kids, they love this song about
51:59 the elements of the periodic table and they know the elements of the periodic table because there's
52:04 a YouTube song that goes over it. I find it pretty annoying, but if you can leverage things
52:10 like that, that's awesome. Yeah. Yeah. That's super awesome. All right. Want to put a bow on it?
52:15 You got some takeaways for us here? Yeah. So the, I guess main idea is, is understand how your brain
52:20 works and the pros and cons to that and then leverage those things. So if you can get that big picture,
52:27 if you can get a final exam beforehand or for work, you need to make a new system that does this and this,
52:34 your brain's going to be percolating on that idea. And then you just need to sort of fill in
52:38 the gaps where you can there using different parts of your brain. We've talked about that,
52:45 like with music, but also if you have issues, rubber ducking them, telling them to someone else,
52:50 those can be super useful space repetition, super powerful for remembering things. I mean,
52:57 I'm a big one of just taking care of your body, going on walks, not trying to always be at a hundred
53:05 percent all the time. And again, the science is proving that this incubation effect is super powerful
53:11 and allows us, our brain is probably more powerful than we think can do things sort of behind the
53:16 scenes without us forcing it to do things. Yeah. I agree with that one as well. Yeah. Yeah. So
53:21 I think one more that I haven't really, we didn't really get into, but the course talks about that is
53:27 the idea of interleaving and switching things up. So if you're just doing math and you're always doing
53:32 addition, everything's going to look like an addition problem, but if you can mix it up,
53:36 you know, when to use addition, you know, when to use subtraction, maybe applied to programming.
53:41 I would say that I see a lot is a lot of people that I teach in Python. They're like, okay,
53:47 why did you write a function there? Why didn't you put that in a class? Right.
53:50 And people who come to Python from Java or C# are always thinking terms of classes everywhere.
53:57 Right. Yeah. And Python's a multi-paradomatic language. You can write it in a imperative
54:02 style. You can write it in an object oriented style. You can even do functional programming with Python.
54:07 And so if you don't know about those different styles of programming, you only know about object
54:12 oriented program. You're always going to be looking to make classes, which Python can do,
54:17 right. But it might not be the most effective way to do it.
54:20 So mixing things up, learning, being able to be cross pollinated, that can be useful as well.
54:25 Super cool. Well, this is really interesting and hopefully it helps some folks learn all the new
54:30 things that we have to keep learning continuously as software developers. I mean, you made the joke
54:35 about JavaScript and I think that's actually like a legitimate criticism, but in the broader scale,
54:40 we have to keep learning, right? If you don't like learning, this is just not the place to be.
54:44 So being better at that is certainly a good skill to have.
54:47 Yeah. Yeah. And as a teacher, I feel it's my duty to be able to help people learn and maximize on those
54:54 as well. So I think it goes both ways.
54:56 Yeah. So you want to give away a copy of your course?
54:59 Yeah. Yeah. Let's give away a copy of my course.
55:03 Yeah. So I'll pick, I'll just, if people are on the mailing list for the podcast, which is just being a
55:10 friend of the show. So they go to talkpython.fm/friends. They go there. As long as they're on that
55:14 mailing list, I'm going to randomly pick one like the week after the show drops and I'll send it up.
55:19 And then I'll do one more on my store, which is mattharrison.podia.com. I'll do a coupon for 20%
55:26 off anything in the store. So we'll leave that coupon for a week after this goes live. So use the
55:32 code talkpython20, all uppercase, talkpython20 and you'll get 20% off anything in the store.
55:38 Yeah. I'll link to that in the show notes in the podcast player.
55:41 Cool.
55:42 All right. Last question. I know you've written one or two books or 15 or 20 or whatever it is now.
55:47 Like, are you working on any new books that you're willing to mention?
55:50 what books? I, I, I am.
55:56 You've been refreshing some of them. I saw you talk about like your Python notebook or something like
56:01 that. Yeah. Yeah. So Python 3.9 came out. And so I did do a tiny Python 3.9 notebook.
56:08 so that's actually on Amazon right now, if you want a physical version, but there's a
56:13 version of that in GitHub if you want. So I point that to a lot of my students. It's just a reference
56:18 for the syntax of Python 3.9. So yeah, that's most recent. I mean, I've got plans for some other one,
56:26 but nothing concrete right now.
56:28 Yeah. I'm sure like me, you've got a thousand projects on a list that you want to get to.
56:32 Yeah. Too much time, too much distractions.
56:34 Yeah, absolutely. All right. Before you get out of here, I'm going to ask you the
56:38 two questions again, favorite editor. If you're going to write some code these days.
56:41 Yeah. I mean, I'm still using Emacs and I live in Emacs most days. So.
56:47 All right, cool. Notable PyPI package that you've run across lately.
56:51 One that I'm really wanting to look into that I haven't really used in anger or disgust,
56:58 but I'm very interested in it is streamlet.
57:01 Yeah.
57:01 Which is for basically making dashboards in Python very easy. So a lot of the people in my classes
57:10 are doing analysis and Jupyter is one way to share that analysis, but having a dashboard that's a little
57:17 bit more dumbed down per se or not requiring people to execute cells can be super powerful. So I'm really
57:23 interested to check out streamlet.
57:24 Yeah. I had Adrian from streamlet on the show a while ago and it looks just super cool.
57:29 Yeah.
57:29 So another one sort of in that realm I'll throw out there for people that you,
57:34 I think would be relevant for you, Matt, is the language server protocol integration for
57:38 Jupyter Lamp, which gives you like better autocomplete, jump to definition, automatic code
57:45 completion, rename refactor stuff, all that to Jupyter notebooks. That's a pretty neat one.
57:49 That sounds cool as well. Yeah. I know that Emacs has some LSP integrations as well. So I think it's
57:57 cool that Microsoft and others are volunteer working on that and sharing that with others.
58:02 Yeah, absolutely. All right. Well, it's been great to have you here and congrats on the new course. I
58:08 think it's going to help people get a little bit more out of the time to put it into new subjects,
58:12 which is every day, all day as developers.
58:15 Yeah. Yeah. Check out the course if you're interested. And if you have feedback or I'd love
58:20 to hear other people's ideas and techniques and tools that they use as well. So cool. All right.
58:25 Well, nice chat with you as always. See you later.
58:27 See you, Mike. Thanks.
58:28 Bye.
58:28 This has been another episode of Talk Python to Me. Our guest in this episode was Matt Harrison,
58:35 and it's been brought to you by Brilliant.org and Linode. Brilliant.org encourages you to level
58:41 up your analytical skills and knowledge. Visit talkpython.fm/brilliant and get Brilliant
58:46 Premium to learn something new every day. Simplify your infrastructure and cut your cloud bills in half
58:52 with Linode's Linux virtual machines. Develop, deploy, and scale your modern applications faster
58:57 and easier. Visit talkpython.fm/Linode and click the create free account button to get started.
59:02 Want to level up your Python? If you're just getting started, try my Python jumpstart by building 10 apps
59:08 course. Or if you're looking for something more advanced, check out our new async course that digs
59:14 into all the different types of async programming you can do in Python. And of course, if you're
59:18 interested in more than one of these, be sure to check out our everything bundle. It's like a
59:22 subscription that never expires. Be sure to subscribe to the show. Open your favorite podcatcher and search
59:28 for Python. We should be right at the top. You can also find the iTunes feed at /itunes,
59:32 the Google Play feed at /play, and the direct RSS feed at /rss on talkpython.fm.
59:38 This is your host, Michael Kennedy. Thanks so much for listening. I really appreciate it.
59:43 Now get out there and write some Python code.
59:45 we'll see you next time