You’ve done it: you’ve finished a course or finally made it to the end of a book that teaches you the basics of programming with Python. You’ve mastered lists, dictionaries, classes, and maybe even some object oriented concepts.
So… what next?
Python is a very versatile programming language, with a plethora of uses in a variety of different fields. If you’ve grasped the basics of Python and are itching to build something with the language, then it’s time to figure out what your next step should be.
In this article, we offer several different projects, resources, and tutorials that you can use to start building things with Python.
Free Bonus: Python Cheat Sheet
Get a Python Cheat Sheet (PDF) and learn the basics of Python 3, like working with data types, dictionaries, lists, and Python functions:
What Others Do With Python#
You’re probably wondering what people are building with Python in the real world. So first, let’s take a quick look at how some of the big tech companies are using the language.
Google is a company that has used Python from the start, and it’s gained a place as one of the tech giant’s main server-side languages. Guido van Rossum, Python’s Benevolent Dictator for Life, even worked there for several years, overseeing the language’s development.
Instagram likes Python for its simplicity. The service is known for running “the world’s largest deployment of the Django web framework, which is written entirely in Python.”
Spotify puts the language to use in its data analysis and back-end services. According to their team, Python’s ease of use leads to a lightning-fast development pipeline. Spotify performs a ton of analyses to give recommendations to their users, so they need something that’s simple but also works well. Python to the rescue!
You can check out this article to see what other companies are doing with Python.
If you’re already convinced, then let’s get you started!
What You Can Do With Python#
From web development to data science, machine learning, and more, Python’s real-world applications are limitless. Here are some projects that will assist you in finally putting your Python skills to good use.
#1: Automate the Boring Stuff#
This is a resource on “practical programming for total beginners.” Like the title says, this book will teach you how to automate tedious tasks such as updating spreadsheets or renaming files on your computer. It’s the perfect starting point for anyone who’s mastered the basics of Python.
You’ll get a chance to practice what you’ve learned so far by creating dictionaries, scraping the web, working with files, and creating objects and classes. The hands-on applications that you come across in this book will provide you with real-world results that you can see immediately.
#2: Stay on Top of Bitcoin Prices#
Everyone seems to be talking about Bitcoin these days. Ever since topping out at a price of almost $20,000 in December 2017, the cryptocurrency has been on the minds of millions. Its price continues to fluctuate, but many would consider it a worthwhile investment.
If you’re looking to cash in on the virtual gold rush and just need to know when to make your move, then you’ll need to stay on top of Bitcoin’s prices. This tutorial can teach you how to use your Python skills to build a Bitcoin price notification service.
The foundation of this project is the creation of IFTTT (“if this, then that”) applets. You’ll learn how to use the
requests library to send HTTP requests and how to use a webhook to connect your app to external services.
This is the perfect starter project for a beginner Pythonista with an interest in crypto. The service you build with this tutorial can be extended to other currencies as well, so don’t worry—Ethereum is fair game, too.
#3: Create a Calculator#
This simple project is a solid gateway into GUI programming. Building back-end services is one important part of deployment, but there may be a front-end that needs to be taken into account. Creating applications that users can easily interact with is paramount.
If you’re interested in UX and UI design, then take a look at this tutorial. You’ll be working with the
tkinter module, the standard graphical user interface package that comes traditionally bundled with Python.
tkinter module is a wrapper around Tcl/Tk, a combination of the Tcl scripting language and a GUI framework extension, Tk. If you have Python installed, then you should already have the
tkinter framework ready to go as well. A simple call will get you started:
from tkinter import *
Once you’ve got that set up, you can get to work on building your first GUI calculator in Python.
Practice using the
tkinter module and watch your vision materialize on the screen. Then, once you’ve got your feet wet, you can branch out and start working with Python’s other GUI toolkits. Check out the official documentation on GUI Programming in Python for more information.
#4: Mine Twitter Data#
Thanks to the Internet—and, increasingly, the Internet of Things—we now have access to hordes of data that weren’t available even a decade ago. Analytics is a huge part of any field that works with data. What are people talking about? What patterns can we see in their behavior?
Twitter is a great place to get answers to some of these questions. If you’re interested in data analysis, then a Twitter data mining project is a great way to use your Python skills to answer questions about the world around you.
Our Twitter sentiment analysis tutorial will teach you how to mine Twitter data and analyze user sentiment with a
docker environment. You’ll learn how to register an application with Twitter, which you’ll need to do in order to access their streaming API.
You’ll see how to use Tweepy to filter which tweets you want to pull, TextBlob to calculate the sentiment of those tweets, Elasticsearch to analyze their content, and Kibana to visualize the results. After you finish this tutorial, you should be ready to dive into other projects that use Python for text processing and speech recognition.
#5: Build a Microblog With Flask#
It seems like everyone has a blog these days, but it’s not a bad idea to have a central hub for yourself online. With the advent of Twitter and Instagram, microblogging in particular has become exceedingly popular. In this project by Miguel Grinberg, you’ll learn how to build your own microblog.
It’s called “The Flask Mega-Tutorial,” and it truly lives up to its name. With 23 chapters to work through, you’ll develop a deep understanding of the Flask micro web-framework. At the end of this project, you should have a fully functional web application.
You don’t need to know anything about Flask to get started, so it’s perfect for those of you who are itching to get your hands dirty with web development.
The tutorial was recently updated to include content that will help you become a better web developer in general. You can read it for free online, purchase a copy on Amazon, or have the author walk you step by step through his online course. Once you’re done, you’ll be able to move on to Django and creating even larger-scale web applications.
#6: Build a Blockchain#
While the blockchain was initially developed as a financial technology, it’s spreading to a variety of other industries. Blockchains can be used for almost any kind of transaction: from real estate dealings to medical record transfers.
You can get a better understanding of how they work by building one yourself. Hackernoon’s tutorial will assist you in implementing a blockchain from scratch. At the end of this project, you’ll have gained an in-depth understanding of how this transactional technology works.
Remember, blockchain isn’t just for crypto enthusiasts. Once you’ve built one for yourself, see if you can’t find a creative way to implement the technology in your field of interest.
#7: Bottle Up a Twitter Feed#
Interested in building web applications but unsure about starting a mega-project? No worries—we’ve got something for you. Follow along with us to learn how to create a simple web app in just a few hours.
Bob Belderbos shares how he implemented the 40th PyBites Code Challenge, where participants were instructed to create a simple web app to better navigate the Daily Python Tip feed on Twitter. You can walk through his implementation of the challenge and code alongside him.
Instead of Flask, you’ll be using the Bottle micro web-framework. Bottle is known as a low-dependency solution for deploying apps quickly. Since it is designed to be lightweight and simple to use, you’ll have your application developed in no time.
You’ll also use the Tweepy module to load data from the Twitter API. You’ll store the data in an SQLAlchemy database, so you’ll get some practice writing SQL queries as well. Fork the repo to get started!
#8: Play PyGames#
This one is for those of you who like to have fun! Python can be used to code a variety of arcade games, adventure games, and puzzle games that you can deploy within a few days. Classics like hangman, tic-tac-toe, ping-pong, and more are all doable with your newly acquired programming skills.
The Pygame library makes it even easier to build your own games. It contains almost anything you could need when starting to develop a game.
Pygame is free and open source. It includes computer graphics and sound libraries that you can use to add interactive functionality to your application.
#9: Choose Your Own Adventure#
If you’re more into storytelling, then you can still build something cool with Python.
The language is extremely easy to write in, which makes it the perfect environment for developing interactive fiction. This free resource will guide you through the process of writing a text-based adventure game in Python.
The tutorial assumes basic knowledge of programming in Python, but it helps you bridge the gap between what you know and how to use that knowledge to build an application.
If you want to take your story to the next level, you can use a software engine like Ren’Py to add sounds and images to your game, creating a full-fledged visual novel. (Then, you can put it up on Steam and see how it does! The best way to get feedback on your work is to release your creation out into the world.)
#10: Say “Hello World!” to Machine Learning#
Machine Learning can be a critical field of understanding for anyone interested in Artificial Intelligence. However, it can be intimidating to get started, because the space is fast and ever-changing.
Luckily, there are resources online that can help you get your feet wet before you dive into the world of data science. This tutorial by Jason Brownlee is a wonderful introduction to using Python for machine learning.
You’ll walk through some of the most common machine learning algorithms as well as the Python libraries that will assist you in making predictions.
The tutorial is extremely simple and very easy to follow. You can complete it in as little as a few hours. By the time you’re done, you’ll have gained a quick understanding of how to use Python to perform data science.
When you’re sure you’re ready to dive in, check out our stock of data science tutorials, where you’ll learn how to analyze fingerprints, create visualizations, and recognize speech and faces, all in Python.
#11: Get Challenged#
If you’re not sure about taking the plunge with some of the larger projects listed above, but the smaller ones don’t interest you either, then you might be wondering what else there is. How on earth can you find something that excites you?
Coding challenges can help you practice your Python skills and gain a surface-level understanding of all the different things you can do with Python.
To put it simply: you’re presented with a problem, and you have to find a solution that uses Python.
You’ll get a chance to develop implementations that make sense to you, but you’ll also have the opportunity to dive deep into the Python language by way of hints. These give you an idea of which modules you should be importing to help you solve the challenge.
Coding challenges are a great way to learn breadth-first about as many libraries, methods, and frameworks as possible. You’re guaranteed to find something that you’ll want to explore more on your own time. You might even come back to this list and find that something you used in one of your challenges has sparked a new interest for you!
To get started, try one of these on for size:
The Python Challenge has over 20 levels for you to work through. Create small Python scripts to find a solution to the level. There are hints scattered about the Internet, but try to see the clues and figure it out for yourself!
PyBites Code Challenges has 50 challenges and counting! These challenges encourage you to master Python by building applications that accomplish tasks.
If you’d rather push yourself by coding through these challenges on your own instead of working through a step-by-step tutorial, then it’s always a good idea to have a resource you can turn to for help. Python Tricks: The Book is an amazing source of information to have on hand when you are working through these challenges. It will take you through some of the lesser-known parts of Python that you’ll need to solve them.
What You Probably Shouldn’t Do With Python#
Clearly, Python is an extremely versatile language, and there’s a lot you can do with it. But you can’t do everything with it. In fact, there are some things that Python is not very well suited for at all.
As an interpreted language, Python has trouble interacting with low-level devices, like device drivers. For instance, you’d have a problem if you wanted to write an operating system with Python only. You’re better off sticking with C or C++ for low-level applications.
However, even that might not be true for long. As a testament to Python’s flexibility, there are those out there who are working on projects that extend Python’s usability to low-level interactions. MicroPython is just one of these projects, designing low-level capability for Python.
What if My Idea Isn’t on This List?#
That’s okay! This list isn’t exhaustive—there are countless other tools and applications you can build with Python that we haven’t covered here. Don’t think you’re limited to what’s on this list. It is simply a resource to give you a place to start.
In the end, it’s up to you to do the research and find projects that pique your interest. If you’re not sure where to begin, then follow us on Twitter. We regularly share cool and interesting Python projects from our reader community. You might find something that you can’t wait to contribute to!
What to Do Next#
So there you have it! Eleven ways to start working your way from Python beginner to savvy Pythonista.
No matter where you choose to begin, you’re sure to open up countless avenues for developing your programming skills. Pick something—anything—and get started! Do you have an idea for a project that didn’t make this list? Leave a comment down below! You could suggest the perfect project for a fellow programmer.
Free Download: Get a sample chapter from Python Basics: A Practical Introduction to Python 3 to see how you can go from beginner to intermediate in Python with a complete curriculum, up-to-date for Python 3.8.
If you get stuck and need a nudge in the right direction, check out our tips for developing positive learning strategies to help get yourself back on track.
Another great way to get unstuck is to talk it out. Coding doesn’t have to be a solitary activity. If you need a way to ask questions and get answers quickly from knowledgeable professionals, then consider joining the PythonistaCafe. This private community allows you to network with those who will help push you through any walls you may hit on your journey to Python mastery. Click here to learn more, or go ahead an apply!