Almost all of the following is about PhD programs, and may not apply to Master's programs. I (Justin Li) should also caveat this entire page by saying that this is just my view of things; you should definitely check out the many guides online, and also talk to other professors and your peers about grad school. There is a list of additional guides/articles about grad school at the end of this page.
TL;DR: If you are interested in going into a PhD program after you graduate, the short version of what you should be doing now:
Let me start off with some negatives:
So why might you want a PhD? To me, there are only two good reasons:
The last thing I'll say in this section is that not knowing what you want to do is not a good reason to join a PhD program. A PhD program is not an extended college experience, and the expectations, stress, and relatively low pay means it will not be a pleasant experience if you are only half-ass-ing it.
Finding a PhD program is very different from finding an undergraduate college (or a Master's program, for that matter). Although rankings do matter a little, especially if you want to become a researcher, much more important is the professor(s) who you will be working with. You want to find someone whose research interests align with your own. There are several ways you can do this:
For these professors, you want to read through their recent papers, to get a sense of what they do. If they have a website, check what they say about being contacted by prospective students. Some of them will welcome emails, others will defer all emails to their admissions office.
The main caveat - and this is a big one - is that none of this will tell you how supportive your advisor will be. This is one of the most commonly cited factors in whether PhD students finish their degree or decide to drop out, but is almost impossible to determine without being at the school. One unreliable indicator may be how many PhDs they have graduated in the last five years. A good advisor should graduate a student every two or three years - this means that students are being mentored appropriately, and that the advisor has funding for a steady pipeline of PhD students. Other than that though, your best estimate of this is when you get flown out after you get accepted; see the Interview section below.
A standard PhD application is due at the end of the calendar year, and will require:
The only thing I will say here is you want to start your application early. You will want to go through multiple drafts of your statements, and should probably get feedback from people you trust. Customize your letters for each school by saying why that program is attractive to you; if applicable, specify one or two professor's research that you find interesting.
For your recommendation letters, ask if your potentially letter writers if they would be able and willing to write a positive recommendation for you. Give them at least a month's notice (ideally closer to month and a half), and be sure to meet with them to talk about why you want to go to grad school, and what they might emphasize in their letter. Strongly consider getting letters from people with different roles, such as a professor who you've taken multiple classes with and a different professor with whom you did research.
Once you are accepted, most grad schools will fly you out for a visit. You will get to meet the faculty and the grad students, and learn a lot more about the exact requirements of that school (see below for some general statements). This is not an interview - the school is usually trying to sell itself to you - but that doesn't mean you should not be professional, especially when talking to the faculty.
Some questions you should consider when you visit:
A PhD program usually contains two distinct phases:
The first two years is like a Master's program: you will mostly be taking classes while doing research on the side. Depending on the program, this is the time for you to really know your professors and determine who you will be working with on your thesis. At the end of these two years are the qualifying exams ("quals") and/or preliminary exams ("prelims"). Quals are actual exams on your field, but some schools don't have them; prelims are an oral presentation of original research.
If you pass your quals/prelims, you are officially a PhD Candidate. The next 3-5 years is spent on research, with few if any classes, culminating in a thesis and your doctoral defense.
After you get your PhD, come find me and I will buy you a drink.
CS PhD --help: the greatest hits