Back in 2014, I got my first job as a junior developer with no formal education and no experience. You can read the full story if you're interested.
But this post isn't about my story, it's about yours.
If you are a self-taught developer struggling to land that first job, stuck in an endless river of applications, resumes, and rejections, this post will give you a roadmap to building credibility, a real-world portfolio, a valuable network, and ultimately, getting that first job.
This post is going to be a minimum effective dose kind of article.
I took everything I know about how myself and others have gotten their first jobs and distilled it down into a simple, actionable process.
If you take what you learn here and actually apply it, I am very confident you will launch and grow a successful career as a developer.
You can read what I've written here, take a few hours to implement it, and have a complete system in place for getting a great job, and be miles ahead of other people that will continue to send their applications and resumes off into the abyss.
It will be broken up into 7 parts:
- Changing your mindset
- Establishing your online presence
- Building a real-world portfolio
- Writing your first post
- Building a solid network
- Creating a system
- Growing from here
Let's get into it.
First, I want to tell you a few things that might take a bit of adjustment to your worldview.
- Sending out applications to as many companies as possible is not the best way to get a job.
- You do not need existing experience or credentials to get a great job
Let me explain why I believe these things and hopefully convince you of the same.
First, in regards to sending out applications.
Just because job boards exist and there are lots of jobs on those boards, does not mean they are the only places to find jobs.
They are the most obviously visible place to find jobs, but that's about it.
There are countless other positions waiting to be filled that will never be advertised publically or posted on a website.
In his post on getting a dev job without a degree, Josh Comeau notes that only 15% of the developers he polled got their job through the traditional application/job board process.
While this is technically just anecdotal evidence, it lines up with my own experience and the experience of most of the developers I know.
The methods in which a company goes about hiring say a lot about their priorities and values.
Smaller, "startup-style" companies that value innovation and efficiently solving problems over tradition and corporate structures tend to treat hiring developers in alignment with those values.
They will often not post jobs and look for talented developers through social media or their network.
Your goal is to be a part of that network and build up the skills necessary to impress them when they do find you or you find them.
Now on to the credentials issue.
Let's look at what value a degree or existing experience actually has for an employer, and see if there is a way we can replicate that value as self-taught developers without those things.
All hiring decisions are risk assessments:
"Will hiring this person bring more value (both monetarily and culturally) to the company than it will cost to hire them?"
If the answer to that question is yes to a higher degree than all other candidates, an offer is made.
Degrees and existing experience are signals to employers that tilt the scales in your favor in that risk assessment.
Degrees as signals are becoming less valuable every year. And experience can easily be replicated by taking the initiative to solve problems into your own hands.
When you combine that with the cultural signal you can send by writing, learning in public, and actively reaching out to new people, you can create a risk-minimizing signal stronger than both a degree and existing experience.
That process is what we'll be covering throughout this guide and what I cover in detail in Create & Connect.
The first step in creating these signals is to build up a presence online.
If employers can’t find you, they can’t hire you.
If your online presence online is contained in the faceless resume and applications you send to companies you are at an extreme disadvantage.
You don’t necessarily need a website at first, although I definitely recommend creating one at some point.
For now, a profile at these three websites is a great starting point:
Be sure to fill it out with a relevant bio and a good headshot.
These three sites will serve as your bases of operations for writing, showing off your code skills, and networking, respectively.
We’ll cover each of these three components next.
Now that you have a basic online presence set up, it’s time to actually use it and fill it with relevant information about what you can do.
A major mistake I see new and aspiring developers making is only having toy apps or apps made by following tutorials and courses.
If you want to establish credibility and send a strong signal to employers, you need to show that you can solve real problems.
You aren’t ultimately paid as a developer to write code. You are paid to solve problems using code as the mechanism.
So fill your portfolio with real projects that solve real problems.
Think about problems you face in your own life that could be wolves with code, then build something to solve them.
If you can’t think of any, ask people you know what their problems are and solve those.
If you want to be a real overachiever, make a list of companies you want to work for, build something for them, and then reach out to them expressing your interest in working for them and show them what you made.
Writing is one of the most powerful things you can do for your career, especially if you are new to the game.
I credit writing as one of the primary reasons I have the job I do now.
It allows you to communicate your thought and problem-solving process and serves as a living portfolio and a constantly evolving record of your work and growth.
One of the biggest hurdles people run into is not knowing what to write about.
Fortunately, this problem is easily solved because of our real world projects.
Just write about the process of building it as if you are teaching someone.
So you can start a new series for each new project you create and go over what you did to build it and why.
Use a platform like Dev to write these. It’s extremely easy to use and has an active, engaged community.
Plus you can easily integrate it with a static site generator and have your posts automatically populate using Stackbit.
Alright, you’ve got your portfolio in the works and you’ve started writing.
The third piece of the puzzle is actively reaching out and building relationships with people.
There are three groups of people I recommend doing this with:
- Potential employers
- Fellow developers
This doesn’t have to be complicated. Just be a genuine person who wants to build real relationships with people.
I got my first developer job by emailing local development shops introducing myself, saying I was an aspiring developer and wanted to meet some shops in town, and linking to my GitHub profile and my favorite project.
Use LinkedIn, Google, and social media to start reaching out to people and introducing yourself.
This is all well and good but it can be a bit overwhelming to try and tackle all of this.
It might seem easier to create your resume and have the same information on hand to fill out a hundred applications.
But that way lies madness.
The steps I’ve outlined here can be streamlined into a system of small daily actions you can take to progress your career.
The important thing is to block out time in your calendar for each component.
So every day block out as much time as you can for creating, writing, and connecting.
Then focus on that one thing during that time.
Create a recurring time block in your calendar and commit to that thing each day.
Over time these times blocks will add up and if you focus on completing those actions each day as your measure of success, you will quickly build up a solid portfolio of work and writing and a valuable network.
It can be as small as reaching out to one new person per day, coding your project for 30 minutes, and writing about what you did for 15 minutes.
You write Monday through Thursday and edit and post on Friday.
The takeaway is to figure out what schedule works for you, block time out to do it, and stick to it consistently.
These actions might seem small and simple but they can form the foundation for the rest of your career.
If you commit to doing these things consistently then over time you will build an incredibly valuable reputation in the industry and won’t have to worry about finding work.
Over time you can adjust your strategy and focus as you find what works, but for right now the important thing is to just start.
If you follow what I’ve outlined here you will have a successful career.
My goal is to help 1,000 developers get hired in 2021. Here's how you can be a part of that 👉🏻 Launch Your Dev Career
If I had to start my career from scratch, this is exactly what I would do to land my first job.