Personal Projects and why you should finish them
The idea of starting or finishing a personal project might stress you out. You might feel like you’re not skilled enough to ship something, or maybe you’re worried no one would care about your project, or maybe you’re burnt out after work. I’m here to tell you that your personal project is the best way to take control of your growth—and maybe even your own life.
Instead of thinking of personal projects as some kind of burden, I like to think of them as some form of self-care. Not the nice, relaxing, pampering form of self-care, more like an uncomfortable but very rewarding form of self-care, kinda like going to the gym.
“What if I can’t think of a good personal project?”
Not that I’m some kinda pessimist, but I believe that everything sucks (except for Avatar: The Last Airbender). You will never be able to fully solve the things that suck; however, you certainly can make them suck less.
If you can’t think of a solid personal project, why don’t you think of something that sucks? It could be anything. Maybe you want to know how long the wait is at the bus stop. Maybe the UI of your favorite app is too cluttered. Perhaps your coffee-making process isn’t automated enough. What’s important is that you think about things that suck specifically for you. You will be much more motivated to solve your problems than someone else’s. It just so happens that usually you will make something that people will be happy with, but that’s more or less a side effect.
Now that you’ve thought about something that sucks, figure out what you can do to make that thing suck less.
There’s a lot to unpack here as far as kicking off a project and committing to it, maybe that’ll be a post for another time. I’m going to go over the actual benefits of starting this project.
Deciding on a project can lay out your path
It doesn’t take long in your development journey to realize how overwhelming technology is. You need to decide on a language, some libraries, some frameworks, some methodologies, some libraries for your frameworks that use methodologies that you prefer but everyone else seems to hate… I’m getting anxious thinking about it.
When I first decided to learn how to code, I didn’t even know what language I wanted to choose. However, I did know what I wanted to build: a mobile app for people who play Tekken.
This immediately narrowed down my options. People suggested I learn Java or Objective-C, others told me to use… something called Titanium or something? This was pre-React Native days which makes me sound old, but it was really only 5 years ago. I ended up going with Java and released my first app (with tons of help) called Tekken Chicken. I had 10,000 users on Android, but the iOS users were jealous. I wanted to provide the iOS users with the same value but I was not interested in learning two languages. I felt like the best thing I could do was learn web development since it’s way more accessible in terms of platforms. Then React Native was released and I was able to provide an app for both platforms, with over 30,000 users between them, to make a long story short.
I’m going a little off-topic, here, but you can see how my path was sort of laid out before me because I knew what I wanted to build first, and everything sort of fell into place. Because I decided to make this app for the Tekken community, I’m now familiar with a bunch of web technologies and making mobile apps, among many other things.
You get to be the lead engineer
When you first start in the tech industry, you’re likely to be handling things more senior devs don’t have time to do. This isn’t necessarily bad —, you gotta walk before you can run, right? After a while, this gets very old and unless your manager is super attentive, it’s going to continue being this way for longer than it should. Even when you do get work, likely, you won’t be part of the bigger decision-making discussions on what technology to use or how to approach specific problems. This is also okay and natural when you’re starting.
Having a personal project, however, allows you to be that decision-maker. You are the lead, the architect, the boss. You have to think about the things that the senior developers at your job think about. What are the options? What are the trade-offs? What are the priorities? What do you already know and what are you willing to learn to accomplish your goals, and why?
This changes you. It gives you some insight into what it may be like for the seniors and managers that make decisions around the work that’s been assigned. The best part is, there’s a good chance you might be able to weigh in on something at work because you have had to think of the same problems. And let’s just say that your place of work isn’t working out for you. As you interview at other places, you’re going to be able to talk the talk, even if that experience didn’t come directly from your job.
The potential to impact a community
Remember where I talked about thinking about things that sucked? Trust me when I tell you, whatever it is you think sucks, you’re not the only one. When I decided to step up and create a Tekken app, many Tekken players were excited. Players did weird things to keep track of important data regarding each character, people had notebooks, downloaded HTML sites, and stored everything on Google sheets. There weren’t many central, reliable sources that allowed you to access that data offline. Just announcing the fact that I was working on this helped me stay motivated. So many wanted to volunteer their skills or anything that could help me get the app shipped. Merely speaking about what I wanted to build helped me make friends.
The best feeling in the world to me is traveling to a Tekken tournament and looking across the floor and seeing players using my app as they walk to the area of their next match. They are looking up their opponents’ character or refreshing on info about their own.
It feels really nice knowing you contributed something of value to your favorite community for your favorite hobby. In fact, the positive responses have been a major factor in how I’ve been able to muster up the energy to continue working on it. I don’t think I could ever paint the full picture of what I have learned from working on T7 Chicken alone. I have another great project that is also opening doors for me.
There’s something to be said about the amount of work you end up doing and the lack of funds you get while working on your personal projects. I think if I were to do it all over again, I’d do my best to try and monetize or accept donations for the things I’ve built. If you’re super lucky, you might make something that can get you paid. Unless you’re building with that in mind, it’s going to be very hard to make that happen. While I do wish the things I’ve built directly impacted my pockets, I do not regret a single decision I’ve made. My experiences have given me tons of perspective and confidence in my abilities. I stand out to many employers, there aren’t a lot of people who ship things on their own time. It’s definitely a competitive edge if you don’t have a previous engineering role or a computer science degree.
I hope this post inspires you to give it a shot. I’d love to know about what you’re working on if you get started!