If you’re currently studying to become a software engineer, either at a university or a bootcamp, you may be hearing a lot about internships. Internships can be a great way to get some on-the-job experience before you apply for full-time jobs, but you may be unsure if it’s better to begin applying immediately for full-time jobs.
In this guide to software engineering internships, you’ll learn
- the pros and cons of internships
- the difference between internships and apprenticeships
- how to get a software engineering internship
Why do a software engineering internship?
If you’re in a coding bootcamp or computer science program, you’re probably wondering the best way to get a job after graduation. You may even be asking if an internship is right for you, or if you should immediately look for a full-time role.
Pros of internships
An internship provides several key benefits as you’re entering the job market.
- You can add experience to your resume while getting your foot in the door. Getting that first job is hard. Everyone’s had to go through the gauntlet of applications, interviews, and rejections. Having an internship on your resume begins to build up your list of experiences and demonstrates to future employers that you are hirable.
- You can continue to learn learn while gaining real-world experience. Hiring managers for full-time roles look for your ability to work in a team and contribute code to production-level systems. An internship provides both: you work in a team setting, and you have exposure to the company’s production systems. In future interviews, you can reference these experiences with your team and your coding to highlight your collaborative and technical skills.
- Internships may lead to full-time work at the same company. While not always true, some internships do end with a job offer. If you liked the company and would enjoy working there full-time, this outcome is a best-case scenario for your internship!
- Internships often have a lower barrier to entry than full-time roles. With internships, employers aren’t looking for experience. Instead, they are looking for the ability to be coached, capacity to learn, and willingness to grow. Many “entry-level” full-time roles still require some form of experience, so going first for an internship may be less of a challenge than a full-time role.
- You can try out what it’s like to be in a certain role or organization without committing. Internships are opportunities to learn more about working at a particular company or being in a specific job without having agreed to do that job on a permanent basis. Maybe you think you might really like data engineering but aren’t sure yet or want to try out working on machine learning. An internship is a great way to try without being 100% certain that’s your career path.
- Internships allow you to begin building your network. Even if the company you intern for doesn’t extend a job offer, the people you worked with may be able to introduce you to more folks and even provide referrals to other jobs. Staying in touch with the people you meet in your internship is a great way to begin nurturing your professional network—the folks you can reach out to for advice, guidance, and jobs down the line.
Cons of internships
There are some downsides to internships, though.
- Internships may pay (much) less or not at all. Depending on the company and program, interns may be paid a small stipend or earn course credit for their work. Internships rarely pay as much as a full-time job at that company would. This reality can be a huge barrier for some folks who don’t have the savings or resources to forego a full-time salary.
- Internships aren’t a guarantee that you’ll get a job offer to work at the company. Internships can and do end with job offers, but sometimes the internship will come to an end, and you’ll still be on the job hunt.
- Internships require advance planning. If you’re an undergraduate, you may need to start applying as early as your freshman or sophomore year (you should reach out to career services at your school for more guidance) and definitely by your junior year. If you’re in bootcamp, you’ll want to start considering internship opportunities as soon as you begin your bootcamp.
What’s an internship versus an apprenticeship?
Internships and apprenticeships are both geared to give you on-the-job experience. In both cases, companies find less experienced workers and have them work at the company for a pre-determined period of time and provide some training. The two differ, though, in a few key ways.
Internships are usually brief, around 1-3 months, and geared towards college students and recent graduates (both of bootcamps and universities). Internships may be part-time or full-time, but they will most likely end within a few months.
Meanwhile, apprenticeships last longer, often half a year to upwards of three years. Apprenticeships are more likely to be full-time—and rather than giving you a taste of the job and company, they’re meant to teach you the full ins and outs of the job over a longer period of time.
Internships help people early in their careers try out a role and receive brief on-the-job experience. Internships aren’t intended to teach you the entirety of a role, and it’s more like a trial both for you and the company. Internships are more about “getting your feet wet” and seeing what you like and dislike—not about you becoming completely proficient in software engineering. You may be assigned to work on an independent project or help out a team during your tenure.
Apprenticeships train and prepare people to be fully fledged software engineers. By the end of an apprenticeship, which may take half a year or more, software engineering apprentices are expected to have the full competencies of an entry-level software engineer. You’ll receive more intensive, hands-on help to make sure you finish the apprenticeship with the skills you need to do the job full-time. In short, internships are like trials for both the company and intern, while apprenticeships are more akin to investments.
Some tech companies like Github and Etsy have created apprenticeship programs in software engineering, product management, and product design as a path for historically under-represented groups to enter those fields. These companies are most likely looking for some kind of credential, like courses or certifications, rather than degrees, to help build diversity in their organizations. There are fewer apprenticeships than internships in tech, though, so they tend to be more competitive.
Internships may be paid in college credit, stipend, or reduced salary. Chances are, as an intern, you’ll make nothing or less than you would as a full-time employee of the company. Because they’re not intended to be permanent gigs, internships don’t always pay the same way as full-time roles.
Apprentices are more likely to be paid. The company is taking you on as an employee and training you on the job as an apprentice for a set period of time. The specifics of this arrangement may vary (contract, contract-to-hire, full-time, etc.), but you are more likely to be paid and paid closer to the salary of a full-time employee than you are as an intern.
How to get a software engineering internship in 5 steps
If you’re interested in a software engineering internship, there are five steps you can take to find, apply, and land one:
- Prepare your resume
- Start meeting people and building connections
- Find and learn about companies to apply to
- Prepare for interviews
- Continue learning and practicing
Prepare your resume. Begin by compiling and formatting your resume. You’ll want to include
- basic contact information
- education and/or certifications
- technical skills (especially languages you’re most comfortable with)
- relevant work experience
- links to your Github or any notable applications or projects you’ve worked on
Make sure to have someone review your resume! Resumes should be easy to skim and digest, but they should also be polished and professional. Another person reviewing your resume can provide suggestions on reorganizing the information to highlight what will make you stand out from the crowd. Another set of eyes will also catch typos and formatting errors.
Start meeting people and building connections. It’s always daunting to think about building your professional network, but it’s never too soon to get started. With lots of communities and platforms like Merit, it’s easy to start building your network without relying on LinkedIn.
Hiring managers will often hang out in industry-specific communities to source interns and applicants, so use a tool like The Hive Index to find groups where you can begin meeting other software engineers. If you’re a member of an under-represented group, there are lots of tech-focused communities like /dev/color, Out in Tech, Black Girls Code, Natives in Tech, Techqueria, Elpha, and Latinas in Tech both with Slack groups and job boards. You may see internship opportunities posted in these groups–and you might be able to reach out directly to the hiring manager to get more info!
Find and learn about companies to apply to. If you know of a few companies you’d really like to intern at, begin following their social media and checking their website regularly to watch when their internship positions are open for applications. It also doesn’t hurt to reach out to existing software engineering employees to learn more about what it’s like to work at the company—and even potentially get a referral when applying.
If you’re not sure where you’d want to intern, use job boards like those on LinkedIn, Indeed, Zippia, and Glassdoor to source internship opportunities. Be sure to do a little homework on the company itself:
- What is their product, service, or offering?
- Who is/are their primary customer(s)?
- How big is the company?
- Who are their main competitors?
You’ll want to be able to answer a few key questions about why you’d like to be an intern at a company, so knowing what they do will help you be able to communicate why you’re excited to intern there. As a bonus, asking well-researched questions about the company is a sure way to impress interviewers.
In general, you should be ready to do coding challenges, answer questions about your experience, and explain why you’d like to be an intern at the company. You may also need to be able to explain some core concepts about technology and writing code.
If you want to practice beforehand, mock interviewing is a great way to simulate the interview experience in a low-stakes environment. Your mock interviewer will ask you questions as if it’s the real deal and then provide feedback on your answers.
Continue learning and practicing. Keep your skills sharp by learning new languages and challenging yourself in the languages you already know. Coding challenges, side projects, and contributions to open-source projects are great ways to keep your skills honed and ready when it comes time to interview.
How to stand out in the interview
For an internship, you’ll want to highlight your capacity to grow and learn over your experiences. At this stage in your career, companies want to see that you’re open to being taught and will be a great person to work with—even for a few months. (If you're curious about what hiring managers look for in full-time roles, check out our breakdown of software engineering interviews.)
Here are three key qualities hiring managers look for in interns:
- Coachability: If someone suggests a change or different approach in a coding or practical exercise, be open to adjusting your work and receiving feedback. Managers are looking for your ability to take suggestions without becoming defensive.
- Willingness to learn: Companies don’t expect interns to know everything! But they do want you to be resourceful. If you don’t know the answer to a question, admit you don’t know and then say you’d like to learn—as well as how you’d go about finding the answer to the question. The last thing companies want is for interns to get stuck for three days and ask for help or unblock themselves by doing some independent research.
- Interest in the company: Companies want to learn more about their interns—and they want the feeing to be mutual! Showing that you’ve done a little homework can go a long way in demonstrating why you’re interested in this internship and what you’re hoping to get out of it.
If you’re still not sure if a software engineering internship is right for you or you're looking for help getting one, meeting with a mentor can help you get feedback and create an action plan. On Merit, you can talk to hundreds of software engineering mentors for free.