5 Programming Projects to Get you Through the Darker Months
By: Koen Van Zeijl
Tags: Startup, Education, Projects, Technology, Programming

Introduction

As Game of Thrones character Jon Snow would put it, “Winter is coming”. As we edge closer to the holiday period, the days are becoming shorter and the nights longer. This presents the perfect opportunity to find ways to keep yourself busy inside. As the COVID-19 pandemic makes it difficult to catch up with friends, I thought it would be a nice idea to investigate ideas for how to stay busy if you’re by yourself.

That’s why I created a list of five programming projects that can be worked on right now to help get you through the dark months. Working on one — or multiple — of these projects is an amazing way to improve yourself as a programmer. You get the opportunity to broaden your skillset by trying out new techniques or programming languages.

The projects:

Smart thermometer with Arduino A hobby catalog An Idle game as PWA A stock prices predictor Creating a virtual reality world

1. Smart thermometer

Photo by Harrison Broadbent on Unsplash

Let’s imagine that you want to measure the temperature in your room but don’t want to use an old-fashioned thermometer that you can buy at the store. No, you want to build a smart thermometer, one that puts the measurements into a dashboard and allows you to monitor the temperature in your room over time. How might you do this in a simple way?

The simplest way to build this is by making use of an Arduino, which has a wi-fi module attached and measures the temperature via a thermoresistor. The resistance of the resistor is transformed into a temperature, which is then sent via a wi-fi module to a server.

A good way to store this data is by making use of an InfluxDb — a Time Series Database — which is excellent for these kinds of tasks. The InfluxDb also provides an API endpoint that you can send your data from your Arduino to. Then, all you need to do is visualize the data! This is easily done by Grafana. You can host Grafana together with InfluxDb on the same server to make it even more convenient. Make some useful graphs and ta-da! You got yourself a smart thermometer.

What you’ll learn:

You get some experience with a form of IoT.

You get some experience with setting up the applications on your server and then creating graphs from the received data.

2. Hobby Catalog

Photo by Niels Kehl on Unsplash

If you’re reading this article, you probably already have a hobby. It’s programming of course! But programming is likely not your only hobby. So why not create a catalog app for one of your hobbies? Take cocktail recipes for example. Many people like to drink cocktails on the weekends, but as you can’t go to bars right now you’ll need to create your own cocktails. An interesting idea would be to create a great catalog for your recipes to quickly find which cocktails you liked and what ingredients you needed for them.

You can make this app as advanced as you like. It’s easiest to start with a static app and some photos, titles, and descriptions of your hobby items. After you’ve finished your basic catalog you can look into uploading your new items or even authentication.

What you’ll learn:

Creating an app in a language of preference; Swift (iOS), Java (Android), or even Xamarin for cross-platform

Designing mobile screens for a catalog

3. Idle Game

Photo by SJ . on Unsplash

It’s not always necessary to create an actual app when you want to create a game. Most of you will probably know Cookie Clicker. Cookie Clicker is an incremental game — also known as an idle game —where you earn cookies by clicking on a big cookie. A couple of months ago I decided to create an idle game myself. As I was eager to learn a new technique, I decided to create a PWA (Progressive Web App).

This project is perfect for you if you want to experiment with one of the popular JavaScript libraries (React, VueJS, or Angular) and combining it with a PWA.

A tutorial video of creating an application like this in VueJS can be found here.

What you’ll learn:

Work with a reactive website and PWA techniques

Creating your own progressive game with different difficulty levels

4. Stock Prices Predictor

Do you like artificial intelligence and big data? Then this is the perfect project for you! Predict the price of a company’s stock using machine learning and Python. Of course, it’s nearly impossible to predict the future, even people with a good understanding of statistics and probabilities have a hard time doing this. But this nice little project teaches you hands-on Python with the opportunity to check whether the stock market moved as you expected.

You could use a video that explains how to create a model for an example company — in this case Netflix — and enlarge or replace it with the stocks you like to predict.

What you’ll learn:

Implementing a model with Python to predict stock prices

The basics of AI and reinforcement learning

5. Virtual Reality World

Photo by JESHOOTS.COM on Unsplash

The popularity of virtual reality (VR) is constantly growing and continues to push the boundaries of our imagination. People grew tired of ordinary 2D media content, so virtual reality is being called to deliver information as a new way to engage audiences. If you like the idea of creating your own 3D world, and maybe even find a new passion, then keep on reading.

It’s a little harder to get started with a VR project (as you need a VR headset to test it out “In real life”). But nowadays, virtual reality headsets are a lot more affordable. The newest Oculus Quest 2 starts at $299.00. A big advantage of the Oculus Quest is that you can use it on its own.

There are two main programs that I highly recommend for creating a virtual reality world; Unity and Unreal Engine. Both programs provide enough tutorials to get you started and create your own amazing creations.

What you’ll learn:

Working with 3D objects to create your own world

Getting a grasp of working with VR programs like Unity and Unreal Engine

Conclusion

I hope that you enjoyed this story and that you found a project that seemed interesting to you. It’s time to get your hands dirty and start today! If you work on something you really like then you’ll improve your skills the most. You could also try to create a project with two different programming languages and see which one you like more.

I’m looking forward to seeing the results.

Happy coding!