Hi! I’m Alex Cannon. I create blog content to help developers like you improve their code, learn new topics, and more. I recently accepted a job offer as a Junior Software Engineer so I figured I could help someone else land a job too.

I didn’t get my first job alone. I had many mentors and books help my along the way. I’ll leave references to them at the bottom of this article so you can check them out.

I’d also like to thank the good folks at Free Code Camp for all their hard work creating a community of learners and an excellent curriculum.

Contents

My Story

I already have an about page where you can learn about my background, so I’ll just briefly go over my story.

  • 2017-05 - Graduated HS.
  • 2017-06 - Started Free Code Camp.
  • 2018-02 - Stopped Coding, unsure of what I wanted to do.
  • 2018-06 - Moved out. Got a job.
  • 2018-08 - Started coding again.
  • 2019-02 - Left Job. Relocated to be closer to Tech.
  • 2019-11 - After applying for a TON of jobs, accepted an offer!
  • Present - Starting my job in two weeks. Preparing for it.
  • Future - Continuing to learn & grow myself and my blog for all of you.

Big Picture

So, you want to get a job as a software developer? Alright. Let’s do it! Once I heard I Developer at a meetup I attended say this:

“Companies ask themselves 3 questions when they hire a developer:” –Wise Developer

  1. Can he do the job?
  2. Will he fit in with the team?
  3. Will he keep learning?

Your goal is to be able to answer all of these questions confidently. That’s it!

Below is a typical application process:

  1. You apply with your resume and possibly a cover letter.
  2. You talk with a recruiter and or contact at the company.
  3. You take a coding test and or do pair programming.
  4. You interview with engineer(s) at the company.
  5. You possibly do another interview or two.
  6. You get a job offer.

Each of these stages is a test about one or more of the 3 questions. If you pass all the tests, you get a job. Ask yourself this:

How can I be the best candidate? How can I answer these 3 questions companies ask themselves?

Your Checklist

Before I go too much into details, I highly recommend you make sure you have all the items listed below. The honest truth is that it is the difference between your application being throw in the trash or you getting an interview.

  1. Resume
    • Make your resume strong. This is the primary way companies root out candidates.
  2. Portfolio
    • This is how companies know you’re passionate and committed to your craft.
    • Place where you can sell yourself.
    • Show off your personality.
    • Prove you know what you’re doing.
  3. LinkedIn Profile
    • Nearly every recruiter uses LinkedIn. It is THE platform for hiring. Make a profile already!
    • Your profile should reflect your Resume.
    • Your profile should be detailed and written well.
  4. GitHub Contributions
    • Nearly every developer has a GitHub. Expect developers to checkout your GitHub.
    • Proof that you’re coding (given that you’re contributing).
    • Proof that you’re learning.

Don’t have a Portfolio? Make one. Don’t have a LinkedIn? Make one. The more impressive these items are, the better!

Can he do the job?

Often if you’re not asked to interview, it’s because the company decided you couldn’t do the job. So, in order to convince companies that you can do the job, you need two things:

  1. Be skilled.
  2. Communicate your skill.

Now, I’m not saying that you need to be a coding master. You simply need the skills a job requires (see job descriptions for the role you’re targeting to learn the skills required).

So, first of all, how do you get skilled? Learn to code?

How do you learn to code?

Personally, I’m self taught. I believe you should make the choice for yourself and the role you’re shooting for.

There are 3 primary ways to learn to code. Go to College, go to a coding bootcamp, or teach yourself.

Quincy Larson, founder of Free Code Camp, gives excellent advice on this subject during an interview with Matt at Engineered Truth. I recommend that you watch the interview before making a decision. Also, for some roles, like Machine Learning, a college degree may not be optional so be sure to do your due diligence.

I mostly agree with Quincy Larson, so there isn’t much else I have to say about this subject. However, even if you’re in college or a coding bootcamp, know that once you graduate, your learning doesn’t stop. The industry is always changing and there is always something new to learn.

Yipee!

Experience is King

Regardless of how you decide to learn, there are actions you can take to make yourself a better candidate.

In the IT industry, experience is king. So, whatever you can do to get additional experience will only help.

“But, it’s a catch-22, Alex! It’s impossible to get experience without a job!”, someone complains.

Not with that attitude! That statement is completely false. There are plentiful ways to get experience without a job. Which takes us to the next section.

So… Get Experienced!

“I’m a college / bootcamp student. Why do I need experience for my first job?”

