Hello fellow nerds, I'm back with another blog post for you today. Here, I'm going to give you a few ideas for coding projects you can pursue to refine your skills and show employers. These projects will be a mix of beginner to advanced projects so this guide can be helpful to anyone at any stage. For each side project idea, I'll outline the features you could try implementing and what knowledge you can get out of it. Most of these ideas are side projects I’ve personally pursued so I have a good understanding of the nuisances that come with them. Without further ado, let's get into it.
Some general notes on side projects
Before I begin, I thought I'd share with you some general tips on side projects before you start pursuing one. To start, I'd say that you should aim to follow through with the project to the very end as much as possible. While this seems obvious, I've heard that it's a common phenomenon for developers to have many incomplete side projects on their hands and I certainly have been guilty of that. From my experience suffering this, I can say that I regret not following more projects all the way through. It gives me this weird feeling that I've done so many things but have little concrete code to show potential employers. As well, I’d stress planning out your code well and making sure you don’t write any code you’d regret writing later. Not only will the future you suffer from the pains of hard-to-maintain code, but if you intend to put your code out there to show potential employers, they might become disinterested after seeing poorly written code. As a final note about side projects, I tend to choose project ideas that would help me learn new skills I’m interested in in some way. Since actually coding is the most important thing you must do to get better at it, what better place is there to learn new things than here! To aid you in choosing a project to help with this, I’ll outline what my project suggestions could help you learn in the process.
Simple project Ideas
In my opinion, this is an excellent project to help you better understand the concepts of object-oriented programming. Here, there is a lot of potential to have many large class hierarchies through different types of characters (ex. mages, warriors, archers), items (whether armor or consumable items), and more.
A portfolio site
While this may seem obvious to a lot of you, this is a great use of your time coding outside of school or work. For those who don’t know, this is more or less an online resume of your skills. Not only can you practice and show off your web design and HTML/CSS skills, but you can use it as an effective marketing tool for your skills as a developer. Moreover, as you progress as a programmer, you can further improve it with all the skills you’ve learned.
With this project, you’ll simply be fetching some kind of stats from an external web API and displaying it in a nice format. This is a nice and easy way for you to learn how to interact with web APIs as you would in a real-world application. To find APIs to work with, I would recommend finding some here. You could even work with sample APIs if you are only interested in experimenting with the basics of HTTP and REST without committing to a full project.
Intermediate project ideas
This is a project I’ve done maybe around a few years ago or so. I’d say it’s moderately challenging for intermediate developers and it can teach you quite a bit about GUI libraries and development. Logic-wise, it’s quite recursion-heavy if that’s something you need to practice with.
GUI RPG games
Here, you’ll be extending the functionality of your text-based RPG game to work on a GUI. This can help you learn more about concurrency since you’ll need to update the graphics on screen and run calculations simultaneously. Additionally, you can try adding more functionality you might not have added in the text-based version like save files or music.
Advanced project ideas
Out of all the side project ideas here, this is the only one I’ve never done myself. Despite this, I’m fairly convinced that this can be an incredibly valuable project for you to build. With this project, you’ll be using interactive visuals to demonstrate how famous algorithms work. So for example, you can show a maze and demonstrate how different path-finding algorithms go about finding the way through it, filling it out as it goes. Not only will you have a visually appealing application to show, but you will demonstrate your knowledge of algorithms which is a huge plus
This can be a very challenging app to build but at the same time completing it can feel incredibly rewarding. Through this, you can learn different protocols or strategies for real-time communication based on the technologies you choose to use. For example, if you are building off of web technologies you could use WebSockets for a traditional client-server model or WebRTC for a peer-to-peer connection. Additionally, while I’m not well versed in game engines, I know there is a Unity library called mirror which you can use to facilitate networking (if you are learning the game dev side of things).
With that, I hope this gives you some ideas for side projects based on what I’ve built and that you learn from the process of building them. At the end of the day, however, I’d say that you should just do whatever most interests you but keep your learning into consideration as well. That is how I ended up choosing all the side projects here and I found that that strategy has helped me to a large degree. Let me know what you think in the comments below and if you have side project ideas yourself that you would want to share.
If you like what you read, consider subscribing to my newsletter to be notified of new blog posts. Also, check out my programming tutorials here.