Joanna is the Executive Editor of Real Python. She loves natural languages just as much as she loves programming languages!
Her love for puzzles, patterns, and pesky little details led her to follow a career in translation. It was only a matter of time before she would fall in love with a new language: Python!
She is a fiend for information and loves to compile and condense it in a way that meets the needs of the target audience.
When she isn’t at her desk, she enjoys exploring the beautiful city of Vancouver on foot, laughing with her pub trivia team, and experimenting with seitan recipes.
Tutorials by Joanna:
- The Python range() Function (Guide)
- Python 3's f-Strings: An Improved String Formatting Syntax (Guide)
Tutorials Joanna Contributed to:
- New Features: Article Bookmarks, Completion Status, and Search Improvements
- Python and MongoDB: Connecting to NoSQL Databases
- Brython: Python in Your Browser
- Python & APIs: A Winning Combo for Reading Public Data
- Functional Programming in Python: When and How to Use It
- Pandas Sort: Your Guide to Sorting Data in Python
- Python Microservices With gRPC
- Python Inner Functions: What Are They Good For?
- Qt Designer and Python: Build Your GUI Applications Faster
- Python Web Applications: Deploy Your Script as a Flask App
- Stochastic Gradient Descent Algorithm With Python and NumPy
- How to Use Python: Your First Steps
- C for Python Programmers
- Make Your First Python Game: Rock, Paper, Scissors!
- Sentiment Analysis: First Steps With Python's NLTK Library
- NumPy Tutorial: Your First Steps Into Data Science in Python
- Develop Data Visualization Interfaces in Python With Dash
- Python's .append(): Add Items to Your Lists in Place
- Python and MySQL Database: A Practical Introduction
- Use PyQt's QThread to Prevent Freezing GUIs
- The pass Statement: How to Do Nothing in Python
- What Is Data Engineering and Is It Right for You?
- Bitwise Operators in Python
- Real Python's Office Hours: Learn With Python Experts in Real Time
- Handling SQL Databases With PyQt: The Basics
- np.linspace(): Create Evenly or Non-Evenly Spaced Arrays
- PyQt Layouts: Create Professional-Looking GUI Applications
- Split Your Dataset With scikit-learn's train_test_split()
- Python enumerate(): Simplify Looping With Counters
- Python and PyQt: Creating Menus, Toolbars, and Status Bars
- PyPy: Faster Python With Minimal Effort
- Use Sentiment Analysis With Python to Classify Movie Reviews
- Caching in Python Using the LRU Cache Strategy
- Fourier Transforms With scipy.fft: Python Signal Processing
- Get Started With Django Part 3: Django View Authorization
- Python Modulo in Practice: How to Use the % Operator
- Level Up Your Skills With the Real Python Slack Community
- Python Booleans: Optimize Your Code With Truth Values
- Data Management With Python, SQLite, and SQLAlchemy
- Using ggplot in Python: Visualizing Data With plotnine
- Python Community Interview With Anthony Shaw
- Python 3.9: Cool New Features for You to Try
- Python's map(): Processing Iterables Without a Loop
- The Python return Statement: Usage and Best Practices
- Python Community Interview With David Amos
- Python Practice Problems: Get Ready for Your Next Interview
- Numbers in Python
- Plot With Pandas: Python Data Visualization for Beginners
- Find & Fix Code Bugs in Python: Debug With IDLE
- PyTorch vs TensorFlow for Your Python Deep Learning Project
- Python 3 Installation & Setup Guide
- Common Python Data Structures (Guide)
- Python mmap: Improved File I/O With Memory Mapping
- Data Version Control With Python and DVC
- A Practical Introduction to Web Scraping in Python
- Python Community Interview With Bruno Oliveira
- Pass by Reference in Python: Background and Best Practices
- What Are Python Wheels and Why Should You Care?
- Customize the Django Admin With Python
- Namespaces and Scope in Python
- Generative Adversarial Networks: Build Your First Models
- Python Packages: Five Real Python Favorites
- K-Means Clustering in Python: A Practical Guide
- Pandas Project: Make a Gradebook With Python & Pandas
- Learn IP Address Concepts With Python's ipaddress Module
- Python import: Advanced Techniques and Tips
- Object-Oriented Programming (OOP) in Python 3
- Get Started With Django Part 2: Django User Management
- Python's reduce(): From Functional to Pythonic Style
- The Python heapq Module: Using Heaps and Priority Queues
- Hands-On Linear Programming: Optimization With Python
- PySimpleGUI: The Simple Way to Create a GUI With Python
- Python Keywords: An Introduction
- SettingWithCopyWarning in Pandas: Views vs Copies
- Python Community Interview With Kattni Rembor
- Regular Expressions: Regexes in Python (Part 2)
- Build Physical Projects With Python on the Raspberry Pi
- How to Write an Installable Django App
- Create and Modify PDF Files in Python
- Python Community Interview With Russell Keith-Magee
- Python vs JavaScript for Pythonistas
- Python Community Interview With Christopher Bailey
- Python eval(): Evaluate Expressions Dynamically
- How to Move a Django Model to Another App
- Using Python datetime to Work With Dates and Times
- Regular Expressions: Regexes in Python (Part 1)
- The Python pickle Module: How to Persist Objects in Python
- The Pandas DataFrame: Make Working With Data Delightful
- Effective Python Testing With Pytest
- Sorting Algorithms in Python
- Combining Data in Pandas With merge(), .join(), and concat()
- How to Provide Test Fixtures for Django Models in Pytest
- How to Make an Instagram Bot With Python and InstaPy
- Linked Lists in Python: An Introduction
- How to Use any() in Python
- SimPy: Simulating Real-World Processes With Python
- The Python math Module: Everything You Need to Know
- Python Scope & the LEGB Rule: Resolving Names in Your Code
- How to Do a Binary Search in Python
- Using the Python defaultdict Type for Handling Missing Keys
- Defining Your Own Python Function
- Alexa Python Development: Build and Deploy an Alexa Skill
- Python Bindings: Calling C or C++ From Python
- The Beginner's Guide to Python Turtle
- Introduction to Python SQL Libraries
- Null in Python: Understanding Python's NoneType Object
- A Guide to the Newer Python String Format Techniques
- Python Community Interview With Brett Slatkin
- Implementing an Interface in Python
- Python Command Line Arguments
- Use a Flask Blueprint to Architect Your Applications
- Python '!=' Is Not 'is not': Comparing Objects in Python
- Python Community Interview With Kelly and Sean of Teaching Python
- Python GUI Programming With Tkinter
- Scientific Python: Using SciPy for Optimization
- Arcade: A Primer on the Python Game Framework
- Logistic Regression in Python
- Exploring HTTPS With Python
- Using Pandas and Python to Explore Your Dataset
- Python Timer Functions: Three Ways to Monitor Your Code
- NumPy, SciPy, and Pandas: Correlation With Python
- Run Python Versions in Docker: How to Try the Latest Python Release
- Python Statistics Fundamentals: How to Describe Your Data
- Data Engineer Interview Questions With Python
- MicroPython: An Intro to Programming Hardware in Python
- Beautiful Soup: Build a Web Scraper With Python
- Pandas: How to Read and Write Files
- Python Descriptors: An Introduction
- Python Community Interview With Brian Okken
- Invalid Syntax in Python: Common Reasons for SyntaxError
- Pandas GroupBy: Your Guide to Grouping Data in Python
- Getting Started With Python IDLE
- PyCon Africa 2019 (Recap)
- When to Use a List Comprehension in Python
- Build a Mobile Application With the Kivy Python Framework
- Python REST APIs With Flask, Connexion, and SQLAlchemy – Part 4
- Python Community Interview With Al Sweigart
- Python and PyQt: Building a GUI Desktop Calculator
- Arduino With Python: How to Get Started
- Python sleep(): How to Add Time Delays to Your Code
- Cool New Features in Python 3.8
- Emacs: The Best Python Editor?
- Building a Python C Extension Module
- Using the Python zip() Function for Parallel Iteration
- Preventing SQL Injection Attacks With Python
- How to Use Generators and yield in Python
- Getting Started With Async Features in Python
- How to Convert a Python String to int
- PyGame: A Primer on Game Programming in Python
- Python vs C++: Selecting the Right Tool for the Job
- MATLAB vs Python: Why and How to Make the Switch
- Python args and kwargs: Demystified
- Natural Language Processing With spaCy in Python
- PyCharm for Productive Python Development (Guide)
- A Guide to Excel Spreadsheets in Python With openpyxl
- Your Guide to the CPython Source Code
- How to Make a Discord Bot in Python
- An Effective Python Environment: Making Yourself at Home
- Your Guide to the Python print() Function
- Inheritance and Composition: A Python OOP Guide
- What You Need to Know to Manage Users in Django Admin
- First Steps With PySpark and Big Data Processing
- Understanding the Python Traceback
- Digging Deeper Into Django Migrations
- NumPy arange(): How to Use np.arange()
- Create a Flask Application With Google Login
- Real Python at PyCon US 2019
- Build a Recommendation Engine With Collaborative Filtering
- The Python Square Root Function
- How to Use the Python or Operator
- How to Use Redis With Python
- Python Community Interview With Katrina Durance
- Basic Input, Output, and String Formatting in Python
- How to Use Python Lambda Functions
- Python Community Interview With Marlene Mhangami
- How to Build Command Line Interfaces in Python With argparse
- How to Make a Twitter Bot in Python With Tweepy
- How to Implement a Python Stack
- Object-Oriented Programming in Python vs Java
- Pointers in Python: What's the Point?
- How to Iterate Through a Dictionary in Python
- Python Logging: A Stroll Through the Source Code
- Unicode & Character Encodings in Python: A Painless Guide
- Three Ways of Storing and Accessing Lots of Images in Python
- Playing and Recording Sound in Python
- Python Community Interview With Bob and Julian of PyBites
- How to Use sorted() and sort() in Python
- Defining Main Functions in Python
- How to Get the Most Out of PyCon
- Python KeyError Exceptions and How to Handle Them
- A Beginner’s Guide to the Python time Module
- How to Work With a PDF in Python
- Linear Regression in Python
- How to Create an Index in Django Without Downtime
- Python REST APIs With Flask, Connexion, and SQLAlchemy – Part 3
- What Is Pip? A Guide for New Pythonistas
- Get Started With Django Part 1: Build a Portfolio App
- How to Stand Out in a Python Coding Interview
- An Intro to Threading in Python
- 13 Project Ideas for Intermediate Python Developers
- How to Build a Python GUI Application With wxPython
- Understanding the Python Mock Object Library
- Managing Multiple Python Versions With pyenv
- Using PyInstaller to Easily Distribute Python Applications
- Refactoring Python Applications for Simplicity
- Traditional Face Detection With Python
- Python Community Interview With Ali Spittel
- Reading and Writing Files in Python (Guide)
- How to Run Your Python Scripts
- Supercharge Your Classes With Python super()
- The Factory Method Pattern and Its Implementation in Python
- The Ultimate List of Data Science Podcasts
- Python Development in Visual Studio Code
- Python "for" Loops (Definite Iteration)
- Jupyter Notebook: An Introduction
- Python’s Requests Library (Guide)
- Working With Files in Python
- Async IO in Python: A Complete Walkthrough
- Speed Up Your Python Program With Concurrency
- Django Migrations: A Primer
- Python Type Checking (Guide)
- Modeling Polymorphism in Django With Python
- Python Community Interview With Corey Schafer
- Make a Location-Based Web App With Django and GeoDjango
- How to Write Beautiful Python Code With PEP 8
- A Pythonista's Holiday Wish List
- Thonny: The Beginner-Friendly Python Editor
- Python Community Interview With Brian Peterson
- Sending Emails With Python
- Building Serverless Python Apps Using AWS Chalice
- Python Community Interview With Emily Morehouse
- Continuous Integration With Python: An Introduction
- Memory Management in Python
- Interactive Data Visualization in Python With Bokeh
- Python Community Interview With Kenneth Reitz
- How to Publish an Open-Source Python Package to PyPI
- Python "while" Loops (Indefinite Iteration)
- Writing Comments in Python (Guide)
- Setting Up Python for Machine Learning on Windows
- Python Community Interview With Michael Kennedy
- Practical Text Classification With Python and Keras
- Getting Started With Testing in Python
- Python, Boto3, and AWS S3: Demystified
- Python Community Interview With Mike Grouchy
- How to Round Numbers in Python
- Python REST APIs With Flask, Connexion, and SQLAlchemy – Part 2
- Splitting, Concatenating, and Joining Strings in Python
- Image Segmentation Using Color Spaces in OpenCV + Python
- Python Community Interview With Mahdi Yusuf
- Absolute vs Relative Imports in Python
- Top 10 Must-Watch PyCon Talks
- Logging in Python
- The Best Python Books
- Conditional Statements in Python
- Python Program Lexical Structure
- Python Pandas: Tricks & Features You May Not Know
- Python Community Interview With Mariatta Wijaya
- Primer on Python Decorators
- Sets in Python
- The Ultimate Guide to Django Redirects
- Advanced Git Tips for Python Developers
- Python Community Interview With Mike Driscoll
- Dictionaries in Python
- Socket Programming in Python (Guide)
- Python Code Quality: Tools & Best Practices
- Documenting Python Code: A Complete Guide
- Fast, Flexible, Easy and Intuitive: How to Speed Up Your Pandas Projects
- Lists and Tuples in Python
- Reading and Writing CSV Files in Python
- Generating Random Data in Python (Guide)
- Strings and Character Data in Python
- Python String Formatting Best Practices
- Python Histogram Plotting: NumPy, Matplotlib, Pandas & Seaborn
- Cool New Features in Python 3.7
- What Can I Do With Python?
- Operators and Expressions in Python
- The Ultimate List of Python YouTube Channels
- Variables in Python
- Python REST APIs With Flask, Connexion, and SQLAlchemy
- Basic Data Types in Python
- Python Application Layouts: A Reference
- Itertools in Python 3, By Example
- Interacting With Python
- Introduction to Python 3
- Data Classes in Python 3.7+ (Guide)
- Operator and Function Overloading in Custom Python Classes
- Pure Python vs NumPy vs TensorFlow Performance Comparison
- Python Metaclasses
- Python Exceptions: An Introduction
- Pipenv: A Guide to the New Python Packaging Tool
- Python 3's pathlib Module: Taming the File System
- Python Modules and Packages – An Introduction
- Working With JSON Data in Python
- 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
- Pythonic Data Cleaning With Pandas and NumPy
- 4 Techniques for Testing Python Command-Line (CLI) Apps
- Python IDEs and Code Editors (Guide)
- Modern Web Automation With Python and Selenium
- Python Virtual Environments: A Primer
- VIM and Python – A Match Made in Heaven
- API Integration in Python
- Setting Up Sublime Text 3 for Full Stack Python Development
- Face Recognition with Python, in Under 25 Lines of Code
- Primer on Jinja Templating
- Mastering Python's Built-in time Module (Course)
- Grow Your Python Portfolio With 13 Intermediate Project Ideas (Course)
- Pointers and Objects in Python (Course)
- Unicode in Python: Working With Character Encodings (Course)
- Creating a Discord Bot in Python (Course)
- Python Generators 101 (Course)
- Getting the Most Out of a Python Traceback (Course)
- Parallel Iteration With Python's zip() Function (Course)
- A Beginner's Guide to Pip (Course)
- Convert a Python String to int (Course)
- Improve Your Tests With the Python Mock Object Library (Course)
- The Python print() Function: Go Beyond the Basics (Course)
- Structuring a Python Application (Course)
- Inheritance and Composition: A Python OOP Guide (Course)
- Arduino With Python: How to Get Started (Course)
- Comparing Python Objects the Right Way: "is" vs "==" (Course)
- Using NumPy's np.arange() Effectively (Course)
- Make a 2D Side-Scroller Game With PyGame (Course)
- Defining Main Functions in Python (Course)
- How to Implement a Python Stack (Course)
- How to Work With a PDF in Python (Course)
- Playing and Recording Sound in Python (Course)
- Sets in Python (Course)
- Python Modules and Packages: An Introduction (Course)
- Basic Data Types in Python (Course)
- Supercharge Your Classes With Python super() (Course)
- Python args and kwargs: Demystified (Course)
- Sorting Data With Python (Course)
- Python Dictionary Iteration: Advanced Tips & Tricks (Course)
- Documenting Python Code: A Complete Guide (Course)
- Variables in Python (Course)
- Python, Boto3, and AWS S3: Demystified (Course)
- Python KeyError Exceptions and How to Handle Them (Course)
- Threading in Python (Course)
- Thinking Recursively in Python (Course)
- Cool New Features in Python 3.8 (Course)
- Python Type Checking (Course)
- Python Plotting With Matplotlib (Course)
- The Python range() Function (Course)
- Get Started With Django: Build a Portfolio App (Course)
- Strings and Character Data in Python (Course)
- Thonny: The Beginner-Friendly Python Editor (Course)
- Python Debugging With pdb (Course)
- Absolute vs Relative Imports in Python (Course)
- Lists and Tuples in Python (Course)
- How to Use Python Lambda Functions (Course)
- Python Histogram Plotting: NumPy, Matplotlib, Pandas & Seaborn (Course)
- Traditional Face Detection With Python (Course)
- 11 Beginner Tips for Learning Python (Course)
- Dictionaries in Python (Course)
- Logging in Python (Course)
- How to Write Pythonic Loops (Course)
- Reading and Writing Files in Python (Course)
- Functional Programming in Python (Course)