Programming Project Ideas
The best way to learn is to do, and that’s why I want to inspire you by presenting Ideas for programming projects that you could work on in your free time. This
Furthermore, I will provide you with starting points for some of the projects by linking to other articles by me that describe these projects.
So let’s get right into it!
¶Recreating Famous Software or Famous UI Elements
My Web-Based Calculator.
Finding project ideas takes work, but you can get inspired by already existing software. Sometimes I think: "Wow this is cool but how was it made?". Let’s go over some inspirations.
- Visual Studio Code (Or any Code Editor): You could try to recreate syntax highlighting.
- Microsoft Word: Word is a What you see is what you get (WYSIWYG) Editor based on HTML and CSS. Recreating something like this will be challenging but rewarding in the end.
- Splash/Wave Button: Google’s Material Design is probably most well known for its special buttons that have this wave effect.
- Quizzes: There are many quiz apps out there like Kahoot or Quizlet, and you can just as easily create a quiz by yourself about any topic you find interesting, or you can utilize a trivia API.
- Explorer: If you know Python, you can use Tkinter to make your own file explorer.
- Calculator: This one is pretty straightforward so you could add some advanced features to your calculator like a calculation history.
Now also for some honorable mentions.
Essentially think of any UI Component.
My Game Tile Jumper 2088.
Making games today is easier than ever. There are some fantastic tools out there that allow us to make awesome games with a small to no budget.
Game Jams often have a topic that should serve as an inspiration and constraint that you can use to make a game in a short amount of time.
You could also use the Physics Power that these engines have to make simulations or other more test-oriented software like a planet simulation.
Once Again, you can get inspiration from the big AAA titles or other games.
Lastly, I don’t know if it is just me, but I think making games is rewarding, especially seeing your friends play your games (and fail 😀).
¶Packages and Languages
Now some packages could inspire you to build something incredible.
- Anime.js: This is a simple and intuitive animation library for the front end. Its documentation is excellent, and you will quickly get the hang of it.
- Three.js: This is a 3D Library that is a bit harder to learn but all the more rewarding.
- Konva.js: I once asked myself how visual editors like Illustrator were made and then stumbled upon this little package that enables you to make editable 2D Canvas Scene with a wide variety of objects.
- Monaco Editor: This is the Code Editor built into VS Code and it is awesome! You could, for example, make your own playground like jsbin.
- Tkinter: This is a Python package to make User Interfaces. At first, it behaves rather clunky, but it is just fine for little projects.
¶Make Notes of Things you Encounter
Lastly, I want to give you a tip.
Every time you encounter something you think is interesting or noteworthy, write it down! Make a list of all these things and store it in a safe location so you can, every once in a while when you are bored, look at your list of topics and should have new ideas for what to program.
I have a Private Github where I store a Markdown document with all the things I want to make once or that I think are fascinating.