The underlying core of my remarks here center around the idea that an internship is a learning experience. Of course that’s obvious, so let me qualify my statement.

When you enter the field of computer science and decide you want to work in high tech, you quickly realize that there is a plethora of different directions you can head in academically and professionally. As an undergraduate, it behooves you to start mapping out these different possibilities early and to understand what each one entails. I focus here on internships, but your exploration would also benefit from personal side projects, involvement in open-source communities, participation in research at school, and other inter-disciplinary pursuits.

Most likely, what you want to do will change and your interests will broaden as you are exposed to more classes, people, and ideas. And if you’re like me, then you want a career in which your job is always exciting and interesting and you get to work on many different and unrelated projects in a handful of areas. Keep in mind that the industry moves quickly; it will evolve drastically over your four years of school.

Start Early

You should start pursuing internships as early as your freshman year in college. In fact, for those of you high school hackers reading this, you should try to get a summer internship in high school! (Yes, it’s possible. I took my first internship after my junior year, and I know someone who started as a sophomore. Besides, if you have nothing better to do during your summer, you might as well go for it.) Realize that employers don’t expect you to know too much at that stage in the game. What they are looking for are people who are enthusiastic and motivated. If you can communicate well and learn quickly, with some baseline knowledge you’ll make a good candidate. In the beginning, you may not get the most glamorous project to work on, but you’re guaranteed to learn a lot in your first internship. You’ll be surprised how much responsibility you will receive (even as a high school student). Now see it from the employer’s perspective: you’re cheap labor. In any team or organization, there are plenty of non-intense things to be done that can be accomplished with a modest amount of technical knowledge. The reality is that it’s much cheaper to higher an intern to do those things, and you’ll be okay with that because you’ll still be making more than you would working in retail. In the case that you’re working on something that actually requires a computer science degree, then the company’s really getting bang for its buck. It’s a win-win situation.

Finding An Internship

The best place to start is your school’s career fair. Do your homework ahead of time to find out which companies will show up, and make a list of the ones you want to talk to. Companies usually recruit for internships in February and March, and some even earlier, so be on the lookout for application deadlines. You should definitely have your resume ready in January.

It’s also not a bad idea to go straight to the source instead of through your career center or web site—call and e-mail an organization directly if you find something interesting. Don’t be discouraged if you don’t get a response right away or if you don’t hear back at all. You’d be surprised how many companies, big and small, don’t have their act together when it comes to hiring. Recruiters are busy, and often things slip through the cracks. Just be persistent and send them more e-mails; they will eventually respond. If you find an organization that consistently responds to you quickly, that’s a good sign that something is running smoothly on their end.

Here’s a secret: it’s common for companies to have internship positions that aren’t advertised or internship positions for things that are listed as full-time positions. You may even consider applying even if they don’t list any positions relevant to you—a well-written cover letter may convince an employer that they could use somebody like you.

When applying to big companies, don’t worry about where they are—they usually have relocation services, so you should take advantage of the opportunity to travel. They will likely give you a stipend for rent, or even better, they will house you with other interns for the summer. The latter is the best because it will save you the hassle of finding an apartment for only three months, and more importantly, your apartment complex will be inhabited by other interns. It’s really fun! =)

Don’t work less than ten weeks. Your opportunities will be more limited, and you won’t get to accomplish as much.

During Your Internship

Internship experiences vary widely. Some people have a great time, learn a lot, and accomplish even more. Others are bored or underutilized. You may ultimately decide that you hate the job. That’s okay!

Still, it’s highly possible that you’ll learn more about work life than your technical specialty. Don’t underestimate the value of that. It’s obvious that the employer will be using the internship as an opportunity to evaluate you for future positions, but you should really see the internship as a chance for you to evaluate the company. These are the questions you should be asking:

  • Do you like the job? Are you passionate about what you do? Do you mind sitting at a desk for eight hours a day doing what you do? Is it fun?

  • Do you like the people? Are they easy to get along with? Are they helpful? Do you socialize with them outside of the office?

  • Do you like the office? Is the atmosphere stale and corporate, or stimulating and artsy? Is there sunlight? Foosball, ping pong, billiards? Offices, cubicles, or open space? Gym on site?

  • How well are the company and your team managed? Are things running smoothly? How well do people collaborate? Are you wasting your time in meetings all day? Is there enough structure and procedure so that everybody’s on the same page but not too much bureaucracy that prevents you from accomplishing things? What do other people think?

  • Where is the company going? What are its short term and long term prospects? How’s its cash flow?

  • Do you believe in the company’s mission, products, and services? Is your job just a way to make money, or is it your calling?

Understand the core businesses of your company, how the different teams interact, and how the organization is structured.

Make an effort early to establish relationships with people outside of your team and people higher up, such as your manager’s boss. These connections will be able to give you perspective on the company from a different angle, and they may be able to recommend you into other teams should you choose to return. They often provide good career advice as well. Make friends with company recruiters and human resources personnel, as they may reveal to you a great deal about the hiring practices of the organization and other opportunities you may have there.

Don’t be a hermit; make friends! Especially with other interns. If you work at a company with a large internship program, you will have the fantastic opportunity to meet people from other parts of the country and other corners of the world. You will enrich your life and have a better time that summer.

Get yourself a small notebook to keep a diary of your internship. You’ll want to collect your colleague’s names, titles, personal and work numbers, and personal and work e-mail addresses. Also note your start and end dates. You’ll need this information later down the line when you apply for other jobs. In addition, you should keep a journal of what you do every day. A year later when you interview with another company, you will be asked to recall details of your previous internship. Chances are that your memory isn’t that good, so don’t be sparse! Make sure your diary contains answers to questions such as, “Describe a technical challenge you have encountered. How did you overcome it?” or “Tell me about a time you had a conflict with another coworker.” Disclaimer: be complete and thorough, but make sure you’re not walking out with sensitive intellectual property that could get you in trouble when you take it home.

After Your Internship

If you did well, you may get an offer to come back the next summer. If you loved the team, that might be a great thing, but don’t jump on it right away. I did four internships at two different companies, and in retrospect, I may have learned more by working in different areas at four different companies. When you graduate, you will have a better idea of what’s out there and what you like, and chances are your favorite employer will be more than happy to have you back. At the very least, try one big company and one small one so that you can have first-hand experiences in both types of environments.