A little while ago, I had a question for the internet:
In a shocking and delightful twist, the tweet got a ton of responses—over 450 of them!—from some of the most wonderful folks I know on Twitter.
I went through each reply and grouped them into common themes. Today I'd like to dig into the data a bit, and see how folks actually got their start without a Computer Science or Software Engineering degree.
This is a personal thing to me since I'm a member of this club! I wasn't a great student, and none of my college applications were accepted. Now I work as a staff software engineer for Gatsby, and I also work part-time at Concordia Bootcamps as an instructor and career coach.
If you're aspiring to work as a software dev, my hope is that this article gives you an inside look at how others have done it, and you come away feeling inspired and armed with a couple new strategies ✨
While going through the replies, I tagged each tweet with 1 or more broad categories. Here's a quick bird's eye view of the data:
|Started own business||7%|
|Transitioned from an adjacent field||17%|
|Referrals & community||25%|
|Side Projects & Freelancing||42%|
|Personality & Skillset||15%|
A quick note on methodology: the data collected is in no way a representative sample of programmers in general. Also, I took a fair amount of liberty in interpreting and categorizing folks' tweets. It's an interesting snapshot of a select group of developers, but it shouldn't be applied too broadly.
Also, it's important to acknowledge that race and gender can be a factor when it comes to getting hired. There is bias in the industry, and this means that the hill can be a steeper climb for some. This dataset doesn't take that into account, but I think it would be irresponsible not to acknowledge it.
If you can't join ‘em, beat ‘em!
7% of respondents got their start by employing themselves. This is a clever idea that honestly never even occurred to me. You get 100% valid work experience, and you're under no obligation to tell future employers that you were your own boss!
If you've struggled to get traction through other avenues, this might be an idea worth pursuing, if your situation allows for it.
For developers who do go the traditional route with a CS degree, internships are a standard part of that deal. Amongst self-taught folks, though, only 14% got their start this way.
As a career coach, I've worked with a couple students who got their start this way. One student I worked with was offered a paid internship by her top choice, and she was able to parlay it into a permanent junior-dev role within a few months.
Because the first job is the hardest to land, an internship can provide a gentler on-ramp. In the ideal case, it can very quickly turn into a typical full-time dev role. And after that point, many more doors open up.
Companies hire interns for lots of different reasons. Good companies see it as a great way to bring in enthusiastic aspiring developers. The salary is lower because the company recognizes that interns will require mentorship, which can lower the output of senior team members. Unscrupulous employers aren't thinking in those terms, though. They're interested in hiring the highest number of developers for the lowest amount of money.
Sites like Glassdoor can help you figure out whether a company is hiring interns for the right reasons. Be very wary of any company with a pattern of bad reviews. If the company is a small start-up without much info on Glassdoor, you can try to sleuth out how solid the company is in the interview. Try asking questions like "What is the ratio of junior to senior developers?" and "How does the company ensure that interns receive mentorship?".
17% of folks said that their first developer job was for a company they were already working for in another capacity.
The thing I like about this path is that it shows that raw technical skills often aren't the most important thing to employers. Many will take an underqualified candidate that they know is a good worker over a qualified candidate they haven't worked with before.
In fact, I know at least 1 bootcamp student who got a free ride to the program from their employer. This student had previously worked in a non-technical role, and his company was willing to pay for him to go through the bootcamp to gain the foundational skills needed for a technical role!
If you currently work at a job with an engineering department, you might be surprised by what opportunities are already around you. Maybe it's worth talking with your manager!
25% of developers say that referrals played a role in getting their first job.
I think when many of us think of referrals, we imagine something pretty nefarious, like the boss hiring their unqualified nephew instead of the well-suited-but-unfamiliar applicant.
These replies paint a different story, though. It's (usually) not about convincing a relative to give you a job, it's about community involvement. If you meet someone at a meetup and are able to speak confidently and fluently about software development, it sends a strong signal about competence.
If you live in an urban area, look for local meetups. These events are usually free to attend. Recruiters do attend these events, but often the strongest connections are made with fellow developers.
Most companies have an internal referral process, so anyone you meet that works for a company can help put you on the recruiters' radar. Referrals are rarely enough to secure a job offer outright, but it's a great way to stand out from the stack of applications.
The most popular answer! 42% of developers say that the things they've built played a part in getting their first job.
Sometimes, folks worked on an amazing portfolio piece, whereas other folks did some paid work freelancing. Either way, they created a body of work that gave prospective employers a window into their skills, a demonstration of their abilities.
For the folks that work on passion projects, there's another advantage. When companies hire junior developers, they're often looking for candidates who are really enthusiastic and excited about software development. That energy can be contagious, and it can reinvigorate the entire team. By showcasing a project that is significant to you, it sends a strong signal to employers that you're ambitious and engaged.
It's important to recognize that having hours and hours of free time a week to spend hacking on side projects is a luxury that not everyone has. If you have young children, or if you're a caretaker for a sick relative, you likely won't have the time or the energy to fire up VS Code on the weekend. This is even more true during the COVID-19 global pandemic—many folks are scrambling right now with office and school closures. It may not be realistic to start working on a passion project right now.
Fortunately, it's not the only way to show enthusiasm. After all, 58% of people didn't think side-projects played a part in their own career success!
Finally, I have an umbrella category, which I've labeled “Personality & Skillset”.
Some of the folks in this category were able to get a job because they had exceptionally strong technical skills. Others had a diverse skillset that the employer appreciated. Others still were very persuasive, or excelled in the interview process.
Critically, folks in this category didn't fit into one of the others. They didn't credit their side-projects, or their community outreach, or an internship, or any of the other things we've looked at.
15% of respondents fit into this category. What this says to me is that 85% of developers had some sort of ace up their sleeve. Most developers don't find success by filling in dozens of generic applications and hoping for the best.
For every open junior developer position, companies typically receive dozens of applications. This can be discouraging, but there's another way to look at it—most applicants have not figured out a way to differentiate themselves. If you pick one or two of the strategies outlined in this article, you'll have a much better chance of standing out from the crowd and getting an offer.
If you add up all the percentages mentioned in this article, you'll notice that they don't add up to 100%. This is because people's stories don't always fit neatly into a single category.
When I was looking for my first job myself, I tried a few different things, but I think 2 factors deserve the credit:
- I worked on interesting projects, and had a decent portfolio
- I took an internship offer
I discovered that I really liked building niche side-projects, like a weekend project that let users compare yoyos by their specifications:
Those projects, along with some past freelance work, gave me the opportunity in interviews to showcase my enthusiasm and competence, and I got offered an internship at a small startup. Within a few weeks, I was able to re-negotiate it into a full-time junior-developer position, and I've been working ever since.
This article shares many different potential strategies, but it's important to recognize that not all of them will work for every person.
In fact we often give aspiring developers a laundry list of tasks, a todo list with everything that has ever worked for anyone. I feel like this is a mistake; there are only so many hours in the day, and we should spend them pursuing the things that make us stand out, not doing the same things that everyone else is doing.
We can tailor the things we focus on based on the skills we already have, and the ones we wish to develop. If you're extroverted, take advantage of that! Get involved in the community; you'll make connections that can refer you, to help you stand out from the crowd. If that idea sounds awful to you, though, your time will probably be better spent doing something else. Develop an amazing side-project. Build a blog, and do a deep-dive into the project, sharing the thorny technical challenges you hit and how you were able to overcome them.
If there's one thing I learned going through so many individual stories, it's that they're all different. There are lots and lots of different paths—no single category eclipsed 50%, so there is no "typical" path! It means you can craft a strategy unique to your situation and skills, one that encourages you to keep developing strength in the areas that interest you.