Getting your first tech job
September 3, 2019
Getting your first tech job. It can seem like an impossible task. Everyone is hiring, yet no one is offering what you're looking for—let alone contact you for an interview. And if you get the interview, well maybe that's the toughest part.
Getting your first tech job may be one of the hardest things you'll do in a tech career. It's not that it's hard to do, per say, but it's difficult because there are so many factors outside of your control. There's timing around what jobs are available, if they fit/match you and your skillset, and if their compensation and benefits work with what you're looking for.
It may be difficult, but I assure you it is doable!
I want to breakdown the mindset and attitude you should have when looking for your first tech job. There are many factors outside of our control, but there are also many factors in our control. Let's commit to taking the actions we can take, and leaving the things we can't control out of our mind and worry. After you land your first tech job, the world basically opens up for you. By getting the first job you've closed that gap from no experience to some experience, and that's huge. search.
There's really two big things to know about finding your first job, and they are:
- You are perceived as risk to a company
- You are playing a numbers game
Your Risk Profile
When looking for your first programming job the name of the game is risk. The company you are applying at is not evaluating you on whether you can jump in and start creating value, or lead a team, or tackle any of their projects. Their number one question is will this person make it here?
Companies know they will need to teach and train a new developer, and it usually takes about six months to a year to achieve this. Unless you've built and maintained large production apps in your free time, you just won't be exposed to the full depth and breadth of problems and skills you will need—and that's ok. The company knows this, and they just want to know if you can stick it out long enough to become a functional and productive member of the team.
So, when a company is interviewing you they are first assessing the risk of hiring you. I've mentioned this idea before, and that's why my first steps for a new developer are to gain broad and practical experience in the use cases you're likely to encounter on the job. CRUD apps, APIs, Git, basic devops—these are all things you're likely to encounter at your first job. Having some practical knowledge and experience you can point to (a toy app, a Github link, a blog, etc.) shows these companies that you have a base of solid knowledge to work from—and this drastically lowers the risk of them hiring you. If I wanted to teach somebody multiplication, and I knew they already knew basic addition, I would have more confidence in them than someone with no basic math skills.
So, lower your risk. Build stupid toy apps and display them in public. You're practicing for the real thing.
Playing the numbers game
Secondly, looking for a job is a numbers game. Even though I'm not a sports person, I like to think about getting your first job using this sports metaphor:
Imagine someone told you they would give you a tech job if you made a half court basketball shot. To the average person, this is a fairly tough task. First, it takes a decent amount of strength to get the ball from the half court line to the goal, and secondly it takes a lot of skill to actually get the ball to go in. Add in some wind, sun glare in your face, and maybe a person guarding you trying to block or disrupt your shot, and it seems like a pretty daunting task.
I think this scenario is very similar to finding your first tech job. There's factors like wind and sun you can't control (what companies are hiring or what types of jobs are available), there's the person who may be guarding you (poor interviewers or discrimination or disadvantages of other types), and then there's the actual task of making the shot.
But, similar to trying to make a half court shot, there are things you can do to improve your chances of succeeding. If you went out and practiced making half court shots everyday, your skill would increase and thus your odds of making the shot would go up. This is the equivalent of making dozens of toy apps, or learning and practicing your skills every day. The more skill and practice you have—the more likely you are to succeed.
Similar to a sports coach, there are tech coaches or mentors that could help you along your way. You might find these people at places like local meetups, conferences, or even random connections on places like Twitter (I'm also happy to help, just send me a message).
What if in our hypothetical half-court scenario, the company says will accept a video submission of you making the shot? They just want to see that you are capable of making the shot—afterwards they'll help you hone your success percentage. Maybe this could be an allegory for a long list of side projects, blog posts, and meetup talks you've given. This proof-of-purchase could help you bypass hurdles you'd have to make in real-time.
And then finally, just like in other areas of life, sometimes you just have dumb luck. You make the first shot you take, or the third one. Sometimes, you just get plain lucky and things just line up. You find the right company, nail the interview, and that's it! Sometimes it does just work out.
In the end it's a numbers game. The more skill and experience you have, the more people you know, the more you can prove you know, and the more interviews you do, the higher the likelihood of landing the job (I will go into interviews in much more detail in the future as well).
In the end, just keep taking shots on goal. You'll get better over time. Keep learning. Keep making things. Keep getting to know people and expand your network. I don't mean network in the sleazy way—just go meet people, talk to them, be nice to them, take interest in them, and over time relationships will form. As a personal anecdote, my best jobs have come from direct referral from a friend or colleague—they're invaluable relationships.
Ways to increase your odds
I want to dive into these things in more detail in the future, but here's a list of things that will help up your chances:
- Do a lot of interviews (interviewing is a skill that takes practice and time to gain)
- Attend meetups, mixers, community events, conferences, etc.
- Give a talk at a meetup (most meetups have shorter 5-10min "lightning" talks to get you started)
- Keep learning.
- Keep building.
- Put your work out in public (Github, blog, tweet, links on your resume, etc.)
- Work with a recruiter in your area
A word on computer science degrees
Now keep in mind: I have a computer science degree. In my career, I think this degree was merely a checked checkbox that allowed me to get my first job. When I started looking for my first job back in 2012, a CS degree was basically a prerequisite. Unless you had a lot of experience—you needed the piece of paper.
Luckily, the tech industry as a whole has shifted from needing a piece of paper to asking what can you do? And this is a really great thing. If you asked me to start over and said you can go to a traditional four-year program, or you can have the money you'd spend on tuition plus four years to learn and gain experience—I'd bet I could get that same job in half the time or less.
The truth is: you don't need a CS degree. If you have it, great. If you don't, great. I see people leaving bootcamps with more ability to program than a CS graduate. And this is not a slam on CS degrees or programs—they're just different skills. CS is theory; programming is application. They're just different skills.
After you get the first job
After you get the first job, the world is your oyster. Even though the difference between 0-1 years and 1-2 years experience is still 1 year in both cases—they couldn't be more far apart in terms of value. You see, the first year or two at a job shows every future employer that you made it. You got over the hump. You may not know everything, but you do know some things, and you've proved that because someone paid you money to do it for a year or more.
That first company took all of the risk on you for hiring you, and you passed. Now companies moving forward know you've been in a real-world development environment and succeeded. The question then becomes: where is your skill level at and what can you handle?
I want to talk about career progression more in the future, but once you have your first job it's a good idea to stay there for at least a year to two years. During this time you want to be maximizing learning. Soak up every new piece of information and try everything you can do to broaden your experience.
That last section is just to give you a heads up about what you can do in the future, but you're still pre-first job, keep pushing forward, keep increasing your chances of success by the actions you take, and in time you will get it!
As always, feel free to reach out to me on twitter (@johnmosesman) if you have any questions on this or any other development topic.