If I think through the corpus of posts I’ve published, it seems they rarely focus on concerns at the entry level. Or, at least, at the entry level of software, specifically. Today, I’d like to look at a reader question about getting that first programming job:
My question is, what if I’m not exactly a developer yet? I’m just wrapping up one of those full stack coding bootcamps, and I’m anxious about finding that first job. Can you offer any advice? I want to show that I care about doing things right.
First, I’ll offer a few caveats. Nothing in the reader question spoke to how much experience the asker had outside of the programming industry. That can matter, but I’ll write this post in such a way where it won’t. Secondly, because I’m not entirely clear on the context for the last sentence, I’ll assume it exists as a way to show (and provide) value to prospective employers. In other words, I’ll assume that “I care about doing things right” means “I want employers to see that I have good work ethic and care about the craft.”
The Entry-Level Conundrum
When I graduated college at the end of 2001, I graduated into the teeth of the .COM bubble bursting. Offers I had received dried up and interview invitations I had received evaporated. A new reality emerged — a reality in which entry-level folks found themselves subject to a paradoxical conundrum.
Nobody wanted to hire software developers without experience. And I couldn’t get any experience without getting hired. I did what anyone in my position would do and went to work at Radio Shack. (I’m actually dead serious about going to work at Radio Shack. That’s how bad things got in my search, and I needed money.)
Eventually, after almost a year of peddling cell phones, freelancing a bit, and looking for work in my spare time, I landed a job as a “Software Quality Engineer,” or, as I like to think of it now, “Software Engineer with Training Wheels.” I took the job, shed the training wheels, and never looked back.
While my story eventually ended in joy (or at least employment), I believe the entry-level conundrum holds true in the industry to this day. Developer fortunes as a whole have improved substantially since I graduated with my CS degree, but it can still be hard to find that first gig.
The Hiring Managers’ Conundrum
Having spent time as a manager and as a consultant helping with hiring, I have more perspective on this now. People that hire software developers face a conundrum of their own, albeit not one that threatens employment status, per se.
To understand this, put yourself in a hiring manager’s shoes and imagine what concerns that person. You might be tempted to think they worry about making a hiring mistake, but that’s not exactly right. Rather, they worry about making an unjustifiable hiring mistake.
As an analogy, think of the IT security theater in which companies make users change their passwords with absurd frequency. In spite of studies saying this is actually a bad idea, they keep doing it. Why? Because if some sort of hack ever happens and they didn’t have this policy in place, everyone would point fingers and accuse them of negligence. It’s CYA 101: Security Theater.
Think of avoiding entry-level people as diligence theater.
The truth of the matter is that humans are terrible at hiring strangers. Why shouldn’t they be? Meeting someone for three hours, asking them random questions, and then looking into a crystal ball to predict three to five years of working compatibility is such an absurd proposition that we would laugh off if we had better ideas. We’re going to whiff and whiff badly and frequently when we hire this way.
So, the hiring process tends to optimize for the least bad rather than for the most potential. Optimizing for the least bad means being able to say, “well, that didn’t go well, but he had four years of web development on his resume and didn’t swear at anyone in the interview, so who could have known?” It’s not that hiring managers, by any means, set out to make bad hires or that they don’t care; rather, they face extremely difficult tasks and do their best not to blow it.
Becoming a Safer Bet
What this means is that entry-level candidates need to find ways inside the cocoon of diligence theater. If you want to frame the job search correctly for yourself, start thinking in terms of, “how do I make myself a safe bet?” Or, more bluntly, “how do I make it so that no one can be accused of poor judgment for hiring me?”
First things first. Go out and find any relevant programming experience that didn’t come in a classroom or bootcamp. Have you ever beefed up an Excel sheet with macros? Gotten paid $22 to make a website for the pizza place down the street? Collected a bribe to do someone’s programming homework for them? (Just kidding about that one.) Get creative and find ways to boost your resume to reflect programming responsibilities at previous jobs, even if that was not the primary purpose of the role.
Next up, do a bit of job search hacking. Go out and file a doing business as (DBA) to make yourself an official business. Now you can add to your resume, “Freelance Web Developer at MyAmazingCorp” and be telling the truth. To beef this up, see if you can land a little bit of volunteer or inexpensive business to further bolster your cred. Build that $22 pizza site. Volunteer to build some kind of widget for a charitable cause. Put this real, if flimsy-feeling, experience on your resume.
Finally, round this out by developing an open-source footprint. Bite the bullet and get involved with existing projects. Build a thing and store it on GitHub. Develop a highly visible audit trail of “yes” answers to the question, “can you show me any examples of your work?”
Putting It All Together
Taking these steps may seem fake to you. But many in the industry suffer from impostor syndrome and grit their teeth through the “fake it ’til you make it” phase. That’s what you’re doing here. These experiences that you manufacture and string together may seem contrived, but they matter. They take you from “complete unknown quantity that could make me look bad” to “slightly less unknown quantity that someone else asked to program, so I could always point to that.”
At the end of the day, looking for jobs becomes a numbers game, particularly at the entry level. Having some work experience and/or public code to point to means fewer screened resumes, more conversations, and more chances to prove yourself — and, as a bonus, scraping together some initial development work will help you get better as well.
I’ll round out the post by bringing things back full circle. You mentioned showing that you care about doing things right. Taking any opportunity to practice programming in a professional context shows that you care. Contributing to open source shows that you care. Donating time to showcasing your work on GitHub shows that you care. And being able to articulate what you learned from those experiences in letters or interviews shows that you care and that you care about getting things right.
It could be that your boot camp program has an excellent placement record and you get a job no problem. It could be that companies in your area specifically hire at the entry level. Maybe what I propose will be overkill. However, if you have the time and ability, it makes for a great hedge of your bets. For what it’s worth, these sorts of strategies, employed over the duration of my entire career, are what have helped me scratch and claw my way to my current position in life, such as it is.
Have a question you’d like to ask me? Please feel free!