Learn Python with Talk Python's 270 hours of courses

Learning how to learn as a developer

Episode #293, published Tue, Dec 1, 2020, recorded Mon, Oct 19, 2020

As software developers, we live in a world of uncertainty and flux. Do you need to build a new web app? Well maybe using Django makes the most sense if you've been doing it for a long time. There is Flask, but it's more mix and match being a microframework. But you've also heard that async and await are game changers and FastAPI might be the right choice.

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

  1. 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.
  2. 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:
  3. 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)
  4. 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)
  5. 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.
  6. 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
  7. 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.
  8. 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.
  9. 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.
  10. 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:

For more on Pythonic practices and deeper skills-building, explore:

To strengthen your understanding of memory and optimization in Python:


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.

Matt on Twitter: @__mharrison__
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

Talk Python's Mastodon Michael Kennedy's Mastodon