About Martin Breuss
Martin Breuss — Head of Content Strategy
Core Real Python team · since 2019
Martin is a Python educator with a B.Sc. in Biology and a decade of experience teaching programming with Python. He authored CodingNomads’ full three-module introductory Python course and has mentored learners through in-person bootcamps worldwide.
At Real Python, Martin leads content strategy, shaping the editorial roadmap and producing learning materials that apply pedagogical excellence and technical accuracy to practical examples. Since 2015 he has developed curricula, reviewed code, mentored learners, and spoken at meet-ups, helping newcomers stick with Python and build lasting programming confidence.
Tutorials by Martin:
- Modern Web Automation With Python and Selenium
- Python's Instance, Class, and Static Methods Demystified
- How to Join Strings in Python
- How to Split a String in Python
- Python Folium: Create Web Maps From Your Data
- How to Flush the Output of the Python Print Function
- Python News Roundup: December 2024
- Asynchronous Tasks With Django and Celery
- Basic Input and Output in Python
- How to Check if a Python String Contains a Substring
- Beautiful Soup: Build a Web Scraper With Python
- Python Virtual Environments: A Primer
- What Does if __name__ == "__main__" Do in Python?
- Interacting With Python
- Generate Images With DALL·E and the OpenAI API
- Web Scraping With Scrapy and MongoDB
- Prompt Engineering: A Practical Example
- Use ChatGPT to Learn Python Programming
- Python 3.12 Preview: Ever Better Error Messages
- Python News: What's New From January 2023
- ChatterBot: Build a Chatbot With Python
- Python News: What's New From June 2022
- Build Your Python Project Documentation With MkDocs
- Raining Outside? Build a Weather CLI App With Python
- Build and Submit HTML Forms With Django – Part 4
- Build and Handle POST Requests in Django – Part 3
- Build a Django Front End With Bulma – Part 2
- Build a Social Network With Django – Part 1
- How Long Does It Take to Learn Python?
- Your First Steps With Django: Set Up a Django Project
- Python Web Applications: Deploy Your Script as a Flask App
Courses by Martin:
- First Steps With LangChain
- Checking for Membership Using Python's "in" and "not in" Operators
- Introduction to Web Scraping With Python
- Simulate a Text File in Python
- Exercises Course: Introduction to Web Scraping With Python
- Python Basics Exercises: Lists and Tuples
- Python Basics: Lists and Tuples
- Python Basics Exercises: Strings and String Methods
- Python Basics Exercises: Building Systems With Classes
- Python Basics Exercises: Object-Oriented Programming
- Python Basics Exercises: Conditional Logic and Control Flow
- Check if a Python String Contains a Substring
- Python Basics Exercises: File System Operations
- Python Basics: File System Operations
- Python Basics: Finding and Fixing Code Bugs
- Combining Data in pandas With concat() and merge()
- Exploring Scopes and Closures in Python
- Raising and Handling Python Exceptions
- Reading Input and Writing Output in Python
- Writing Idiomatic Python
- Graph Your Data With Python and ggplot
- Using sleep() to Code a Python Uptime Bot
- How to Set Up a Django Project
- Web Scraping With Beautiful Soup and Python
- Finding the Perfect Python Code Editor
- Variables in Python
- Getting Started With Django: Building a Portfolio App
- Using Jupyter Notebooks
Tutorials Contributed to by Martin:
- Managing Python Projects With uv: An All-in-One Solution
- Using Python's .__dict__ to Work With Attributes
- How to Strip Characters From a Python String
- LangGraph: Build Stateful AI Agents in Python
- Python for Loops: The Pythonic Way
- Build a Dice-Rolling Application With Python
- Top Python Game Engines
- Python & APIs: A Winning Combo for Reading Public Data
- A Guide to Modern Python String Formatting Tools
- Natural Language Processing With spaCy in Python
- Providing Multiple Constructors in Your Python Classes
- Split Your Dataset With scikit-learn's train_test_split()
- How to Split a Python List or Iterable Into Chunks
- Python's "in" and "not in" Operators: Check for Membership
- Python's Mutable vs Immutable Types: What's the Difference?
- Python's zipfile: Manipulate Your ZIP Files Efficiently
- Lists vs Tuples in Python
- Python's raise: Effectively Raising Exceptions in Your Code
- Getters and Setters: Manage Attributes in Python
- Python Constants: Improve Your Code's Maintainability
- Understanding the Python Mock Object Library
- NumPy's max() and maximum(): Find Extreme Values in Arrays
- Python's min() and max(): Find Smallest and Largest Values
- Python's assert: Debug and Test Your Code Like a Pro
- Variables in Python: Usage and Best Practices
- How to Write Beautiful Python Code With PEP 8
- Python's pathlib Module: Taming the File System
- Python's urllib.request for HTTP Requests
- Inheritance and Composition: A Python OOP Guide
- Working With JSON Data in Python
- How to Flatten a List of Lists in Python
- A Practical Introduction to Web Scraping in Python
- Basic Data Types in Python: A Quick Exploration
- Dependency Management With Python Poetry
- Object-Oriented Programming (OOP) in Python
- Python's property(): Add Managed Attributes to Your Classes
- Using and Creating Global Variables in Your Python Functions
- Python Exceptions: An Introduction
- Python's F-String for String Interpolation and Formatting
- How to Iterate Through a Dictionary in Python
- Python Thread Safety: Using a Lock and Other Techniques
- Functional Programming in Python: When and How to Use It
- Python Sequences: A Comprehensive Guide
- Python's unittest: Writing Unit Tests for Your Code
- Write Unit Tests for Your Python Code With ChatGPT
- Build a Blog Using Django, GraphQL, and Vue
- Reading and Writing WAV Files in Python
- Model-View-Controller (MVC) in Python Web Apps: Explained With Lego
- Build an LLM RAG Chatbot With LangChain
- Python's __all__: Packages, Modules, and Wildcard Imports
- Python's Requests Library (Guide)
- Python's Format Mini-Language for Tidy Strings
- Single and Double Underscores in Python Names
- Embeddings and Vector Databases With ChromaDB
- JupyterLab for an Enhanced Notebook Experience
- Boost Your Coding Productivity With Ptpython
- Python's tuple Data Type: A Deep Dive With Examples
- Python 3.12: Cool New Features for You to Try
- Python 3.12 Preview: Subinterpreters
- Working With the Python operator Module
- Python's list Data Type: A Deep Dive With Examples
- Unlock IPython's Magical Toolbox for Your Coding Journey
- How to Make Engaging Programming Videos
- What's the Zen of Python?
- Using the NumPy Random Number Generator
- Build Your Own Face Recognition Tool With Python
- Using NumPy reshape() to Change the Shape of an Array
- The Terminal: First Steps and Useful Commands
- Python REST APIs With Flask, Connexion, and SQLAlchemy – Part 3
- Python REST APIs With Flask, Connexion, and SQLAlchemy – Part 2
- Python REST APIs With Flask, Connexion, and SQLAlchemy – Part 1
- Should You Update to the Latest Python Bugfix Version?
- Python 3.11: Cool New Features for You to Try
- Python News: What's New From September 2022
- How to Add Python to PATH
- When Do You Use an Ellipsis in Python?
- How Can You Install a Pre-Release Version of Python?
- GitHub Copilot: Fly With Python at the Speed of Thought
- Build a Flashcards App With Django
- Real Python at PyCon US 2022
- Combining Data in pandas With merge(), .join(), and concat()
- Build a Site Connectivity Checker in Python
- Manage Your To-Do Lists Using Python and Django
- Modulo String Formatting in Python
- Python Zip Imports: Distribute Modules and Packages Quickly
- Prettify Your Data Structures With Pretty Print in Python
- Advanced Visual Studio Code for Python Developers
- Build a Command-Line To-Do App With Python and Typer
- Build a Content Aggregator in Python
- Django Templates: Implementing Custom Tags and Filters
- Representing Rational Numbers With Python Fractions
- Hosting a Django Project on Heroku
- What Can I Do With Python?
- Python Packages: Five Real Python Favorites
- Python IDEs and Code Editors (Guide)
Courses Contributed to by Martin:
- Python Continuous Integration and Deployment Using GitHub Actions
- Getting to Know Duck Typing in Python
- Creating a Scalable Flask Web Application From Scratch
- Ways to Start Interacting With Python
- Documenting Python Projects With Sphinx and Read the Docs
- Differences Between Python's Mutable and Immutable Types
- Customizing VS Code Through Color Themes
- Sorting Dictionaries in Python: Keys, Values, and More
- Customize VS Code Settings
- Python Basics Exercises: Scopes
- Finding Python Easter Eggs
- Creating Asynchronous Tasks With Celery and Django
- Python Basics Exercises: Functions and Loops
- HTTP Requests With Python's urllib.request
- Advent of Code: Solving Puzzles With Python
- Python Basics: Modules and Packages
- Python Basics Exercises: Numbers and Math
- Replacing a String in Python
- What Does if __name__ == "__main__" Mean in Python?
- Creating Web Maps From Your Data With Python Folium
- Python Basics: Reading and Writing Files
- Python Basics: Installing Packages With pip
- Check if a Python String Contains a Substring
- Using the Terminal on Windows
- Using the Terminal on Linux
- Using the Terminal on macOS
- Python Basics: Dictionaries
- Refactoring: Prepare Your Code to Get Help
- Python Basics: Scopes
- Python Basics: Strings and String Methods
- Building Python Project Documentation With MkDocs
- Python Basics: Conditional Logic and Control Flow
- Python Basics: Functions and Loops
- Exploring Special Function Parameters
- Write and Test a Python Function: Interview Practice
- Data Cleaning With pandas and NumPy
- Python REST APIs With FastAPI
- Looping With Python enumerate()
- Deploy Your Python Script on the Web With Flask
- Host Your Django Project on Heroku
- Building a Neural Network & Making Predictions With Python AI
- Reading Input and Writing Output in Python
- Exploring the Python math Module
- The pandas DataFrame: Working With Data Efficiently
- How to Set Up a Django Project
- Web Scraping With Beautiful Soup and Python
- OOP Method Types in Python: @classmethod vs @staticmethod vs Instance Methods
- Working With Python Virtual Environments
Podcast Episodes Featuring Martin:
- The Real Python Podcast – Episode #234: Building New Structures for Learning Python
- The Real Python Podcast – Episode #107: Type-Safe ORM With Prisma Client & Real Python at PyCon US 2022
- The Real Python Podcast – Episode #94: Designing for Users and Building a Social Network With Django
- The Real Python Podcast – Episode #91: 2021 Real Python Articles Wrap Up
- The Real Python Podcast – Episode #79: Measuring Your Python Learning Progress
- The Real Python Podcast – Episode #48: Stochastic Gradient Descent and Deploying Your Python Scripts on the Web
- The Real Python Podcast – Episode #4: Learning Python Through Errors