One of the best ways to improve your programming skill is to work on a project that you find genuinely interesting.
Here are some ideas for projects or small programs you could write.
Traditional board games make for manageable beginner projects. Some examples include:
These projects can be as simple or complex as you want. You can make them text-based in a terminal window, or develop a full graphical interface. You can do the basics, or you can add advanced features such as multiplayer, AI, and networking.
The term web scraping refers to automatically collecting data from websites. You can use it to collect any data that interests you. For example, you can:
The specifics depend on your interests.
You can write a chat bot that can hold a conversation with you or someone else. The bot could communicate via terminal input, over IRC, Twitter, Reddit, or Discord. If you don't know what the bot should say, you might find ELIZA a fun source of inspiration.
You can automate tasks on files. Some examples include:
These can save you time if you need to do the same task a lot.
Machine Learning (ML) is a sub-field of AI that focuses on how we can enable our programs to learn things. Machine learning has lots of fascinating applications that you can play with even without understanding the deep technical foundation.
For example, Sentiment analysis lets you analyze data, such as tweets or reviews, for positivity or negativity. You can build a recommender system for movies, books, articles, or TV series. You can recognize and transcribe hand-writing. You can recognize objects in images.
A good way to get started applying ML through Python is by using the TensorFlow framework.
If you have to type the same sentence repeatedly, or click in a certain pattern a lot, you can make Python do it for you. You can use the PyAutoGUI framework to get started.
You can build a website using Python. A website has a front end, which is what the user sees, and a back end, which has all the underlying logic. Python is good for back-end development.
A lot of the tasks you perform online can be automated. Here are some ideas:
Here are some more miscellaneous ideas:
Feel free to submit further ideas here.