"Many developers and non-developers love to code even outside their professional environment. In fact, this is where most of the developers start their careers, myself included. I want to share some of my thoughts around this topic and describe the things that I've experienced with my side projects. These thoughts are mostly aimed at people who want to become developers and those developers who are still early in their careers. These groups of people understand that they still have a lot to learn, and are more willing to make an extra effort to improve themselves in order to grow as developers. Often these people have less distractions in their free time, allowing to have more time to do additional learning on their own.
But why to spend extra effort to constantly have side projects and develop oneself technology-wise? That's because this gives a tremendous competitive advantage compared to those, who only do their mandatory minimum, be it nine-to-five at work or just scraping by in school; having extracurricular activities speeds up the rate of experience gain, positively influences the trajectory of own's career, directly influences the wage, etc. I think these are the core reasons that every hobbyist developer might think about in order to maintain the constant motivation to start things and to continue to persistently work in the chosen direction."
WHERE TO START WITH NO EXPERIENCE?
It's a good idea to start with the basics. My personal roadmap included lessons from freeCodeCamp.org, videos from Youtube, courses bought from Udemy, personal websites/portfolios, blogs, etc. I also have to give a massive credit to Full Stack Open course created by the University of Helsinki in cooperation with several software companies, which I can warmly recommend to every starting developer. I also count online courses and videos as considerable side-projects since I've personally benefited from them massively and they often include enclosed material that one can make use of during learning and afterwards as a reference.
If you are into Youtube, I can definitely recommend Traversy Media. If you're into online courses, I want to recommend Andrei Neagoie's The Complete Junior to Senior Web Developer Roadmap. Of course, I have to mention the positive impact of the University courses I've taken too; even though I'm not saying that every developer necessarily needs a formal education. Of course it's up to you to decide which learning resources to use. These are just my personal preferences and I wouldn't share them if I hadn't benefited from these resources greatly.
WHICH TECHNOLOGIES TO LEARN?
Even though I'm not a Senior Developer yet, I am confident enough to say that a Senior Developer does not have to master all the tools and technologies. Rather than mastering all the individual technologies, the area of concentration ought to be on keeping up with the trends, on having a holistic view about the hot technologies that can be useful at work and on recognizing which tools to use in different situations to have a positive impact.
I think that one should reflect this in their own projects too by focusing on those things that are both fun, up one's motivation as well as improve one's professional skills (the skills and technologies that employers seek for). Picking up a technology stack is very much up to a personal preference and it can be hard for newcomers, but, fortunately, reading the thousands of articles out there can help with a decision. Picking up a tech stack and staying with it is a good idea in order to master one skill rather than dabbling with several ones without really knowing any of them well.
FINDING AND KEEPING UP THE MOTIVATION
Overall I think that the most important thing in your side-projects is having fun. The things you do every day at work might not always feel like fun so sometimes you need to use your side-project as a reminder that coding is indeed fun. This can act as a therapeutic experience to counterbalance the stress of your work.
Other great sources of motivation that I've found are to have and try to implement a business idea or contribute to an open source project. Gathering your friends and other motivated folks, and co-creating something that can be of use to other people, can be both fun and help you to come up with new and innovative things that can also be useful at your profession.
I think that the second most important thing in the side-projects is continuity. Of course, it also helps to create something every now and then, but if you have the passion and determination to create new things with code on your own, day after day, it should go without saying that it is the best way to speed up your progress as a developer.
Writer: Markus Blomqvist