It’s an eternal conundrum for new grads: how do I get a job with no experience if I need experience to get a job? Self-taught software engineers and those emerging from coding boot camps often lack crucial internship experience to land their first software engineering job. That said, you can still prove to recruiters that you:
- Know how to code
- Are dedicated to practicing your skills
- Can work well in a team
Your main strategy is to show hiring managers that you are an experienced programmer, even if you don’t have formal work experience.
Build your web presence
Create a portfolio site
A strong portfolio of 3-4 well-chosen passion projects and frequent contributions to open-source projects can compensate for an absence of internship experience. When it comes to passion projects, make sure you show the recruiter projects other than coursework from a coding boot camp, if you participated in one.
This is important for two reasons: a) It shows you’re dedicated to practicing your coding skills outside of class; and b) Capstone projects tend to be very similar and don’t help you differentiate yourself from your peers.
If you can’t think of a passion project, cloning a popular app like Uber or Twitter is another impressive way to demonstrate your skills — but it can’t be a surface-level clone; it needs the same functionalities as the original.
Hiring managers we spoke with for market research purposes told us that a key skill new grads lack is production. Most passion projects and capstone coursework remain as prototypes, so the coder may not have experience with software testing and making server-side adjustments in real-world conditions. A great way to gain production skills is to create an actual mobile app that you deploy to a mobile app store.
Aside from the projects you display on your website, the site design itself should show off your capabilities. Photo galleries, responsive web pages, a video resume introducing yourself — all of these help prove you have the skills you need for the job you want.
Contribute to open-source projects
Many coders use their GitHub profile as their portfolio site. Why? You can use it to show open-source projects you’ve contributed to as well as projects you’ve started. Your dashboard indicates at-a-glance how often you commit code and how popular your code is. Consequently, GitHub is one of the first destinations hiring managers go to evaluate a candidate’s web presence.
When it comes to optimizing your GitHub profile, consistent activity on the site is a key factor. Your profile lists your contributions to repositories with a color-coded heat map broken down by month and year.
Each individual contribution needn’t be major — it could be a bug fix, feature suggestion or commit message — but you should make sure you create proper documentation each time. Remember, a good coder also knows how to write documentation for other humans to engage with their code.
When you create your own project, a well-written ReadMe file is one of the most important parts of a good repository. It tells people:
- What the code is for
- How to build/install the code
- How to contribute to the project
When you contribute to an open-source project, write a detailed commit message to explain why you changed the code. This helps a recruiter assess how well you’ll work on a team.
- The subject line should describe what was changed in 50 characters or less. Also, include a short annotation about the type of commit, such as a big fix, feature, change to the documentation and so on.
- The body should give a more detailed description of the change. This should typically be 72 characters per line to ensure that the message fits into a terminal window when using Git on the command line.
2. Write a killer entry-level software engineering resume
If you, like many Springboard students, obtained a bachelor’s degree in a non-computer science-related field and graduated from a coding bootcamp, mention your boot camp experience first and your college degree second.
Don’t waste this section by reiterating which job you’re applying for. The summary is your chance to explain things like a career switch, inconsistent work history or outstanding work-related achievements. You can also explain the projects you’ve been working on in lieu of work experience.
If you don’t have work experience, this section is the most important part of your resume. Projects can be anything programming-related, be it a Python script, Java program, webpage or mobile app. Don’t just list the technologies and languages you know; show how you’ve used them. Assuming you’re submitting an electronic copy of your resume, embed hyperlinks to each project within your resume.
Select projects that show a variety of skills, such as using standard frameworks/libraries, understanding full-stack development, creating mobile apps and setting up a development environment.
Build some iPhone apps, web apps, whatever! Honestly, it doesn’t matter that much what you’re building as long as you’re building something. You can build a fairly meaty project in one weekend. This means that with about 3-4 weekends of work, you can make your resume go from so-so to fantastic. Seriously — I’ve seen a lot of people do this.
— Gayle McDowell, former software engineer at Google and author of Cracking the Coding Interview, on Quora.
3. Write a software engineer cover letter that emphasizes projects
Yes, cover letters are mere formality, but following formalities shows you’re professional and prevents you from being prematurely disqualified from your dream software engineering job. If you lack work experience, the cover letter is your chance to convince the hiring manager that you’re a rockstar coder anyway.
If you do mention previous job roles, make sure to explain what you learned from it — don’t just list your responsibilities.
Here’s a general formula for a good cover letter:
- An introduction paragraph (who you are, how you found out about the company, what you have to offer)
- Why you’re perfect for this company (perhaps it’s culture fit, or you use their products or admire their CEO)
- Why this particular position is perfectly suited to you (where possible, use phrases from the job description and explain what relevant experience, skills or qualities you have)
- A closing statement that invites the reader to take action (set up a phone call or in-person interview)