For a lot of developers, the last thing they want to do after being at work all day is write more code. Staring at a screen all day does take a toll on you. Once you've had a chance to go for a walk and eat something, you might consider starting a personal project. It doesn't have to be anything to complicated.
There might be a framework that you want to learn or a library you've been interested in. It doesn't even have to be related to your job. This is your time to learn something that you actually care about and work on something sounds fun to you. Doing personal projects will make you a better developer and here are a few ways how.
You get to experiment without judgement
Nobody has to approve your pull requests or even see your code. It doesn't matter if it's pretty or not because it's just you playing around. You might want to start working with VR and you just want your little app to run. The code can be as ugly as you want and no one else will ever know.
This is like when you let kids color outside of the lines. You start to think and see things differently. Plus you get to try different things in the process. You could start learning a new framework and realize that you don't like it and stop immediately. There aren't any consequences in your personal projects.
You learn how to handle more of the application lifecycle
Since this is a project that only you will be working on, you get to make all the decisions. That means you'll learn about software architecture because you'll have to setup the structure of the project. You'll learn how to pick a tech stack that matches your needs, even if you don't know all of the languages involved. All of the details of the project, like who would use it or what problem it fixes, will be up to you.
Personal projects give you insight on every stage of the development process. You'll even have to decide which hosting service you want to use and what kind of resources you need. This is one of the best ways to get exposure to a broad range of skills. When you get into a professional setting, you'll know a little about how everything works on top of your specialty.
You can let your mind wander
Programming is very much like an art. There are numerous ways to accomplish the same task. Now you get to try as many as you like. With personal projects, you don't have to follow the same patterns that you use at work. You can mix it up and try as many different things as you want. Try functional programming if you haven't had a chance.
This is also the time you can work on your million dollar idea. If you have a thing you wish somebody would make, do it yourself. You might not actually make a million dollars, but you will have fixed a problem you had. Your projects are your time to be creative and do the stuff that you wish you could do at work. Just have fun with it!
How to pick a project
Sometimes it's hard to settle on an idea for a project. If you have that problem, start by making a replica of a different application with a different tech stack or something. This will get your brain pumping and eventually you'll come up with something you'd rather do. The key isn't coming up with a great idea. The key is to get started on something.
After you've worked on your replica for a while, you might notice some shortcomings in the app that you can fix. Or you might realize that you don't want to make this replica anymore and you start on something else. The purpose of replicating an existing app isn't to really make the replica. The purpose is to get you started on something so that you'll find what you really want to do.
Personal projects help you learn skills you didn't know you needed and they give you a chance to learn new frameworks or programming languages. By playing with code and having fun doing it, you're making yourself a better developer because you're still learning. Doing something is better than doing nothing.
You can stay in the loop with what's happening in the web development world when you sign up for my emails. You can click here to do that. There's hundreds of people who already get the updates, so why not you too?
This post is gold ✨ I consume most of my free time doing personal projects and proud of it. Last week I created an open source online markdown viewer and editor called Marcdown 🎉 It's lightweight, fast and clean. I wrote about it on hashnode ✨ and got immense support from my fellow devs 🧡💛💙💚💜 Love you all.
True, working on personal projects, help you to experiment on new things.
4 months ago, I was planning to create a Git graphical user interface as a personal project to learn new technology like Electron.
And now, it has 762 commits, stable release on
v0.0.3 and more than 100 downloads.
Couldn't be happy more 😭
You learn how to handle more of the application lifecycle
So true. Personal/side projects are a good way to practice and understand the whole process of doing software, not only working on assigned tasks at work.
And doing this is good in the sense that we can improve ourselves or help other in their stuff.
One could use a side project to learn task estimation based on points. Then one can take this new skill to the job and keep practicing there.
For example, all my side projects, at least, consist of a Trello board and git repository(github or bitbucket).
I practice a lot breaking tasks into doable ones. If it's small enough, ok, but if it's not then I can learn(in a side project) how to break them into smaller ones.
There's a popular phrase:
Commit early, commit often.
I practice this in my side projects so that at work it is a normal thing to do.
My final two cents on this:
By playing with code and having fun doing it, you're making yourself a better developer because you're still learning
This is very important. A side project, ideally should be fun. There should be no stress around working on a pet project.
Yeah, we have great ideas and it's fine to try to get them alive but don't let them add more stress to your life.
If you a have a big project, try first to find what would be the ideal MVP, do it as a side project(enjoy the process) and then see if it can really be the big idea you first thought.
In the end, the main point of having side projects is learning, having fun, and practicing the art of coding.
Really nice article, Milecia 👏🏽