Internships are great ways to gain experience and potentially open the door for a job after graduation. The right computer science internship can give you a real chance to put your technological knowledge to practical use — sometimes to the point where the demands can be daunting. But rising to the challenge should let you hone your skills and come out of it more confident and prepared for a career in computer science.
William Fisher, president of Quicksilver Software, an Irvine, California-based company that develops games, simulation-based training, educational software and apps, says you should enter an internship eager to learn. “Be open to advice on how best to approach problems,” Fisher says. He notes that the company has its interns work on real projects, which means they’re gaining real-world experience but also that their mistakes can have real-world costs.
Here are a few things Fisher says you can expect in a computer science internship.
You’ll Be Paired with Experienced Programmers
Rather than being shut in an office with other interns or left to navigate on your own, you’re likely to be teamed up with a group that includes peers and more experienced programmers who can guide your technical decisions and help you solve problems.
“Everyone is there to help and work together to achieve the goal,” Fisher says. “Guidance will usually include high-level descriptions of goals plus specific guidance as to how to implement the code.”
You may also receive some one-on-one mentoring about the tools, techniques and language features you need to use, he says. He notes that Quicksilver tries to have a formal code review with interns early in the process so that approaches can be discussed and additional recommendations and guidance can be provided.
You’ll Be Tasked with Solving Well-Defined Problems
Interns at Quicksilver don’t just get busywork, Fisher says. Examples of assignments include “write a suite of automated tests for these APIs” or “develop a set of user interface screens for this application using this existing code as a model,” he says. Tasks usually involve the intern’s existing coding knowledge but also are likely to push it a little further.
In an internship you’d likely be given a detailed explanation of what you’re expected to produce and benchmarks to meet. At Quicksilver, interns are usually given one assignment to see through to completion, then another if the first goes well, he says.
You’ll Learn Things You Didn’t Realize You’d Need to Know
Interns are not expected to be perfect. There are things you won’t know going into an internship, and you shouldn’t be afraid to ask questions. The point of an internship is to gain real-world knowledge, and that includes recognizing when to seek assistance rather than making preventable errors by guessing, and the need to address issues and errors rather than merely hoping no one notices them.
As an intern, you should make the most of regular check-ins with senior team members. “Interns will want to be honest about areas where they are confused or having problems so they can make the most of the experience and the company can get what it expects,” Fisher says. “There is no shame in saying ‘I don’t know how to do this.’ ”
Some skills you should try to take away from an internship include learning how to work effectively within a team, making realistic commitments, participating actively in design and status meetings, and honestly reporting problems when they occur, Fisher says. Additionally, you could learn some skills that can be overlooked in classrooms, including effective use of source-code control systems like Subversion and GitHub, he says.