Python is always getting better, and 2023 brought a number of exciting developments. As part of the Faster CPython project, Python 3.12 is speedier than previous versions. The new release brings improved error messages and more powerful f-strings. You can also enjoy support for the Linux perf
profiler, static typing improvements, and changes to subinterpreters.
The Python Software Foundation (PSF) focused on enhancing security in 2023, with the help of inaugural Security Developer-in-Residence Seth Michael Larson. As part of this comprehensive effort, PyPI completed its first security audit. Plus, the year brought new major versions of pandas, Django, and Pydantic. Another exciting development was Mojo, a superset of Python that’s specifically designed for use in machine-learning contexts.
Here at Real Python, we’ve published over a hundred written tutorials and video courses this year, plus weekly podcast episodes. Keep reading to revisit an old favorite or embark on a new learning journey. You can also check out the wrap-up podcast episode.
Join Now: Click here to join the Real Python Newsletter and you'll never miss another Python tutorial, course update, or post.
Practice Your Skills
Practice makes perfect, especially when it comes to programming. This year, the Real Python team expanded the Python Basics learning path with exercises designed to strengthen your Python skills and help you apply your knowledge in real-world scenarios.
In these courses, you can test your knowledge by completing review exercises and challenges before comparing your work to the instructors’ solutions:
- Python Basics Exercises: Numbers and Math
- Python Basics Exercises: Object-Oriented Programming
- Python Basics Exercises: Modules and Packages
By actively engaging with these exercises, you’ll solidify your understanding of Python concepts and build confidence in your programming abilities. Another way to test your knowledge is by taking quizzes, and we added several in 2023. For help along the way, be sure to join Real Python’s community chat and weekly office hours.
Customize Your Coding Environment
Your coding environment plays a crucial role in your productivity as a programmer, so it’s definitely worthwhile to explore your options and make yourself at home. That means picking the perfect editor or IDE for your use case and then tweaking how it works for you.
In these tutorials, you’ll learn how to customize your coding environment to suit your needs:
- Boost Your Coding Productivity With Ptpython
- Choosing the Best Coding Font for Programming
- JupyterLab for an Enhanced Notebook Experience
By exploring these resources, you’ll discover tools and techniques that can enhance your coding experience, making you more efficient and comfortable as you write Python code.
Build an Application From Scratch
One of the very best ways to grow as a programmer is by completing projects, such as apps. Building your own applications is a great way to put your programming skills into practice and create something useful. Your creativity can soar as you make an exciting new game or a useful tool for work.
In these tutorials, you’ll learn how to build different types of applications using Python:
- Build a Hangman Game With Python and PySimpleGUI
- Build a Maze Solver in Python Using Graphs
- Build Your Own Face Recognition Tool With Python
These tutorials will guide you step-by-step. By exploring these resources, you’ll gain practical experience in building complete applications to hone your programming skills and take your Python prowess to the next level.
Get to Know Python Data Structures
Understanding data structures is crucial for efficient programming in Python. Data structures allow you to store and organize data in a meaningful way, making it easier to manipulate and analyze.
In these tutorials and articles, you’ll explore different Python data structures:
- Python’s
list
Data Type: A Deep Dive With Examples - Using NumPy
reshape()
to Change the Shape of an Array - Python’s Mutable vs Immutable Types: What’s the Difference?
By delving into these resources, you’ll gain a solid understanding of Python’s data structures and learn how to use them effectively in your own programs, paving the way for more efficient and robust code.
Learn What Functions Can Do
To function means to work, so it’s no wonder that you can make a lot happen with functions in Python! Functions make your code less repetitive while also allowing code reuse. You can define your own functions but also take advantage of Python’s built-in functions.
In the following video courses, you’ll get to know some key functions:
- Summing Values the Pythonic Way With
sum()
- Filtering Iterables With
filter()
- Reversing a String Using
reversed()
By exploring the linked resources, you’ll gain a deeper understanding of the power and versatility of functions in Python, enabling you to write clean and concise code.
Find Out How to Complete a Task
For a programmer, learning new skills and techniques is an ongoing journey. Sometimes you want to dive deep into the mechanics of the language, and sometimes you want to learn how to do one specific task.
In these tutorials, you’ll discover how to accomplish specific tasks with Python:
- How to Read Python Input as Integers
- How to Use Type Hints for Multiple Return Types in Python
- How to Flush the Output of the Python Print Function
You’ll gain practical knowledge and learn the precise steps required to do what you need to do, expanding your Python proficiency along the way.
Meet Your New Favorite Library
Python’s vast library ecosystem means that you can find specialized tools to solve specific problems, even if you have to look beyond the language’s built-in modules.
In these tutorials, you’ll meet some powerful libraries that can become your new favorites:
- Generate Beautiful QR Codes With Python
- Python Polars: A Lightning-Fast DataFrame Library
- Python Folium: Create Web Maps From Your Data
Exploring these resources will introduce you to new libraries that can expand your Python tool kit and help you tackle new challenges.
Boost Your Data Science Skills
Data science is a rapidly growing field that leverages Python’s powerful libraries and tools to extract insights from data. Whether you’re interested in machine learning, data analysis, or data visualization, the following course and tutorials will introduce you to important concepts and techniques in data science:
- Using k-Nearest Neighbors (kNN) in Python
- Serialize Your Data With Python
- Working With Linear Systems in Python With scipy.linalg
You’ll gain practical knowledge and skills that are fundamental to the field of data science, empowering you to manipulate and analyze data effectively using Python.
Make Your Mark on the Web
Building web applications is an exciting endeavor that allows you to share your ideas and creations with the world. Maybe you’re interested in developing with Django or Flask, or you want to explore continuous integration with Docker.
Either way, these tutorials will provide you with the knowledge and skills necessary to make your mark on the Web:
- How to Render Markdown in a Django Application
- Build a Scalable Flask Web Project From Scratch
- Build Robust Continuous Integration With Docker and Friends
By exploring these resources, you’ll gain the knowledge and skills necessary to develop and deploy web applications using popular frameworks. Get ready to bring your ideas to life with web development.
Package and Share Your Projects
Once you’ve moved beyond writing single scripts, you’ll want to package your creations so that other users can import and run your scripts. You might need to share your project with your company or even with the wider Python community through PyPI.
In the following tutorial and courses, you’ll learn about different aspects of Python packaging and documentation:
- What’s a Python Namespace Package, and What’s It For?
- Understanding
if __name__ == "__main__"
in Python - Documenting Python Projects With Sphinx
By exploring these resources, you’ll learn important concepts and techniques for organizing your code, leveraging namespace packages, and documenting your projects. These skills will empower you to share your Python projects more effectively, making them accessible and maintainable for yourself and others.
Conclusion
2023 was an exciting year for Python, with new releases, improved security measures, and major updates to popular libraries and frameworks. At Real Python, we’ve enjoyed bringing you the latest community news alongside how-to guides, hands-on practice exercises, deep dives into core language topics, and more.
What were your favorite courses and tutorials from 2023, and what are you hoping to learn in the year to come?
Join Now: Click here to join the Real Python Newsletter and you'll never miss another Python tutorial, course update, or post.