I often get email from students who want to join my lab. I welcome these requests, and I ignore most of them.
Why? Because most of them are not helpful. They don't tell me what I want to know. I'm writing this advice to save us both time and frustration, in the hope that this won't happen to you.
Mark Corner (my PhD advisor) posted some blunt, but solid, advice here. You should read it.
When a student contacts me, I initially want to know three things.
I want to know what you can do. You can tell me where you went to school, what classes you took, and what languages you know, but that isn't really what I care about. I really want to know what you can do. I want to know if you can write solid code, design great circuits, solve difficult problems, think creatively, and write coherently. Don't just tell me that you can do these things. Show me what you have done.
I want to know why you want to work with me. Some students send form emails to a large number of CS professors. These emails waste my time. I am not interested in students who just want to get into graduate school. I want students who are excited about the kind of research that I do, and have thought about how their interests fit with my research program. If you don't know what I do and how it fits with your interests, you're probably not ready for the conversation.
I want to know what you want to do. I know you likely don't have a specific project in mind. I know you're probably new to research. You're probably a bit uncertain about how exciting or novel your ideas are. Still, I want to know how you think. What problems have you thought about? What problems excite you? What makes you the right person to tackle these problems? Getting a PhD is a very self-driven process, and I'm not interested in students who sit around waiting to be told what to do. What you actually do will probably differ from your current plan, but I want to see that you have the beginnings of a plan.
So, if you want to be my PhD student, then I do want to hear from you. Just make sure you answer three questions: Why do you want to work with me? What will you bring to my lab? What do you want to work on? I'm looking for specific and thoughtful answers that help me see if you are a good fit for my lab.
I look forward to talking with you.