At one point, we've all scrolled a job board for entry-level software engineering roles. I can almost guarantee you've also encountered listings for entry-level roles that require a year or two of experience. This brings the age-old question: how are you supposed to find a job to get experience if jobs require experience?
I found myself trapped in this loop until I learned a secret that made things a little easier. The experience requirement on job listings is not always restricted to traditional employment! Let's discuss a few ways to gain experience that will help you land your first role as a software engineer.
1. Build A Developer Portfolio with Your Best Projects
"Build projects." It's a common piece of advice I'm sure you've heard at one point or another. While you may think it's overused, building projects is a great way to learn. Not only is it a great way to learn, but it is also a good way to show prospective clients or employers what you know. They say a picture is worth a thousand words and the same is true on your coding journey.
You don't need dozens of projects in your portfolio to show mastery in your skillset. The handful of projects you do have should be well-crafted and relevant to the role you're applying for. Your projects are an opportunity for you to stand out in the candidate pool! It's not what you create - it's how you created it. The subject matter of the project is just the vessel that will deliver you fantastic skills.
2. Contribute to Open Source Projects
Contributing to open-source projects is a fantastic way to gain experience working on a team even before you land your first role. Open source projects are community-led projects that accept work from the greater coding community. You don’t have to be a member of the organization to participate in code contribution.
When contributing to open-source projects, you’ll accept an issue/request and open a pull request for your work. After opening a pull request, other developers on the project will review your code to ensure it meets the project's standards for merging. This replicates what you will experience during your first engineering role (minus meetings).
I highly recommend contributing to an open-source project if you’re looking for ways to set yourself apart! If you’re interested in starting, but not exactly sure where to start, here are a few places:
A repo dedicated open-source projects that have good opportunities for anyone looking to get their first PR into an open-source project. It also notates the issue flag you should look for in the repo when looking for issues
This blog post breaks down contributing to open-source projects for absolute beginners.
A comprehensive guide by FreeCodeCamp that walks you through contributing to open-source projects for beginners!
3. Participate in Hackathons
Hackathons are a fun way to code for a little cash or other prizes! Hackathons are coding competitions where you create an app to match a theme or solve a problem. Some hackathons take place in person over a day or two, and others are virtual over a few weeks or a month.
Hackathons allow you to show how creative you can solve a problem with code in a relatively short amount of time. They force you to think outside of the box. You may create something you never would have expected. It doesn’t matter if you choose to work solo or with a team, it’s going to be a great learning experience. These projects can be great for your portfolio or just a great resume talking point.
If you’re interested in hackathons, DevPost has a great list of hackathon events! If you don’t find what you’re looking for, a quick Google search for "Hackathons happening soon" will do wonders!
Volunteering can be a great (and rewarding) way to gain experience as a developer. There are so many options, but here are a few recommendations.
If you’re interested in coding to help your community, try searching for coding groups in your area. Some cities have coding cohorts that gather to create apps that directly benefit their community. This is a great way to meet and interact with other devs in your area and do a little “social good”.
Another option might be helping a local "mom and pop" business. If you’re a frontend dev, try helping a local business that may need a website (or may need to refresh their website). You may opt for an agreement where you offer a simple website free of charge and they pay for hosting. This allows you to add real-world projects to your portfolio and start collecting testimonials.
Even though you may be looking for your first software engineering role, it doesn't mean you lack experience. Experience comes in many forms! It all comes down to how you present that experience on your resume and in interviews.
Thank you for reading! I hope this article was informative or entertaining (or both)! If you liked this post, feel free to like and follow me on my socials around the web.