I have not been an entry level developer (where here “enty level” means pre-first-job) in kind of a long time, but I spend a few hours most weeks talking to one or more of them, and here is my “basics checklist” of things that y’all probably know already but if you don’t then you should

0. Keep afloat

Do your yoga or lifting or whatever keeps you grounded and able to have emotions. Don’t skip your weekly D&D session; you need something for you. …then cut out everything else that you can, because you need to put maximum effort towards getting this whole “making money so you can pay rent and eat” crap sorted.

Start a spreadsheet of what companies you have applied to, and who you know there, and what stage you’re in with them. It is good for morale to know what you’ve done, even if none of it has panned out yet… and knowing where you haven’t applied yet is also useful.

Not to be too dire, but- you know that saying about “when you’re being chased by a bear, you don’t need to outrun the bear, you just need to outrun your friends” This is kind of like that. You need to be better than enough other first-job-hunters to get that first job. Every extra bit of work you put in, is for that reason. Do NOT sabotage your peers, it will bounce back on you fivefold and also won’t help because you have more compeition than you could possibly sabotage.

When you succeed, you have a responsibility to help other people get jobs also. Invite them for tours of your office, tell them about what your getting hired process was like, tell them what your salary is so they know what to expect. Share your spreadsheet of places you applied and which youtube videos and prep programs were helpful to you (and which ones were not!)

First, get an interview

Your first challenge will be to get an interview. This is hard when you’re reaching for your first developer job! Basic principles:

  1. send out LOTS of applications. 30 a week is very doable if you use those linkedin and angellist “quick apply” buttons

  2. make personal connections. Go to as many tech meetups as you possibly can- 4 a week will tire you out but is very doable if you are job-hunting as a full time activity. Aim for visiting offices where you might want to work (regardless of the meetup topic!) and making and keeping conenctions. Having a twitter account will help you a lot with this, but do it via email or SMS or linkedin or what have you if that works for you. Remember to keep up your correspondance- this is not a one-time transaction, these are people you want to be helped by and help in return for years and years of your career. You will meet excellent people; don’t forget them. Many of them want to help you! It makes them feel warm and fuzzy, and it increases their credibility as a connector. But if you don’t reach out, they probably won’t.

Note- some people feel offput by attending meetups where they don’t care about the topic. I would say- you care about learning more about software development. Just because you’re not a python developer and are not planning to study it in the near future, it does not follow that you won’t get valuable education out of a python meetup. Most languages are like most other langauges, and most topics discussed at most language/framework-specific software meetups are applicable to other languages. Go to meetups about GIS because you don’t know anything about GIS (and want to see the office and meet people). Go to meetups about golang because you don’t know anything about golang (and want to see the office and meet people). Don’t annoy other meetup attendees by explaining to them at great length how little you know about the topic that they are at the meetup to discuss- just say “I know very little about F# and I am excited to learn more because it sounds interesting” or “I wanted to know more about F# and now that I’m here it’s a bit overwhelming, I am mostly a C developer”. You are not an impostor, you are a learner. And if the topic is something that you are deeply unenthused about, feel free to leave early to “move your car” or “see your children” or just because “I’m feeling tired”!

It is always better to apply through a recommendation from a current employee, because it puts you at the top of the (possibly still very long) list.

Places to find jobs to apply to

  • Look for big companies that have “engineering apprenticeship” programs (Google, slack, IBM, Microsoft etc)
  • Linkedin
  • Angellist

Places to network

  • tech meetups
  • public slacks- search for things like “python slack” “my-city-name slack” and check out the slack index or whatever will eventually replace it. Join as many as you can, and join the #job channel (it may have different names, but most slacks have a place for people to post jobs)
  • You do not need to use twitter. But if you do, I am happy to retweet your “I want a job” post. (remember to “pin” it also)

Second, get good at interviewing

I have personally done somewhere between 200 and 500 technical interviews in the last 6 years. All tech interviewing is bullshit. At its absolute best, it weeds out people who

  1. genuinely cannot code (but there are usually a LOT of false positives and even more false negatives) and
  2. are genuinely toxic and will make a workplace unbrearable by being jerks (but most of the time the way that a candidate behaves during an interview is only loosely correlated with problems you will have with them on a team, so most of the time this doesn’t provide any useful data either and just ends up letting the hiring group discriminate on the basis of “culture fit” which is often a proxy for “a person I want to hang out with” which to be fair might make for an increasibly comfy workplace for whatever type of people happened to get hired first)

Study whiteboard interviewing

Watch “how to interview” youtube videos BEFORE paying for expensive interview prep programs. There are thousands of them. Some examples to get you started:

Get together some people and do your own whiteboarding practice. Live-tweet it if you want to provide entertainment&interest (and get feedback from!) those people you connected with at the tech meetups.

Keep coding!

Keep making those little green github boxes. It might feel exhausting and pointless, but so much of what you’re doing here is proof of work- making an audit trail to prove your awesomeness.

Also, getting better at coding over time will improve your chances of standing out and getting hired.

Words, linguistics, and fitting in

It is often important to be able to talk like engineers - like being able to talk about data structures and algorithms by name. For example: “I did a mock technical interview today at my apprenticeship and when describing runtime complexity I actually started describing an algorithm and then was told “that’s right but you could have just said ‘linear search’”” Even for companies which are theoretically excited about non traditional backgrounds, it is safe to assume that you will go farther faster, the sooner that you can key into that CS-style shared vocabulary.

More about twitter

Some good examples of high quality software developer twitter usage, with analysis (yes this is what I love doing and Totally Not Why I wrote this post in the first place)

TODO

Resources

Thanks

Thanks to y’all who reviewed and made suggestions! Lo Ferris Carmen coderanger