10 Tips and Ideas for the Beginner to Expert Python Journey
The 10 tips:
* Know your goals
* Have a project in mind
* Don’t limit your learning to what’s needed for your project
* Read good code
* Know your tools
* Learn how to test your code
* Know what’s good enough for any given project
* Embrace refactoring
* Write things down
* Go meet people
Episode Deep Dive
Guests Introduction and Background
Eric Matthes is an experienced Python educator and author of Python Crash Course (No Starch Press). He taught in public schools for many years, focusing on math, science, and programming. Eric’s unique path includes watching his father program kit computers in the 1970s, studying physics, teaching students of all ages, and eventually writing one of the best-selling Python books on the market. He also writes a weekly newsletter called Mostly Python on Substack, exploring deeper technical topics and teaching Python enthusiasts of all levels.
What to Know If You're New to Python
If you’re relatively new to Python and want to get the most from this conversation, keep these essentials in mind:
- Understand that Python’s simplicity means it’s easy to learn basics quickly but there’s always more depth to explore.
- Having a small project in mind helps you apply fundamental concepts (like
for
loops or conditionals) in meaningful ways. - Expect to evolve your code as you learn. Refactoring is normal and a sign of growth.
- Big web frameworks like Django or FastAPI may feel advanced, but simple examples and personal projects will guide your learning path.
Here are a few resources to go deeper:
- Python Crash Course: Eric’s book for beginners who want a project-based way to learn Python fundamentals.
Key Points and Takeaways
- Bridging the Gap from Beginner to Expert Many people learn Python basics (variables, loops) in a short time, but reaching expertise requires deeper exploration of projects, workflows, and community practices. Python's ecosystem includes an incredible variety of tools and libraries—what distinguishes experts is the ability to apply these tools appropriately in real-world scenarios and keep refining their understanding.
- Define Your Goals
Eric stressed the importance of clarifying why you’re learning Python—be it for a career shift, to automate tasks, or simply for curiosity. Having explicit objectives will direct your energy and keep you motivated when the initial excitement tapers off.
- Links and Tools:
- Have a Project in Mind Coding is more meaningful if you apply concepts to a concrete project you care about (e.g., climate data analysis, a personal website, or an IoT gadget). This approach helps you see immediate value and guides which parts of Python you focus on first.
- Don’t Limit Learning to Your Immediate Needs
While a project provides focus, staying curious about broader Python topics (e.g., concurrency, data science tools, new syntax) will pay dividends later. This also keeps learning fun and positions you to tackle new challenges as they arise.
- Links and Tools:
- Mostly Python (Eric’s newsletter covering varied Python topics)
- Links and Tools:
- Learn How to Test Your Code
Testing is simpler than many fear. Start with end-to-end or high-level tests to ensure your application works as expected. Tools like
pytest
make this process straightforward, giving you confidence in your software and freeing you to experiment without fear of breaking everything.- Links and Tools:
- pytest
- git-sim on GitHub (project where Eric helped implement testing)
- Links and Tools:
- Embrace Refactoring
Great code rarely appears in its final form immediately. Instead, write a working version first, then refine it step by step. Python’s flexibility (and helpful testing) encourages continuous improvement rather than getting stuck on perfect designs from the outset.
- Links and Tools:
- Heroku (discussed as an easy way to deploy, then refactor for new platforms later)
- Code Smells (general concept, not Python-specific, but relevant for refactoring)
- Links and Tools:
- Read Good Code
Reading code from established open-source projects (like matplotlib or Pandas) can be intimidating, but it’s one of the best ways to see how experienced teams structure, document, and refine their code. Pay special attention to how they handle complexity and readability.
- Links and Tools:
- GitHub (huge resource for discovering open-source Python projects)
- Links and Tools:
- Know Your Tools (IDE, Version Control, etc.)
Invest time learning your editor or IDE. Tools like Visual Studio Code and PyCharm offer features like auto-formatting, linting, and built-in testing. A basic grasp of
git
and GitHub (or any version control system) will also help you collaborate and experiment confidently. - Meeting People and Community Engagement
Python’s community is famously welcoming. Attending local meetups, joining online forums, or going to bigger conferences like PyCon opens doors to collaboration, feedback, job opportunities, and long-lasting friendships.
- Links and Tools:
- PyCon US
- Local Python user groups (search your city + “Python meetup”)
- Links and Tools:
Interesting Quotes and Stories
- On Quick Learning vs. Depth: “There’s a T-shirt that jokes ‘I learned Python. It was a good weekend,’ but there’s always more to discover beyond loops and variables.”
- Growing Through Real Problems: Eric shared a story about using Python to analyze damage at a shipping company, ultimately discovering systemic issues that saved money and changed corporate policy.
- Love of Teaching: Eric talked about bridging science/math topics and programming, seeing parallels in how both require methodical thinking and clarity.
Key Definitions and Terms
- Refactoring: Improving the design of existing code without changing its functionality.
- End-to-End Testing: Testing a complete workflow (e.g., from user input to final output) rather than individual functions in isolation.
- Code Smells: Symptoms in code that might indicate deeper design problems, e.g., excessively long functions or misleading variable names.
- Virtual Environments: Isolated Python environments where dependencies are managed to prevent conflicts between projects.
Learning Resources
Here are a few places to deepen your knowledge on testing, frameworks, and beyond:
- Getting started with pytest: Learn the fundamentals of Python testing with pytest.
- Django: Getting Started: If you’re exploring Django after hearing it mentioned, start here.
- Modern APIs with FastAPI: Learn to build powerful, high-performance APIs in Python.
- Up and Running with Git: Master the practical side of Git and version control with a UI-first approach.
Overall Takeaway
Moving from a Python beginner to a confident, capable developer isn’t a simple “weekend” affair—it’s an ongoing journey of hands-on projects, understanding core fundamentals, testing and refactoring your code, and connecting with the vibrant community around you. By embracing curiosity, continuous learning, and collaboration, you’ll keep leveling up and discovering more of what makes Python such a powerful and rewarding language.
Links from the show
Mostly Python Newsletter: mostlypython.substack.com
Python Crash Course Book: nostarch.com
Watch this episode on YouTube: youtube.com
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