Well, 2020 happened.
And so far, 2021 has been...also interesting.
We can't control the actions of those around us, we can only control our own. So rather than drowning ourselves in the negative, let's focus on what we can do to improve ourselves, improving the world around us in the process.
It's a New Year - Time to Make Some Changes
And so here we are in 2021 with a new opportunity to do something amazing. I don't know what it is about a new year, but something about that calendar change spurs motivation in people.
The new year motivation surge has never made any logical sense to me, and yet I can't help but feel the same thing.
Logical or not, the new year provides an excellent opportunity to take advantage of the psychological quirks that make us human in order to do something life-changing.
But New Year's Resolutions are fickle, fleeting things. Rather than trying to implement a vast, sweeping change based on temporary motivation, let's use this motivation to instill some sustainable habits that can translate into launching and growing a successful development career.
Then when the initial motivation inevitably wanes, we have already established simple but high-leverage habits that are easy to stick to.
This is the way I recommend that new and aspiring developers launch their careers in 2021: by focusing on small, high-leverage, daily actions.
These daily habits should revolve around one key principle of building a successful career:
Building valuable skills and convincing others you possess those skills.
Ultimately, every hiring decision boils down to this.
That can be hard to do as a new developer with no experience. The key is making yourself stand out among the sea of other developers in the exact same position as you.
In this post, we'll go through a step-by-step process for doing exactly this, regardless of your current level of experience or education.
We'll do this in 5 phases:
- Getting Your Mindset Right
- Building An Online Presence
- Creating Valuable Things
- Connecting with People
- Pitching Yourself
Let's do this.
Necessary disclaimer: This advice is from my personal experience combined with what I have seen around me and heard from others over the last 6 years of being a software developer.
I am not saying this is the only way to do things or else you will fail, but it's perhaps a different way of doing things than a lot of people are doing.
I'm seeing a lot of people feeling burnt out and discouraged not being able to find a job, so I wanted to offer some advice. Hopefully, it helps some of you who are currently struggling to land that first job and feeling hopeless.
First, get your mind right
This is often overlooked, but it's so important. As a new dev with no experience, you have to find other ways to make yourself stand out. It is very, very difficult to stand out when you are simply submitting your resume and application just like everyone else with no context.
Going this route, you are leaving everything up to chance and hoping that your resume or application will happen to stick out to whoever is reviewing them.
As a piece of circumstantial/anecdotal evidence to support this, I recommend giving Josh Comeau's post on getting hired without a degree a read.
He polled his Twitter followers and found that around 85% of them did not get their job by submitting endless applications. They got their job because of a portfolio of side projects, their network, and their personality.
So the key here is to leverage those things in order to make yourself stand out. How do you do that? We'll get into that in the next sections.
Before that, it's also important to note that most companies do not hire junior devs for their current skills, they hire them for their potential skills.
The most important thing you can do as an aspiring junior dev is show that you have the ability to learn, that you are eager and hungry to learn, and that you are capable of being taught and coached.
Your personality matters just as much, if no more, than your raw coding abilities at this stage, so you need to make sure you let that part shine and make yourself stand out.
Next, get your online presence in order
When I say online presence, I mean GitHub, LinkedIn, your personal portfolio site, and somewhere to write. This could either be a platform like DEV or your own site. But if it's your own site, make it a separate area from your portfolio.
Choose a high-quality headshot and use it across these platforms.
For GitHub, it should be filled out completely and show that you are active frequently. Your projects should also have well-structured and thought-out READMEs. Put in that little bit of extra effort that shows you really care about what you are doing.
Refer to the following excellent sources for setting up a good LinkedIn profile and building a great portfolio site.
- How to get the most out of your LinkedIn profile
- Top 5 tips for creating a great LinkedIn profile
- hHow to build an effective developer portfolio
As far as writing, write about what you are currently working on from the perspective of a teacher. So, instead of writing about "I'm learning to build a meal planning app", write "How to Build a Meal Planning App with React and GraphQL".
You can make it a multi-part series and write as you are building it, making sure to write about technical hurdles you are overcoming.
Injecting your personality into your writing is also huge. Don't feel like it has to be all technical – write about why you like to code, what it means to you, where you get your drive from, those kinds of things.
Then, build real things that solve real problems
This is another change in the approach that can have a huge impact. Instead of building simple apps by following a tutorial or a course, build something completely unique that solves a real problem for you or someone else.
If you can't think of anything, ask the people close to you what their biggest struggles or annoyances are day-to-day. Then start learning to see tech-based solutions to problems you encounter.
Next, write about the process of finding that problem, discovering the solution, and building the solution.
Yes, this is more work and much harder than following something written and built by someone else. But it is what you'll be doing when you get hired and is massively impressive to potential employers.
Ultimately you will not be hired to code, you will be hired to solve problems. Code is just the mechanism you use.
After that, start networking
Your online presence won't do you much good if nobody sees it. So now is the time to start reaching out to others and building up a network of people. Find companies and people you admire and connect with them on LinkedIn or Twitter, or even directly by email.
These can be simple emails or DMs like:
"Hey, my name is Ken. I'm an aspiring React developer and saw that you guys [made this cool thing/contributed to this cool cause, etc].
I really admire your [work/culture/cause/whatever thing about them you admire]. I'm new to development, but am eager to learn and someday contribute to a great team.
As a company that does [thing you admire] well, what's the #1 thing you look for when hiring a junior dev? Looking forward to learning from you! Ken"
This email isn't meant to get you a job, it's meant to be a quick message you can send to start building a relationship. Try to send one of these every day to start building real relationships with people in the field you admire.
Connect with other developers, potential employers, and recruiters on LinkedIn every day. Start engaging and commenting on their content, plus writing content of your own on what you are learning and insights you are having.
Your goal here is to get on their radar and stay there.
Finally, do your research and start pitching yourself
Ultimately, the goal is to have a portfolio and network strong enough that you have opportunities coming to you, but that can take time.
Pitching is my favorite short-term way of making yourself stand out among a sea of other people.
Keep an open mind about this. A lot of people find this awkward or cheesy, but it does wonders for catching the attention of someone and proving you have the ambition and drive to do good work for them.
Here's how it works:
Find 10 or so companies you really admire and would really love to work for. They don't necessarily have to be hiring for your position, but it's a bonus if they are.
Do some research on them, find out what their values are, what is important to them, and what kinds of work they do. Try to identify potential gaps in their work that you might be able to help fill, or simply contribute to helping fill if they are already working on it.
Then, record a quick video pitch. Try to keep it to under 3 minutes, 2 is ideal. In the pitch, quickly introduce yourself, tell them why you want to work for them specifically, and tell them what value you can bring to their team. Talk about your skillset and your ambition.
Finally, reference a project that is relevant to the work they do. If possible, build a small micro-project that aligns with their vision and goals. I realize not everyone has the bandwidth to do this, but it's great if you can.
Create a dedicated page on your portfolio site that has all this stuff on it, and send it directly to the person in charge of hiring when you submit your application. Or just send it straight to them if they are not currently hiring.
The goal is to make yourself stand out as someone that is passionate about working for them specifically. You want to prove that you either have the skills necessary to do so, or are willing and capable of learning them.
Turn it into a system
This is all well and good, but I started this post by saying we need to instill small but high-leverage habits and try to be consistent with them.
So far I've given you a lot fo information, now let's distill it into daily and weekly actions you can take to actually make this happen.
Step 1 - Set aside create time and connect time
Ultimately these strategies boil down to creating things and connecting with people. Now that you have a good online presence set up, it's time to get started on the rest.
So look at your schedule, see how much time you can dedicate to each, and block it out in whatever calendar you use.
There's no reason to dedicate more than 30 minutes to connecting time, so once you fill that up, assign the rest of your time to creating, which includes building things and writing about them, and pitching, which can follow the process we outlined above.
If you don't yet have your online presence set up and optimized, that is what you should focus on for your create time.
Get a project or two up and your online presence up, that way you actually have something to show people.
The first thing you need to do is actually learn some dev skills and demonstrate them. Go through freeCodeCamp or another learning resource, and start building immediately, as you are learning. Do not wait until you complete something or "feel ready" to start building your own things.
You don't have to set aside hours a day if you can't. Set aside what time you can, keep it sacred, and focus everything you have on building in that time.
So, right now you should have two time blocks in your calendar, for creating and connecting.
In that connect time, you should be reaching out to one person vie email or social media, and connecting with potential employers, other devs, and recruiters on LinkedIn.
Be sure to limit this time to 30 minutes so you don't get sucked into the social media rabbit hole.
Step 2 - Add in pitch time
Once you have a real-world project or two up, your portfolio site built, and your online presence optimized, then you can start pitching.
Add a pitch block to your calendar. You can either make this part of your connect time or cut into your create time, whichever works better for you.
During this pitch time, follow the steps I laid out above in order.
Find your 10 companies and do your research on them. Then go through one-by-one and craft and send your pitch.
If you follow this simple two-step process every day, continue to work on your skills and cultivate the right soft skills like ambition, humility, and effective communication, I am absolutely sure you will be able to find a job.
This has been a long post, but hopefully it has given you an idea or two for how you can increase the effectiveness of your job hunt.
Again, this is not meant to say this is the only way. But I see a lot of people out there saying it's just a numbers game and you have to just apply and hope for the best. That's not necessarily true.
There is an element of luck to this, but having a good strategy and focusing on ways to make yourself stand out can go a long way towards maximizing any luck that does come your way.
If you are reading this and want some in-depth guidance and mentorship, I'm releasing a combination course/mentoring group for people wanting to get their first dev job. My goal for 2021 is to help 1,000 developers get hired. I'd love it if you were one of them.
You can also follow me on Twitter for more thoughts and advice on launching and growing a successful, fulfilling career as a developer.