You might be familiar with the dreaded catch-22 of being a new developer:
I can't get a job without experience, but I can't get any experience without a job!
It's something we all feel at the beginning of our journeys. It can be frustrating and seemingly impossible to escape when we keep getting rejection after rejection or we're outright ignored.
Plus, we constantly see job postings for entry-level devs with 2-3 years of experience, however that's supposed to work.
So, what can you do to establish your credibility as a brand new developer with no existing experience?
Understand Why Companies Value Experience
Start by putting yourself in the company's shoes.
This can do wonders for understanding why people do and don't get hired, and it can help you to not take things too personally when getting ignored or rejected.
Every hiring decision is a risk assessment. Will this person bring more value to the company than it will cost to hire them?
Your job is to convince the employer that the answer to that question is yes.
The difficulty is that existing experience is a massive signal towards that equation being true.
Someone with no experience is a risky hire.
So you need to create your own signals that can lower your perceived level of risk to the employer.
Also keep in mind that it doesn't just come down to raw skills.
Hiring decisions are made by humans, and it is very possible to overcome a lack of experience with personality traits like enthusiasm, showing genuine interest in working for this specific company, and the initiative to build things on your own.
All of these things are wrapped up in building credibility.
A Two-Part Formula for Gaining Credibility
Credibility = Proven Skills + Visibility
In order to establish our credibility we need to demonstrate that we have valuable skills, and we need to get the right people to see those skills.
It's important to reiterate here that I don't just mean hard skills.
You need to not only have excellent communication skills, great motivation, be a self-starter, and so on, but you need to effectively communicate that you have those qualities to potential employers.
Just saying it is not effective – everybody does that. You need to show it.
So you need to not only demonstrate your hard coding skills, you also need to demonstrate that you know how to best utilize those skills in order to bring value to a company.
This is the kind of credibility that will convince someone to take a chance and hire you, even with no experience.
There are three main components to doing this successfully:
Let's go through each of these and then wrap up by seeing how we can effectively combine them to set ourselves apart as credible, competent developers even when we have no work experience.
Build Projects With Your Tech Stack
Being able to build real things in your tech stack of choice is obviously a huge component here. If the company you are applying to doesn't see any technical skill, it's a non-starter, you aren't getting that job.
But there is some nuance here.
I've heard of lots of developers getting hired for a role they weren't completely technically qualified for because of their character traits and the potential seen in them.
So there is a balance to find here between making sure you prove you are technically competent enough while not thinking it is the only thing that matters (or even the most important thing).
The best way to show that you have the right technical skills is to build unique things that don't exist yet.
Building something by following a course or tutorial only shows that you are capable of learning and following directions, but it does not show that you understand how to solve a complex, unique problem from the ground up.
That is the kind of technical skills companies are looking for. Skills that can be applied to solve real problems faced by real people, since that is what you will ultimately be paid for.
What I recommend people do here is find a good course that teaches a tech stack they are interested in.
Courses and tutorials are fantastic for being introduced to a tech stack and (this is very important) learning the best practices of that stack.
But they are not always good for real, practical learning of how to actually build valuable things.
So I recommend finding a good course teaching your tech stack, following it, and then coming up with your own project to build using it.
As you are building it, document what you are doing and why, which brings us to the next component of our credibility-building framework.
Write About What You Build and Learn
Writing has a few major benefits.
First, it allows you to get clear on your ideas and processes. Writing things down forces you to get as clear and concise as possible in your thinking and your methods.
Plus, writing forces you to get clear on your process because you have to take something out of your brain and get it down onto paper (or screen) for someone else to understand.
This is easier said than done, but is going to be one of the things that can set you apart in the job hunt.
Not only that, but you will be expected to be able to communicate effectively when you start working as a professional dev.
Writing not only helps to prove that you can do that, but gives you a way to practice so that you can do it as effectively as possible.
A Simple System for Writing
Writing can often be challenging, especially if you are new to it.
I love writing, do it all the time, and it is still difficult for me sometimes.
So I want to give you a simple method to get started writing today that you can adjust and build on as you start to practice and get better.
Set aside time to write each day
This has been really important for me in order to not only make sure I'm consistent, but also to actually improve my writing.
One of the things that I have found through writing numerous articles is that in order to uncover the good writing I have to write through the crappy writing.
Sitting around waiting for inspiration to strike is not the way to go about this. You need to just start writing. Once you start, you'll be surprised at how the words start to flow.
But that flow won't happen until you start.
So set aside however much time you can each day to just write.
Note: Writing is not editing. Those should be two separate tasks, more on this below.
Write from the perspective of a teacher
I see a lot of new developers writing "I learned this" or "I worked on this today" style blog posts and tweets.
While these are great, writing from the perspective of someone teaching these things does more for your credibility.
For example, say you are working on being a Front-End Developer and are focusing on React, and you are in the middle of creating a meal-planning app.
Rather than write a blog post about how you learned different things about React, write about "How to Build a Meal Planning App in React".
The shift is a subtle one, but coming at the writing from a position of authority will do wonders for your credibility and how your skill levels are perceived.
I suspect a lot of the reason people are hesitant to do this is that they are new and don't feel as if they can write from a position of authority.
But if you have accomplished something, you can write from a position of authority to anyone who desires to do the same thing but has not done it yet.
Plus, writing this way shows that you not only have the skills to do it, but that you have confidence in those skills, very attractive to potential employers.
Keep a running list of ideas
The way I avoid writer's block is by having a running list of ideas. Every time an idea pops into my head, I simply add a brief description of it to my ideas list.
Every time I sit down to write, I am either writing my current piece, or choosing the next idea from the list.
This also eliminates getting stuck because of decision overwhelm.
You don't have to think about what to write, you simply choose the next idea and start writing.
If you cannot think of any ideas, write a tutorial-style blog post walking through whatever project you are currently working on.
Separate writing and editing
This was a big shift for me.
I would constantly pause during my writing, rethink things, and edit on the fly.
Now I separate writing and editing into two distinct processes.
When I am writing, I am just writing.
I don't overthink it, I don't pause, I don't second guess my words, I just write.
Then after I feel like I've said everything I have to say, I will leave the piece and not look at it at least overnight.
The next day, I come at it with fresh eyes and edit it.
Write about more than just technical things
Since you're a developer, you might think that you should focus on writing development-specific topics.
But I would encourage you to venture outside of that zone a bit and write about other things that can relate back to development.
Companies ultimately hire people, not code. And people can fit in well or poorly at certain companies.
Your writing can give potential employers a glimpse into how you work and think, which can go a long way to making you stand out to them before they even speak to you.
For example, you may want to write about why you love coding, what motivates you to do great work, how you decompress outside of work hours to make sure that you can continue to do your best work.
All of these things ultimately relate to you working as a developer, but they are not overtly technical in nature.
Connect with People in the Tech Community
Connecting with others is the final piece of the credibility puzzle.
It is often the thing that developers see as being the major shift in what kinds of opportunities come their way.
Unfortunately, it's also sometimes the most difficult to actually start implementing.
This has a silver lining though. Because it is uncomfortable to do, most people won't do it.
That means there is an excellent opportunity for you to use it as a way to stand out among other developers.
Your portfolio projects and writing have created a solid online presence for you to build off of. Now it's time to amplify that by building up a strong network of people.
My two favorite tools for this are LinkedIn and Twitter.
The ultimate goal is to build up a network of people so that you don't ever have to look for work. You can simply reach out to your network to find something that's a good fit.
This takes a lot of time, but is the ultimate goal of building a network.
For now, the goal is to increase your visibility and make it known you are looking for work. This way people will notice you, come across the foundation you've built with your portfolio and writing, and you'll stand out.
Here's what I recommend you do to increase your visibility by connecting with others.
We're not going to make this awkward or try and throw ourselves at people. We're simply going to reach out to people who work for companies we admire and show genuine interest in their company.
Start by making a list of 10 companies you would love to work for.
Then find 2 or 3 people at each of those companies that have positions similar to what you would like to do.
Connect with them on LinkedIn and follow them on Twitter if you can (not everyone will have these accounts).
Then simply send them a message following this template:
- Short introduction.
- Thing you admire about the company.
- Simple, easy-to-answer question you have for them.
Here's how this might look if I wanted to work at Ghost.
Hi there! My name is Ken. I'm a self-taught Ember developer and absolutely love what Ghost is doing for the indie publishing industry. Your recently launched Membership feature is a game-changer! As a front-end dev at Ghost, what's the most rewarding aspect of working on a product with such a bold mission?
Note you are not asking for a job here, you're just initiating a conversation and starting a relationship.
It's short, to the point, and asks a question that you cannot get by Googling something.
This example works because I actually admire this about Ghost. Your admiration and desire to work for the company should be real. People are great at smelling deception from a mile a way and it will backfire on you.
Again, the goal here is not to hard-sell yourself for a job, it's to initiate a conversation and build a relationship.
Doing this consistently with different people and different companies will take you a long way.
Your goal should be to reach out to one new person like this every day.
As you start to build conversations with people, you can take the conversation further and perhaps meet with them in person or over video and discuss your career goals.
This is how you build a network of people that can bring you great opportunities as they present themselves.
How to Combine These Strategies into a Cohesive System
Now that you know the necessary components, it's time to quickly go over how we can effectively combine them into a system that we can execute on every day.
My favorite method for doing this is time-blocking.
Figure out how much time you can dedicate to this each day depending on your schedule.
Then chunk out that time block into thirds.
The first is for building, the second for writing, and the third for connecting.
For the first third of your time, you should be working on your current personal project.
For the second, write about the project you are working on or another current problem you are facing if your project doesn't facilitate writing well.
An excellent way to come up with things to write about is to treat your writing as public therapy.
Work through whatever current problem you are facing by writing it down, then go back and edit it and publish it.
Finally, the remaining third of your time should be spent researching companies and people and reaching out to one of them.
The steps outlined here may seem simple, and they are, but they are powerful.
Taking simple but powerful actions like this consistently is how you build an excellent career from the ground up, regardless of your existing background.
If you are currently working towards getting your first job as a professional developer, I think you'll love Lever.so, a step-by-step course and mentoring group designed to help you land your first job.