If you’re like me and taking a traditional 4 year degree route to become a software engineer, I highly recommend that you put effort into securing as many internships as you can get and attend every career fare your school has to offer.
I have done 3 internships in total. Two over the summer and one was in the fall. I had to take a semester off to do the fall internship. No regrets and I wouldn’t hesitate to delay my graduation date again to do an internship.
My observation: fall and spring internships are less competitive than summer internships since less students are willing to take a full semester off for an internship. Fall and spring internships are also typically longer (3-6 months) than summer internships (up to 3 months).
Low stress, low risk, unlimited upside
Internships are low risk for the company because interns are generally getting lower compensation, less benefits, and have a low chance of negatively affecting the team. Let’s think about this from an engineering manager’s perspective: imagine that you’re running a software team at a company. You’re pretty busy and there is never a shortage of work. You are managing the pressure from above to get things done while also navigating the individual engineers on your team (herding cats).
You know that adding more engineers to the team could have a positive effect or a negative impact on your team. If you make a wrong hire, the productivity and team happiness can actually go down and then you have to deal with letting that person go (which happens to also look bad on you as a manager since you’ve made a bad hiring decision).
Interns on the other hand, have a finite contract. You know when they are going to start and when they are going to end their work. In the worst case scenario, the intern you get is really bad performer and you assign them low risk tasks. Although this isn’t ideal, it’s still a lot better than a full time employee that’s there for the long run. With interns, the downside is limited. The upside however is almost unlimited. If the intern turns out to be a great performer, they can really put a dent in the backlog of tasks at a much lower cost than a full time engineer.
Once you know that your intern is a good fit for your team — you can work on extending them a return offer. The team already knows them, you know how they work etc. You can think of an internship as a paid three month long job interview.
This means the actual intern interview does not have to be as involved. This doesn’t mean that the interview will be easy, in fact it may be just as hard as any other interview process for a full time hire. You will likely see exact same questions and have the same amount of time to complete the problems presented to you. However, you may experience less interview rounds and your interviewers will likely be much more forgiving in their evaluation of your performance.
The interviewer knows that an applicant looking for an internship usually has no prior industry knowledge and little to no experience to draw from. When I am interviewing a potential intern, I usually want to know two things:
- Do you have a strong base knowledge of Computer Science fundamentals?
- Are you going to be difficult to work with?
In many cases, interns will receive returning offers, which makes future job hunt a lot more relaxed. If you do not get a returning offer, the experience you’ve gained will still be very valuable addition to your resume.
It is my biased opinion that internships are the best way to get into a big tech company. A return offer following an internship is how I got my first software engineering role.
Hope this helps!