Thoughts on Building Your Portfolio and New Skills.
If you are a new developer, you might be in the portfolio-building stage of your new career. Deciding on which project to build to increase your skillset and build a portfolio can be overwhelming. You have unlimited choice, and you might not know what is reasonable to expect for a certain timeframe yet.
In this article, you’ll explore the reasons you want to build a side project. You will learn about metrics you can use to measure the benefits of a side project, and you will learn how to match those benefits to your goals.
Understand why you want to build a side project.
Your side project should depend on your goals. Some goals you may have are:
- build programming general experience
- learn a specific skill, tool, language, framework, or technology
- build a portfolio to show to employers.
The unfortunate thing is that these goals are not compatible, even though you think they might be at a glance.
If you pick a large project that will teach you many general skills surrounding programming, it’s still only going to be one point on your resume. Conversely, if you pick a project designed to be quick to finish and impressive to employers, you might only leverage your existing skills and not learn much.
Of course, any project you finish will benefit you and may even be useful for all 3 goals. It’s a question of tradeoffs and balance.
Metrics for considering a project.
Once you understand why you want to build a side project to learn or get a job, you can start weighing your side project ideas against the following metrics:
- Marketability: The ability to leverage the project as proof of your ability. Does the project appeal to non-developer types? Is it visually cool? Does it have any wow factory?
- Learning: Does the project teach you want you to want to learn? Can you build it using the tools you want to learn?
- Interest: Are you excited about building it? Does the idea energize you, or is it a chore?
- Scope: How long will it take? How difficult is the project to complete?
Match the benefits to your priorities
Depending on why you are building a side project, you’ll have to decide which metrics matter most for you.
I’ll provide some thoughts on what you should consider based on your level of experience and background, but you know your priorities better than I possibly can.
If you are new to programming and still building basic programming knowledge, you might consider prioritizing maximizing interest, learning, and minimizing scope.
As a new developer, you may not feel certain that you want to keep programming. You’re still exploring the industry and figuring out what interests you. It doesn’t matter if you built the most marketable side project if you decide at the end of it that you don’t like programming after all. Once you have a general skill set, you’ll also be more prepared to tackle larger, more impressive projects.
You have some basic experience programming but little to no work experience. You are in the middle of the hardest phase of programming, getting your first real job. Before you get your first job, many companies consider you a risky investment. The barrier to entry is high in software. But once you’re in, finding work gets easier.
Your goal is to find a job. Real programming work provides experiences you’ll have a hard time reproducing on your own. Thus you may consider maximizing the marketability of your project and minimizing scope. Your goal is to have a full resume, and one project that took you 4 months takes as much space as a project you finished in a weekend.
Consider hackathons. They are a great way to provide time pressure to finish a highly marketable project. A hackathon is a time-constrained collaborative event to build a project, usually over a day or weekend. I wish I had tried them earlier in my career, but if you are curious, you can read about my experience building a react native app in 24 hours.
You know what to do. You’re busy working on real projects. You’re using spare time to work on the side. Match the metrics with your goals. Most projects will probably focus on interest. If you aren’t interested in it, it will be tough to find the motivation to work on it outside of work time.
All other metrics should match your current goals. You may have multiple projects, each with different focuses, and there’s no reason that a project can’t be valuable on many fronts.
However, If you are looking for work, especially in a different skill set, you might prioritize learning and marketability. For example, when I transitioned into Elixir development, I built a blogging app to gain a general understanding of Elixir and Phoenix syntax. It wasn’t the most interesting, but it prioritized marketability, learning, and scope.
You now understand some metrics you can use to measure the value of a side project. By taking the time to understand why you want to build a side project, you’ll be better able to prioritize which metrics matter to you. Therefore, you’ll be better able to choose from which side project best suits your goals.
Many side projects perform well on all of the metrics. It’s just a matter of which metrics they match the most to suit your current goals.
Most importantly, make a choice. Time spent deciding is time spent not building. Trying to come up with the perfect project idea is going to lead to choice paralysis. Instead, make a decision and start building.
Many developers feel unsure about committing themselves to finish a project. Hopefully, this mental framework helps you ensure your project aligns with your goals.