About Dan Bader
Dan Bader is the owner and editor in chief of Real Python and the main developer of the realpython.com learning platform. Dan has been writing code for more than 20 years and holds a master’s degree in computer science. He’s the author of Python Tricks, a best selling programming book for intermediate Python developers.
Hey, I’m Dan Bader and I help Python developers take their coding skills and productivity to the next level. I’m an independent software engineer, author, and speaker. I’ve been writing code for more than two decades—and I’d love to help you become a more proficient Python coder.
Here’s where you can find me elsewhere on the web:
I’ve also done some podcast interviews and other media appearances you can check out:
- Talk Python Podcast: Python Tricks
- Talk Python Podcast: Top 10 Real Python Articles of 2019
- Talk Python Podcast: Contributing to open source
- Talk Python Podcast: The software powering Talk Python courses and podcast
- Running in Production Podcast: Real Python Is One of the Largest Python Learning Platforms Around
- PyDev of the Week Interview on Mike Driscoll’s Blog
- Python Bytes Podcast: Dan Bader drops by and we found 30 new Python projects
- Python Bytes Podcast: All the programming LOLs
- Python Bytes Podcast: Wooey and Gooey are simple Python GUIs
- Python Bytes Podcast: Python Year in Review 2018 Edition
- JetBrains TV Interview at PyCon 2020
- Castálio Podcast: Episode 106: Dan Bader
- Podcast.__init__: Keeping Up With The Python Community For Fun And Profit with Dan Bader
Tutorials by Dan:
- New Features: Article Bookmarks, Completion Status, and Search Improvements
- Video Subtitles & Transcripts Now Available on Real Python
- Common Python Data Structures (Guide)
- The Real Python Podcast Is Here!
- Shallow vs Deep Copying of Python Objects
- Python's Instance, Class, and Static Methods Demystified
- Managing Python Dependencies (Course)
- How to Write Pythonic Loops (Course)
- Functional Programming in Python (Course)
- OOP Method Types in Python: @classmethod vs @staticmethod vs Instance Methods (Course)
- Writing Cleaner Python Code With PyLint (Course)
- Python Context Managers and the "with" Statement (Course)
- Immutability in Python (Course)
- Pythonic OOP String Conversion: .__repr__() vs .__str__() (Course)
- Emulating switch/case Statements in Python (Course)
- Using List Comprehensions Effectively (Course)
- Working With Python Virtual Environments (Course)
- Welcome to Real Python! (Course)
Tutorials Dan Contributed to:
- Python Timer Functions: Three Ways to Monitor Your Code
- Python String Formatting: Available Tools and Their Features
- Python Virtual Environments: A Primer
- Logging in Python
- Python's F-String for String Interpolation and Formatting
- Interacting With Python
- Variables in Python: Usage and Best Practices
- Using Python's pip to Manage Your Projects' Dependencies
- Lists vs Tuples in Python
- How to Install Python on Your System: A Guide
- The Walrus Operator: Python's Assignment Expressions
- Strings and Character Data in Python
- Working With JSON Data in Python
- Creating Great README Files for Your Python Projects
- Basic Data Types in Python: A Quick Exploration
- How to Get the Most Out of PyCon US
- Primer on Python Decorators
- How to Write Beautiful Python Code With PEP 8
- Operators and Expressions in Python
- Python's pathlib Module: Taming the File System
- Learn From 2022's Most Popular Python Tutorials and Courses
- 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
- Real Python at PyCon US 2022
- Python's assert: Debug and Test Your Code Like a Pro
- Python 3.10: Cool New Features for You to Try
- What Can I Do With Python?
- CPython Internals: Paperback Now Available!
- Python Basics: Paperback Now Available!
- How to Use Python: Your First Steps
- Real Python's Office Hours: Learn With Python Experts in Real Time
- Python import: Advanced Techniques and Tips
- How to Move a Django Model to Another App
- Run Python Versions in Docker: How to Try the Latest Python Release
- Getting Started With Python IDLE
- Digging Deeper Into Django Migrations
- Real Python at PyCon US 2019
- Object-Oriented Programming in Python vs Java
- The Ultimate List of Data Science Podcasts
- Django Migrations: A Primer
- Make a Location-Based Web App With Django and GeoDjango
- Splitting, Concatenating, and Joining Strings in Python
- The Best Python Books
- The Ultimate Guide to Django Redirects
- Advanced Git Tips for Python Developers
- Python Code Quality: Tools & Best Practices
- Documenting Python Code: A Complete Guide
- Python Histogram Plotting: NumPy, Matplotlib, pandas & Seaborn
- Python 3.7: Cool New Features for You to Try
- The Ultimate List of Python YouTube Channels
- Python Application Layouts: A Reference
- Itertools in Python 3, By Example
- Introduction to Python 3
- Data Classes in Python 3.7+ (Guide)
- Operator and Function Overloading in Custom Python Classes
- Python Metaclasses
- Pipenv: A Guide to the New Python Packaging Tool
- Python Modules and Packages – An Introduction
- Look Ma, No for Loops: Array Programming With NumPy
- Python Debugging With Pdb
- Introduction to Git and GitHub for Python Developers
- 11 Beginner Tips for Learning Python Programming
- Thinking Recursively in Python
- The Ultimate Guide To Speech Recognition With Python
- 4 Techniques for Testing Python Command-Line (CLI) Apps
- Python IDEs and Code Editors (Guide)
- Python Project for Beginners: Bitcoin Price Notifications
- What Is the Python Global Interpreter Lock (GIL)?
- Python Plotting With Matplotlib (Guide)
- Modern Web Automation With Python and Selenium
- Setting Up Sublime Text 3 for Full Stack Python Development
- Python Basics Exercises: Scopes (Course)
- Python Basics Exercises: Dictionaries (Course)
- Python Basics Exercises: Installing Packages With pip (Course)
- Python Basics Exercises: Lists and Tuples (Course)
- Python Basics: Lists and Tuples (Course)
- Python Basics Exercises: Functions and Loops (Course)
- Python Basics Exercises: Reading and Writing Files (Course)
- Python Basics Exercises: Strings and String Methods (Course)
- Python Basics Exercises: Modules and Packages (Course)
- Python Basics: Modules and Packages (Course)
- Python Basics Exercises: Building Systems With Classes (Course)
- Python Basics Exercises: Object-Oriented Programming (Course)
- Python Basics Exercises: Conditional Logic and Control Flow (Course)
- Python Basics: Reading and Writing Files (Course)
- Python Basics: Installing Packages With pip (Course)
- Python Basics: Object-Oriented Programming (Course)
- Python Basics Exercises: File System Operations (Course)
- Python Basics: File System Operations (Course)
- Python Basics: Dictionaries (Course)
- Python Basics: Scopes (Course)
- Python Basics: Numbers and Math (Course)
- Python Basics: Strings and String Methods (Course)
- Python Basics: Conditional Logic and Control Flow (Course)
- Python Basics: Functions and Loops (Course)
- Python Basics: Code Your First Python Program (Course)
- Stacks and Queues: Selecting the Ideal Data Structure (Course)
- Records and Sets: Selecting the Ideal Data Structure (Course)
- Dictionaries and Arrays: Selecting the Ideal Data Structure (Course)
- Arduino With Python: Getting Started (Course)
- Make a 2D Side-Scroller Game With PyGame (Course)
- Finding the Perfect Python Code Editor (Course)
- Python Modules and Packages: An Introduction (Course)
- Sorting Data With Python (Course)
- Python Dictionary Iteration: Advanced Tips & Tricks (Course)
- Documenting Code in Python (Course)
- Variables in Python (Course)
- Demystifying Python, Boto3, and AWS S3 (Course)
- KeyError Exceptions in Python and How to Handle Them (Course)
- Threading in Python (Course)
- Thinking Recursively With Python (Course)
- Cool New Features in Python 3.8 (Course)
- Python Type Checking (Course)
- Python Plotting With Matplotlib (Course)
- The Python range() Function (Course)
- Getting Started With Django: Building a Portfolio App (Course)
- Strings and Character Data in Python (Course)
- Thonny: A Beginner-Friendly Python Editor (Course)
- Debugging in Python With pdb (Course)
- Absolute vs Relative Imports in Python (Course)
- Lists and Tuples in Python (Course)
- Using Python Lambda Functions (Course)
- Histogram Plotting in Python: NumPy, Matplotlib, Pandas & Seaborn (Course)
- 11 Beginner Tips for Learning Python (Course)
- Using Dictionaries in Python (Course)
- Logging Inside Python (Course)
- Reading and Writing Files in Python (Course)
- Generating Random Data in Python (Course)
- How to Publish Your Own Python Package to PyPI (Course)
- OOP Method Types in Python: @classmethod vs @staticmethod vs Instance Methods (Course)
- Introduction to Git and GitHub for Python (Course)
- Interactive Data Visualization With Bokeh and Python (Course)
- Hands-On Python 3 Concurrency With the asyncio Module (Course)
- Idiomatic pandas: Tricks & Features You May Not Know (Course)
- Intro to Object-Oriented Programming (OOP) in Python (Course)
- Test-Driven Development With pytest (Course)
- For Loops in Python (Definite Iteration) (Course)
- Splitting, Concatenating, and Joining Python Strings (Course)
- Reading and Writing CSV Files (Course)