python programming project ideas for beginners


What Python programming Project Should I Build? If you have this question in your head, it is most likely that you are a beginner Python learner and you have no ideas what to do next. In this stage, you have followed several Python 3 tutorials but you feel like you can do nothing with what you've learned. Don't be so upset, I felt the same way when I was in that moment. What you can do is building a Python project that suit your passion. But what Python programming project ideas for a beginner like me?


If you ask the last question to a forum or Python group, you will most likely receive questions in return. What is your passion? Why do you learn Python in the first place? What do you want to do for living with Python? Yeah, Python is a versatile programming language. You can do almost anything with Python. There is only one area (as far as I know) that Python hasn't been able to penetrate, mobile app. That means you have to make a decision first where do you want to go with Python? Game development, desktop app (GUI), web app, web crawling and data mining, data science or other. Even some less popular domains to programming such as networking and security, bioinformatics, GIS, language, forensic are now using Python. 



I have named some of the Python applications. If you are still unsure which project you want to take, because you learn Python so you can be a programmer, just choose one of these: game, desktop or web app. I will give you YouTube videos where you can start learning and following a Python project. 

Enroll Nanodegree in Programming with Python Now!

When you are done with the tutorial, you can start think of building your own project to create a portfolio. I hope this post is also suitable for someone who hasn't start learning Python, someone who still asking what is Python use for?

Before we start, I want to quote Dan Bader, about doing Python projects for beginners:
If you’re working on improving your coding skills, you should be re-inventing wheels *a lot*. 
The bottom line is, don't be shy or afraid to re-write what other Python programmers have done. Select one of following Python programming project ideas and find two or three more tutorials. You'll gain skill, logic and experience to build something applicable. That's what happened to me when I learned JQuery and Django, and that will also happen when I am ready to learn data science with Python.

1. Game (PyGame)



Sentdex created numerous Python applications tutorials and one of them is game development by using PyGame. What more interesting is, he made 29 videos series in his own channels and 100 others in thenewboston channel. His PyGame tutorials show you how to build three different games, something he called 'Bit Racey' in his channel and 'Snake game' and 'Tank Turret' he posted on thenewboston channel.

Once you finished his PyGame tutorials, you can visit PyGame website to get project ideas that suit you.  You can browse thousands of PyGame projects available on the site. There are about 30 categories (2d, 3d, shooter, rpg, simple, retro, etc.) on the top of the page. You can pick one, follow the link to the repository on GitHub. In the end, I am pretty sure you will say 'I think I can create similar to this one'.

2. Desktop App (WxPython)

Python has one standard GUI library, TkInter. However, you can find dozens of Python frameworks for desktop app development that you can install. Some famous libraries are PyQT, Kivy, PySide, PyGTK and WxPython. I don't know which one is the best because I haven't explored Python for GUI programming. My Python and Django mentor uses WxPython everytime he gets a desktop app development project. That's why I'm going to share a WxPython tutorial.



The WxPython series from Johnnyboycurtis is not a long tutorial, only consist of eight videos. It was published on August 2018, so it's relatively a new tutorial. At the end of the tutorial you will be able to build simple web browser and csv reader apps. If you need more WxPython example, you can follow an older tutorial series by sentdex.

Another material you can use to learn wxPython is wxPython 2.8 Application Development Cookbook. This easy to understand book will get you started on wxPython.

There are several alternative frameworks to build Python GUI app, I recommend you to try PyQT or PySide2.


3. Web App (Flask and Django)

There are so many Python frameworks for web development you can find. However, there are only two that stand out in term of popularity, Flask and Django. If you are a Python beginner, I strongly recommend you to start with these two frameworks. You will gain more helps, supports and chances to get a job more quickly.

We can find numerous articles writing about Flask vs Django on the internet. For me it's not about which one to choose, but which one come first. And base on my own experience, a beginner should learn Flask first and then Django framework.  Flask is simple and more manual. You have to set up a lot of things on your own which is good to gain learning experiences. On the other hand, Django is a complex framework that provides so many tools you can call automatically. But if you haven't really understood what's behind the scene, it would make you disorient easily.

Flask



You can start learning Flask by following Corey Schafer tutorial series on Youtube. This Flask Python tutorial provides a Flask example of building a blog app that suitable for beginners. If you need more coding practice, try to follow another flask tutorial series by sentdex. This tutorial series is perfect for beginners and teach you how to build an e-learning site.

Continue your journey by building several Flask projects independently. Some project ideas that you can develop for your portfolio include point of sales (POS) app for a certain store, hotel or home-stay registration app, e-commerce and many more.

Django


When it comes to Django tutorial on YouTube, there is only one channel to follow. CodingEntrepreneurs by Justin Mitchel have created several tutorial series about Django. These are the best Django tutorials you can find on YouTube. In his latest TryDjango series, he guides you to learn Django from complete beginner to advance level. This series is using Django version 2.07 and a little bit different than previous tutorials. This tutorial doesn't teach how to build a full project like TryDjango 1.8, TryDjango 1.9, TryDjango 1.10 and TryDjango 1.11.

In my opinion, you need to finish at least three of those series. Remember to stick to the tutorials by using the same Django version as shown on the video. Justin provides other videos that guide you to update to Django 2.0. At this point, you will be able to figure out what web app project you want to build for your portfolio.

Do you need more examples how to build web apps with Python? You can have it from these two books: Flask By Example and Django 2 By Example. You will build 3 or 4 real world web applications from that books.


  • If you are new to Python programming and eager to learn it effectively, you can read my post about Python Learning Roadmap.


4. Web Crawler/Scraper

Is collecting data and information from websites fascinate you? Probably that is the reason why you learn Python in the first place. That means it is time to learn the web crawling by using Python. There are two main libraries in Python to do it, Scrapy and Beautiful Soup.

Parsing the website content and pulling out information that we really want is quite challenging task. The information that we need can be located on the title, content of the web, tables, lists, the images or the links available on a page.

Scrapy and Beautiful Soup are two Python libraries which are commonly used to do this task. Here is a Python Scrapy tutorial series you can follow. By the end of the tutorial, there will be a practical challenge that can give you ideas to scrape certain information from a web page.



Do you want to try scraping a website by using Python Beautifulsoup? Try this video.
You can also learn to build a Python web crawler that collect internal links by following this series.

Broaden your web scraping skill by using Website Scraping with Python or Learning Scrapy books.

5. Machine Learning

So, you are ready to play around with data and program a specific task that will improve the performance progressively? That means that you are ready to jump right in the machine learning world. Sentdex has an in-depth tutorial series about this topic. He covered regression, classification with k-nearest neighbors and support vector machines, clustering with flat clustering a hierarchical clustering and also deep learning with neural networks. So check his first video right away.


If you need more tutorials, check this machine learning tutorial series that cover Python and R. Other awesome materials are Python Machine Learning and  Practical Machine Learning with Python books.


Conclusion 

You can see now several Python programming project ideas for beginners. There are many more projects that you can build with Python, but I can't stress this enough that you must stick with one Python application that you really like. 

In my opinion, having a project idea that you want to pursue before you start learning Python will make you learning Python more enthusiastically.

0 Comments