1. Find your internshipThe first step to getting the perfect internship is finding the perfect internship for you. You need to consider things like location, pay, required skills. Pick at most ten internships to pursue further; if you apply for many internships, you won't have the time to form relationships with your potential researchers.
One great place to find research internships is the National Science Foundation. They fund REU (research experience for undergraduates) programs at schools across the country. You can find a list of participating schools on their website. Here's a list of organizations offering undergraduate research opportunities. Some universities offer independent research internships which they fund themselves. If you have a particular university in mind, try exploring their website to see if they offer independent internships.
2. Research the positionsThis is the most important step in the process: learning about the positions. For each position, you must determine whether you want it and whether you're qualified to fill it.
First, sift through all the research opportunities available through each internship and find some which interest you (or don't bore you). This is difficult because you don't know enough about the research domain to make an informed decision. Keep cutting until you're left with a group of projects you can see yourself working on.
Second, read some research papers about the projects in which you're interested. Projects' websites rarely have the information you'll need to make your decision. You need to determine whether you're still interested in the project and whether you have the skills necessary to contribute to it. This process also gives you more information about the researchers.
3. Make contactBefore you even write your application, you should start a conversation with the researchers you're hoping to work for. Establishing a connection before the application process is the best way to improve your chances.
Contacting a researcher at a large university directly, however, can be a challenge. Sending an email is like playing the lottery: the odds are good that you will never receive a response. You can increase your chances by contacting the researcher's grad students, secretary, or postdoc students first. Other possible approaches are calling the researcher and sending them a letter. The keys to success are creativity and persistence.
Protip: If your researcher has a postdoctorate student, contact them first. They have more time than the researcher or their graduate students.
Your first email must be "perfect": free of spelling, grammatical, and cultural errors. The goal of this email is to give the recipient a reason to reply and give them no excuse to ignore it. It must be as short as possible, conveying only the core of your message. Exclude flattery, greetings, and anything else that isn't vital to your message. Don't attach your résumé; that's disrespectful of your recipient's time.
You have several options for the content of your message. You could ask a question about a project or ask whether the researcher is looking for a summer research intern. You may include some brief statement of qualification if it's relevant, but it's not necessary.
Below is the first message that I sent to Dr. Roy Campbell, my researcher for my internship at the University of Illinois at Urbana-Champaign:
Subject: ITI Undergraduate Internship questionIt has twice the lines that it should have, and it contains two dumb questions. However, it demonstrates my communication skills gives him a reason to respond. In that respect, it does its job.
I'm planning to apply for the ITI Undergraduate Internship program, and my first task is finding the professors with whom I would like to work. If I were to spend the summer working with you on your research, what would I be doing? I'm particularly interested in your research on p2p distributed operating systems and ubiquitous computing. Would I be able to choose my topic of research? Thanks for the help.
4. Do the workOnce a researcher has responded to one of your messages, start reading everything you can find about their research and the surrounding field, starting from the most recent. Pick a interesting project from each researcher, but don't become attached to it. The more knowledgeable you are about a researcher's work, the more professional and motivated you'll sound to them. Plus, it's good practice for your internship.
5. Write your applicationWriting an application is probably the least important step in the application process. However, it's also the step most likely to keep you from an internship. Your application must be "perfect" in the same sense as your first message, but it need not be a literary achievement. It should tell the reviewer why you would be a productive research intern. Anything irrelevant to that goal should be excluded.
Protip: Don't list "communication" or "writing" as one of your skills. If you can write, it will show in your application.