If you follow me on social media, if we ever chatted, or if you are a reader of this blog you are probably familiar with my un-encounter love for Python. What does it mean? Well, in my over 17 years of experience as a developer, I only worked “professionally” with Python for two years, all the rest of my experience with Python is working on side projects, open source contributions, and most recently my work in data science and computer vision.
In many social threads, some people would argue that you can build anything with Python (some even would dare to say you can use Python for front-end development, please don’t!), but even if technically it would be possible, it doesn’t mean that you should, nor that it would even be practical for anything other than a simple hello-world app.
The focus of this article will be on the scenarios where the Python programming language excels, leaving aside those cases where other programming languages would do much better.
I’ll also share some advice on how to get started with Python, so read until the end if you are interested.
Here are 10 crazy cool project ideas for you to build with Python
One of the first things that come to mind when thinking about Python is web development. This is not surprising given that the vast majority of popular web frameworks are written in, or have strong bindings to, Python.
Some of the most popular Python web frameworks are Django, Flask, Pyramid, and CherryPy. These frameworks allow you to build complex web applications and APIs quickly, and with relatively little code.
In fact, Django has such a great reputation for this that it’s often used as the backend for some of the most popular websites in the world, including Instagram, Pinterest, and the Washington Post.
But even though Python is quite a popular option for web development, where Python really shines in this space is with API Development.
An API, or Application Programming Interface, is a set of rules and standards that allow software programs to interact with each other.
My favorite option here, and I’m not shy in saying so, is FastAPI. It is a fast-growing framework that is built from the ground up to be fast, efficient, and easy to learn, and integrates the latest features of Python such as type hints.
Some people argue against Python for its speed, and they may have a point, but lately, Python has been catching up and in some instances, its performance can be at par with its NodeJS and even Go counterparts.
But even when it is not as fast as other alternatives, it can be fast enough for most scenarios, and huge companies are using Python in their production environments serving millions of requests.
Python is not only a great option for web development and API development, but you can also use it to build cross-platform desktop applications.
The two most popular frameworks for this are Tkinter, Kivy and PyQt.
With these frameworks, you can create rich graphical user interfaces that look and feel like traditional desktop applications.
I’m not a big fan of using Python for desktop, but I do use many open-source, high-quality applications that are built with Python, and they are amazing, so even when it’s not my first option, I can’t deny that Python has a solid ecosystem and it’s a fantastic option for desktop development.
Python is the undisputed leader when it comes to data science, artificial intelligence, and machine learning.
The main reason for this is the vast number of open-source libraries that are available, which allow you to do pretty much anything you can think of in this space.
Need to perform the complex statistical analysis? No problem, there’s a library for that.
What about training and using the latest state-of-the-art machine learning models? Yup, there are libraries for that too.
Do you want to use Python to build complex neural networks? Of course, you can do that!
The point is, if you can think of it, chances are there’s already a Python library that will allow you to do it, and we are not talking about half-broken, poor-quality libraries, we are talking about top-notch, industry-leading libraries that kick ass!
Here are some examples of related applications of Python for data science and AI:
- Time series analysis
- Sales predictions
- Language processing
- Sentiment analysis
- Recommendation systems (like music, videos, etc)
- Computer vision
- Self-driving cars
- and many more…
This is my favorite category and the one I used Python the most for.
I love automating repetitive tasks (and not so repetitive, it is in my nature) that would otherwise take me a lot of time to do manually.
With Python, I can create scripts that do all sorts of things for me, from renaming files in a directory to parsing data from a web page or even generating dynamic reports.
There are many “code Snippets” available online that you can use to automate your tasks without having to write a single line of code, or you can learn the basics of Python and start writing your own scripts from scratch.
Here are some examples of things you can automate with Python scripts:
- renaming files in bulk
- creating/deleting folders
- downloading files from the web
- extracting data from text files or web pages
- sending emails
- filling out online forms
- and many more…
Python is a great option for software testing because of its flexibility and the many open-source libraries that are available.
You can use Python to create unit tests for your code, end-to-end tests, regression tests, and more.
Those are all the areas where Python excels, but now let’s talk a bit more about Python the programming language to remove any doubt you may have about why it is such a great option.
As I said before, there are many reasons why Python is so popular, but here are the main ones:
- It is very easy to learn. The syntax is very intuitive and concise, which makes it perfect for beginners.
- It is a versatile programming language that can be used for many different things, from web development to data science, and everything in between.
- The Python ecosystem is huge, and there are many open-source libraries available that allow you to do pretty much anything you can think of.
- The Python community is huge and very supportive, so you will always find help when you need it.
- Python is constantly evolving and new features are being added all the time.
There are many ways to learn Python, but the best way is to start with a basic tutorial or course that will teach you the fundamentals of the language.
Once you have a solid understanding of the basics, you can start practicing your skills by working on small projects.
And finally, once you feel confident enough, you can start looking for a job or freelancing opportunities.
Don’t forget that the Python community is huge and very supportive, so you will always find help when you need it.
If you need some courses to get you started here are some of my recommendations:
Python is a very versatile programming language and thanks to its community and libraries you can pretty much do anything you want, though sometimes you shouldn’t. There’s no one language to rule them all, they all have advantages and disadvantages, and Python is no exception.
With that said, I do believe Python is great, and if you are curious you can build from games to embedded systems, all with Python, though probably those cases won’t be production-ready projects, maybe I’m wrong, if so please let me know, I’d like to hear about it.
Thanks for reading!