This is a guide for college students looking for a software engineering internship for the summer or wondering what it’s like to look for one.
You can start by checking out our guide to your internship search here. This guide here dives deeper on some of those points and provides further advice.
Common mistakes to be mindful of when first searching for an internship or co-op:
Not starting until too late
Not applying to enough companies
Not preparing for technical interviews
Not doing any side projects
Not utilizing your network or trying to expand it
Conversely, here are the most important takeaways for how to get an internship:
Start the search early and apply to as many places as possible
Connections are your most important tool
You must prepare for technical interviews
Side projects transform your resume from good to great
You can start by listing all the companies whose products you used or enjoyed, and then searching “software engineering intern” on the sites and sifting through those listings for companies or posts that sounds interesting. The following sites have listings for internships and co-ops:
For summer internships, the recruiting season kicks off in August/September. I would recommend starting in August/early September, or October at the latest.
A lot of larger companies finish their recruiting by November/December. If you’re reaching out to friends it’s great to get an early start, for example, in late August or early September. Even if you start in Spring, you can still apply all the strategies below and have a great chance of getting an internship.
One effective way to speed up the internship search is by leveraging connections you already have, such as:
Alumni who work at the company you want to work at
Friends/classmates who interned at that company
Friends of friends who work at that company
First, make sure you have an updated LinkedIn profile. You want to fill out your LinkedIn profile with as much information as you can – treat it as a second resume.
Besides reaching out to connections or potential connections, make sure you check out your school’s career fair (if available). Those companies are already there because they want to recruit students from your school.
For any company you want to work at as an intern, you can leverage LinkedIn and review the steps below for identifying existing contacts:
Search for each company you want to work at, and see if you have any 1st or 2nd degree connections there
See if any other classmates have previously interned at the company and have that listed on their LinkedIn
If you find a first or second degree connection that you either know or that is in your extended network, reach out to them via LinkedIn or FB Messenger and ask if they have 15 minutes for a phone call to chat. It’s important that you limit the ask to 15 minutes — it’s a small ask and doesn’t feel like a big favor for the person you’re calling.
Often these connections can often refer you to a recruiter at that company or otherwise provide valuable advice. Reaching out to people who work full time at these companies in your network is also valuable.
Another great way to get an internship and differentiate yourself is to reach out to people on LinkedIn that you don’t know at all.
Go to the LinkedIn page of a company you are interested in working at, and click on the link to see all employees of that company on LinkedIn.
Scroll down to the “Schools” filter and type in your university
People who you have something in common with are much more likely to be willing to take time out of their day to talk with you or help you.
That said, if you don’t see anyone in common, reach out to a few people anyways!
Hit “Connect” and then “Add a note” and ask them to chat on the phone. A typical note might look something like this:
Explain both why you are contacting them and the “ask” — a 15 minute phone call — in just a few sentences. Keep it short and friendly.
Wait for them to respond! Many people may never get back to you, and some will respond immediately or within days. You might reach out to around 5 people a week, since a decent amount of people simply don’t check or use LinkedIn.
If you do get a chance to jump on a call, here’s a couple of the questions you might ask during these phone calls:
What is the culture like at X company?
Do people hang out outside of work?
What is the culture like there?
What do you enjoy about working at X company?
Is it easy to switch teams and try new things?
What is your team working on?
How did you end up at X company? What made you choose this company over other companies?
How did you get into your particular area of Computer Science (ex. machine learning, databases, etc.) and what are some resources for learning more about it?
What are internships like at your company?
Questions like these can be a great way to get a better understanding of what it’s like to work at the company. Informational interviews can be great even if you’re not looking for a job. They can help you learn more about the industry.
But if you’re looking for an internship, there’s one question that is especially helpful: How can I stand out in the intern application process for X company? This question is great because the person you’re on the phone with will give you advice on how to get an internship there, and potentially offer to connect you with a recruiter or even refer you to their company.
As part of most internships and software roles, you’ll often be asked three types of questions during the interview process:
Technical coding interviews (data structures and algorithms)
Past experience interviews (“what have you done”)
Domain-specific interviews (“what do you know”)
Check out this internship interview guide here for a look at all the details on how to prepare and what to expect. To learn more about the coding interviews specifically, check out our guide on studying for coding interviews.
Side projects outside of school class work of all types can be an excellent way to differentiate and deepen your experience and signal to companies that you will be a good fit for an internship. Projects might include:
Taking CodePath courses where you get to build hands-on projects.
Building a web application that you can share around and link as a project you built. Not just a site but something storing data that people can play around with.
Developing a functional iOS or Android app around an idea and executing it all the way to publishing on the App Store or Play Store. Bonus points if you get some people using it.
Participating in a hackathon and building a prototype of any web or mobile project with a group
If your university supports this, getting involved with research projects can be great too. In particular, anything involving: AI / Machine Learning, Ubiquitous Computing, Data Science / Visualization, Graphics, etc. Whatever you are drawn to learn more about.
Contributing in small ways to open-source online to build up your real-world skills and learn from top engineers in the industry.
For inspiration, check here and here for lists of side project ideas to get you started. We recommend doing a side project that you’re passionate about, rather than one you’re just using to build your resume. It will be a lot more enjoyable and you’ll learn a lot more.
You can pick any of these ways or many others to start building your out of class project portfolio. Make sure that you list and describe the most notable of your projects on your resume and your LinkedIn, and put the projects onto Github with a clear README describing the project where feasible.
This post was adapted from FreeCodeCamp by Tatiana Doyle