It is often said that the best way to learn to program or to learn a new language is by using it in a personal project. In this post, we explore why it is wise to listen to this advice.
Personal projects are those projects you do outside your day job or daily routine on your own personal time. They are primaily aimed at solving a problem you personally face or exploring an idea that you find exciting. The whole idea is that they are 'personal' to you.
I will approach this from the point of view of what I have personally gained from doing my own personal projects, some of which have since been abandoned, and some of which I still use everyday.
You get to explore new stuff
The best opportunity you have to explore new languages, frameworks, technologies, etc. is when working on side projects. This is one of the few moments where you get to play around with new and unfamiliar stuff without much restrictions. This also offers a chance to work with stuff that you may not otherwise encounter in your normal workday.
For example, I use side projects as an opportunity to delve into new languages and see how they compare to what I primarily use, which in my case is, Python/Django. Through these projects, I have been able to interact with languages and frameworks such as EmberJS, Ruby, Rust, and Node.js, which I ordinarily would not interact with in my daily routine.
This can only be beneficial as it exposes you to new ways of approaching and solving problems that you can also apply in your day to day work.
You can make mistakes
This is what makes personal projects perfect for learning. You are allowed to make some mistakes. These are not the kind of projects where you would get calls in the middle of the night when something breaks or is not working as expected. This is not to mean that errors should just be left to hang around, but that it offers a chance to learn from your mistakes without the pressure.
Technology moves fast. Use this as an opportunity to keep up.
If there's one thing that's certain in the tech world is that it will always keep changing. There will always be disruptive technologies coming up every other day and there will always be new stuff today that didn't exist yesterday.
Building something fun with some of these new technologies is an awesome way to keep up and also expand on your skillset. Furthermore new things are coming up because people have a need for them. It might be a great idea to see for yourself what prodblems people are trying to solve with them.
Get out of your comfort zone
Personal projects usually offer a chance to explore new territory. For example, if you are primarily a web developer, you might use this as an opportunity to explore command line applications or mobile apps. If you are primarily a backend developer, you might use some side projects to explore the frontend. If you haven't had to write documentation before, this might be the chance to learn how to write some.
There was a time I knew nothing about Test Driven Development, which I thought was a daunting topic. Reading blogs and books did not make me fear it any less but on trying it out practically in a side project, I eventually wrapped my head around it and practice it until this day even in more 'serious' projects.
The main point I intend to emphasise is that side projects are your blank canvas; to acquire and build expertise in your skills, to learn new technologies, and to explore unfamiliar territories. It is always an exciting adventure.
Additionally, there is always some problem we face that we wish could be solved. I'm sure most of us have experienced a situation where you have faced a problem that for some reason nobody else seems to be solving.
Right now is the perfect opportunity for diving right into it. Maybe you are the one to solve it. Seize the chance and make the world a better place.