Answer by Scott E. Fahlman:
I get a lot of letters of this type. Let me tell you what NOT to do. The first contact should not be a spam letter — that is, a letter that you could easily have sent to 1000 faculty members worldwide, and probably did. Why should I spend more time answering your letter or reading your resume/CV than you spent writing the letter?
Often the letter is not even minimally customized. It is addressed to "Dear Professor" and does not mention the project name or the university, even though you think my work is wonderful and desperately want to work with me. The letter gives no indication that the writer has spent even a few minutes looking at the online materials related to my work. And then these hard-working people, so passionate about my work, go on to say that they want to work with me on "algorithms, data mining, software engineering, and computer vision" — not areas that I currently work in.
Often I throw these notes in the trash immediately, or respond with a canned message pointing to a web page with info about how to get into a CS graduate program at CMU and about the specific issues of joining my group. (In case you're interested, see.)
But once you send me that spam letter, there's no point in then going online and finding out what I do. You're already a loser.
So if you think that you really want to work with me as a graduate student, first take some time to find out what kind of research I really do. Then, if you have no experience or preparation in this area, get some. Read and think about my papers (and the essays on my blog), and some papers in related areas. Think about what you might be able to add to this, and what it will take to get up to speed. Do your homework. Then write me a brief letter, making specific reference to all of that.
Then maybe we can talk, and maybe something will come of it.
— Scott Fahlman
P.S. It occurs to me that there's something else I should have said: Yes, you should know what the professor works on, and should know enough about the field to know whether this work really interests you, before you bother a busy professor at all.
But, given that, the best kind of first-contact is a letter one saying, "I'm a student in my X year of Y university. I'm interested in your work on X (be specific) and would like to learn more about it. Can you suggest the best way to do that?" You may get a canned answer, but that's just because we all get so many of these queries. Read that stuff or play with the code, think about it, and see if you are still really interested. Maybe follow up, asking a specific question or two about the work, or try some little project based on the professor's work.
Whether the faculty member chooses to carry on such a correspondence depends on several things: how busy the professor is at that moment, how good you seem to be, whether there's a communication problem, and whether you seem to be truly interested in his or her work. Don't keep talking about how interested you are — prove it! And try not to be too much of a load.
I've had a few correspondences of this type, and in a couple of cases it has led to my supporting the student for admission to one of our graduate programs. It's best to start this early, so that by the time the discussion gets around to graduate admissions, I have a very good idea of whether I would like you as a grad student. Even if I like you, this still might not happen — it depends on whether I have an opening (and funding) for a new student that year and how good the other candidates are — but this is by far the best way to get started. If I can't take you on, at least you might learn something interesting, and maybe I can suggest other faculty or other programs that might be a good fit for you.