Top 6 Projects you can Build to Learn Python
When it comes to programming, practice is very important to learn. Even more than theoretical knowledge I guess. To give some numbers, I would say 10% of what you will learn will be through theory, and 90% through practice.
So, it can be good to build some projects for fun, to learn Python. If you have your own project ideas it’s better, but for those who are not inspired, I will give you a list of projects you can build.
A game
A lot of developers build games to practice. Indeed, a game can be either simple to build, or difficult, depending on what you want. So, it fits perfectly with beginners wanting to learn, or with seniors wanting to perfect their knowledge.
Some popular games you can try to build are Pong, Snake, or Tic Tac Toe (I’ve made a tutorial for beginners to build this game here).
In Python, the most popular package to build games is Pygame. Building a game will allow you to discover this popular package, and discover how to make GUIs.
A bot
A bot can be of any type: a Telegram bot, a Twitter bot, a trading bot, etc…
Building a bot will allow you to learn how to interact with external APIs as well as some automation principles. And also something important, building a bot is not just fun, but it’s actually useful as it can allow you to gain time if you delegate your simple and repetitive tasks to it.
A web scraper
Python is the perfect language for web scraping projects. It has packages such as BeautifulSoup or Selenium, which are easy to use to quickly extract data from the web.
It’s useful to know how to scrape data because for future projects you’ll eventually need data from websites that don’t provide any API. The only way to get data from these websites is through web scraping.
You can try for example to build a scraper to extract data from Amazon and convert it into an Excel document with prices, product images, links, etc…
A neural network
If you’re considering a carrier in data science, it’s important to know how neural networks work and how to build one. Also, if you have projects requiring a powerful AI, a neural network may be a solution.
Python is perfect to build things like this. Building a neural network will allow you to learn Pandas (one of the most popular Python libraries), Scikit-Learn (a must-know for data scientists), and eventually Numpy and Tensorflow.
You can try to build neural networks to automatically classify images, or even generate images (much harder).
An interpreter/command-line tool
Perhaps one of the most academic projects you can build, but also one which can be very useful.
A lot of software has its own interpreter. For example, Git has its own client, MongoDB has its one too, also Stripe, etc… If you’re looking towards becoming a software developer, knowing how to build an interpreter can be useful.
You can for example build an interpreter to understand mathematic functions. It would mean that if I enter sin(cos(12)) , the interpreter will be able to give me the result (and perhaps even plot the function!).
A search engine
A search engine is probably the second most difficult software running on your computer, the first one being the OS.
It’s not an easy project, so coding it can be as challenging as funny. You will also learn how does a search engine work.
If you want to build a search engine, you can use Redis, it’s a Python package used to build a kind of persistent key-value database.
Final note
There are a lot of other projects you can do, but I tried to keep things the more general possible. For example, building a website won’t be useful for someone interested in data science. But building an interpreter is globally good to practice Python and learn some programming concepts.
If you want to get help to carry out the projects listed above, you can check this repo: build-your-own-x. It contains a lot of projects and references to tutorials to build them.
Also, if you have other project ideas, feel free to tell me what they are in the comments!
To explore more of my Python stories, click here!
If you liked the story, don’t forget to clap and maybe follow me if you want to explore more of my content :)
You can also subscribe to me via email to be notified every time I publish a new story, just click here!
If you’re not subscribed to medium yet and wish to support me or get access to all my stories, you can use my link:
