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