This is a list of projects that someone who has a good knowledge of a programming language's basics may do as a practice to improve their knowledge of the language. The projects are language agnostic and the project descriptions are general enough to leave potential implementers freedom to implement projects as they see fit. Contributions to the list are welcome.
- Write a program that displays basic computer information (processor, memory, disks etc). You can use a GUI or CLI.
- Write a program that lists all active processes with their memory usage.
- Write a GUI program that lists installed services/daemons and is able to start/stop/restart each (advanced).
- Write a program that lists available disk space for all computers in a network segment.
- Write a GUI program that periodically displays computer total memory and processor usage.
- Write a program that calculates the total size of all the files in a directory tree and displays the size and the largest file.
- Write a database browser. It should be a GUI application with a treeview widget in which the database's tables are displayed as the treeview nodes. It should also be able to display table columns as subnodes.
- Write a program that displays a SQL definition (create) for an existing table.
- Write a program that exports and imports an existing table contents to a csv file.
- Create a web application for taking multiple choice question tests. The application should display a series of questions and at the end of the test display the final score. The application should be able to store multiple tests in a database (advanced).
- Create a web application that uses HTML5 animations to teach children the basics of addition, substraction, multiplication and division (advanced).
- Create a weblog application (advanced).
- Write a URL shortener library.
- Write a simple editor (Notepad-like) that should have basic functions like create a new file, open file, save file and cut, copy and paste functions. It should also have an option to set the editor display font.
- Improving on the previous project, write a simple programming editor that should be able to compile and run a program in your language of choice and display results (advanced). If possible add color coding for the language source.
- Write a simple file browser.
- Write a simple note taking application.
- Create a captcha library.
- Create a library for adding watermarks to images. The library should have options to add both text and image watermarks.
- Create a library to generate animated gifs from video clips.
- Create a library that generates thumbnails for a given set of images.
- Create a Conway's game of life simulation.
- Create a simulation of bird of fish flocking behavior (advanced).
- Implement a basic Ant colony optimization algorithm. (advanced).
- Create a simple Predator-prey simulation.
- Create a generic game loop with 60 FPS as a goal.
- Create a Snake clone.
- Create a Space Invaders clone.
- Create a Tetris clone.
- Create a Mastermind clone.