Great question. You don’t need experience to get a job. However, how are you different from any other college / bootcamp student? Getting experience only helps you learn and increase confidence companies have in you.

Here’s my golden nugget of advice: Get experienced while you learn.

Now, I consider learning & experience to be separate. Learning is, well, learning. Experience is real, impactful contributions to non-profits, companies, etc.

How do you get experienced without a job? It’s easy peasy, lemon squeesy. Don’t sweat it. I’ll give you plenty of options below:

  1. Contribute to open source
  2. Contribute to a non-profit
  3. Contract work (more like slave labor)
  4. Build your own projects

These are just 4 options you have to get experience. You can (and should) do any of these whether you’re a student, bootcamp graduate, or self-taught.

When you do start work on one of these options, the best projects allow have these qualities:

  1. Learn new / modern tech.
  2. Learn from better developers.
  3. Flexible for your busy schedule.
  4. Have end-users (This is VERY impressive to employers)

If you’re just starting out as a developer, you should build your own projects. Otherwise, I recommend contributing to open-source and non-profits. Open source and non-profit projects have all the qualities I listed above.

I don’t recommend seeking contract work with little to no experience, but it’s an option. Why? In my opinion if you’re still learning, you shouldn’t be creating production code for someone. Also, you’ll have to charge dirt-cheap rates. Is this basically slave labour? Is it?

Communicate your skill

It is vitally important that you communicate your skills well. It is just as important as learning to code.

How do you communicate your skill? There are several ways you can do this:

  • Detailed Experience on Resume.
  • String Portfolio.
  • Impressive GitHub.
  • Crush coding tests.
  • Practice talking about software principles or concepts.

I won’t go into detail for any of these, I think they’re pretty straight-forward or you can learn more about them with a little research.

The takeaway is that you market yourself as much as you can!

Am I job ready?

It’s hard to judge if someone is job ready. The easiest way to tell is to ask other developers. Ask 3-ish developers to get different opinions.

I’ll also ask you this: Can you do what’s in the job description without help from the team? If so you’re probably job ready or close.

Can he fit in?

Companies will look at your portfolio, work history, and potentially call old co-workers to see if you’d be a culture fit.

There isn’t much you can do about a company’s decision making on this. Overall, just be yourself, a good person and not a jerkface and you’ll be fine.

Will he keep learning?

Having a Portfolio and GitHub are great ways to show your passion and also proof that you’re growing and improving.

Companies want to hire people who are passionate and will keep growing.

Job Search Strategy

Network

Probably one of the easier ways to get a job is through a personal connection.

There’s a lot of reading on this subject, so I won’t dive too deep. I’ll just say this: I highly recommend you go to meetups in your area ASAP and be involved in the community.

Don’t ask people for a job. Do mention you’re looking for work. If the person wants to help you out, let them bring it up. This way you don’t come off as needy. \_(-_-)_/

Traditional applications

There’s two big “traditional” job search strategies. But don’t limit yourself there! I’ve heard of people sending applications with pizza. If a company doesn’t accept you after you sent them an application with pizza, I don’t know what this world has come to.

Anyway… there are 2 big job search strategies. Honestly, I’ve heard of results from both, so my advice is to try both strategies.

  • Sniper strategy

Strategy: Send out personalized applications.

This is the strategy suggested by John Sonmez in his book The Complete Software Developer’s Career Guide, which I highly recommend.

  • Shotgun strategy (boo hoo!)

Strategy: Send out as many applications as you can.

This is a strategy my mentor, Dylan Isreal suggested to me (at least when you’re starting out).

This strategy is frowned upon, but hey, I’m not here to judge. Do what you want. Go bird, fly away! Ahem.

Anyways, I won’t tell you how many applications I had to send out to get a job, but expect to send a TON of applications.

Negotiation

There’s a lot to talk about when it comes to negotiation. I’ll just say this: Take the first reasonable offer you get. You should negotiate, even for your first role, but don’t refuse an offer that is reasonable for your experience and area!

Personally, I use glassdoor to find salaries in a given area to make sure I’m being paid fairly.

For your first role, experience is more important than salary. Dylan Isreal has a great video on negotiation you can checkout if interested.

Conclusion

That about sums it up! If you’d like more information about this subject, read The Complete Software Developer’s Career Guide by John Sonmez or watch some of Dylan Isreal’s videos.

Also, don’t be afraid to ask for help when you need it! Other devs in your area are most likely happy to help you out or you can pay for a consulting session.

Mentors

Books