Some stuff I’d like to say to new developers

Can I get a job as a software engineer without a degree?

Short answer — yes! Longer answer — probably, but it’s not going to be easy.

  1. Do show evidence of work — a github profile with actual projects, open source contributions, stuff you’re proud of
  2. Do show what education you’ve got and the initiative you’ve taken to try and get more experience(boot camps, classes, projects, internships, etc)
  3. Do not inflate your resume — I’ve interviewed people who lied on their resume and it shows in a hurry and I mark those applicants as don’t call back. Present your strengths honestly, don’t inflate.
  4. Be realistic — if you’re graduating from a 9 month bootcamp and no work experience shoot for junior dev positions, don’t apply to senior roles when you don’t have the experience or knowledge. You’re starting off from scratch and that’s fine! Just be ready for the level you’ll come in at
  5. Don’t get discouraged when you don’t hear back right way — keep trying. There are many, many reasons why someone might skip over a resume from a boot camp grad (maybe they’re team is over worked and they can’t take on a junior, maybe they tried a grad from another bootcamp and it didn’t work out, maybe they just have too many resumes and that’s an easy filter). But not getting the first job, or the 500th you’ve applied to doesn’t mean you won’t get the 501st. Keep expanding your experience, keep trying!

Ask yourself if you like programming

Hollywood likes to show programming as Tony Stark manipulating 3D diagrams and building flying suits, when in reality it’s slow, detail, often painstaking work. There will be times you’ll feel like a hero when you fix a bug that’s been plaguing your time, but there will be lots and lots of other times you are frustrated on a problem for days before you make any progress.

Your interview will probably involve data structures and algorithms, even if your job does not

A lot of programming is data structures and algorithms, and knowing when to use which of each of them. A crucial part of being a programmer is being able to reason about different data structures and algorithms, grasp the tradeoffs between selecting them and apply them to build software.

  1. They’re a relatively simple form of problem that tell me if you can reason about abstract concepts and problem solve
  2. They’re a great way to force you to write code

All Software Engineers Feel Dumb Sometimes

Several times a week (if not once a day or more) I think to myself, “I have no clue what is causing this problem.” The severity of the “no clue” part varies pretty widely — it could be 30 minutes of figuring out why a build broke, days of debugging a dependency that’s failing, or weeks of tracking down transient issues. And I feel like an absolute idiot the whole time.

  1. Software engineering is a great field to feel confused in — if you deep dive the code, read the manual, and dive in you can understand any framework or problem
  2. If you feel dumb, it could just be because this field is really, really difficult. If you find yourself struggling with a concept it could just be because it’s complicated
  3. Ask! If you’re confused, chances are someone else in the room is confused too. It may be a conversation that should be taken off line, but don’t be afraid to ask for clarification!

Be the deep dive guy!

If you want to show that you can contribute as a software engineer off the bat be the bug squashing, deep diving, code reading volunteer. Don’t wait for someone to show you the problem line, don’t ask for help before you’ve looked, clone that repo, grab the line number from that exception, and start deep diving!

  1. Shows you’re not afraid of code, you’re willing to go look and solve problems
  2. Gets you reading your teams code base, which is incredibly critical
  1. Take notes — lots, and lots of notes! This will help you show evidence of your work, could help document some functionality that’s misbehaving, and lets you walk someone else through your rationale for a suggested fix
  2. Assume nothing! That function labeled multipleNumbers() might have a side effect that’s not obvious. Question all of your assumptions and go a little ways down each path until you’re comfortable with what it does
  3. If you’re spending a lot of time do regular check ins with a mentor or team lead to make sure they don’t think you’re too far off in the weeds (this is where your notes come in). Tell them what you’re thinking, ask if they want to redirect you. That shows that you’re a team player and gives them a chance to pull you back if you’ve gone too far down the rabbit hole.

We are so excited you are looking into software engineering!

Oh my word, I can’t even explain how excited we are that you’re here and looking into this! I love programming! It makes me excited to get up and go to work, it motivates me to blog about it, it keeps my brain cooking and trying new issues. Software engineering is a blast!

--

--

Get the Medium app

A button that says 'Download on the App Store', and if clicked it will lead you to the iOS App store
A button that says 'Get it on, Google Play', and if clicked it will lead you to the Google Play store
Brian Olson

Brian Olson

Engineer, formerly at Amazon, currently at Google. All opinions are my own. Consider supporting here: https://devblabs.medium.com/membership