I graduated from university last spring with a B.A. in computer science. I am currently working at a software company. I would like to attend a top graduate school in 2-3 years once I am more certain of my area of study. I'm not sure what steps I should take to achieve this. I was not passionate about CS until my final year of university so I haven't completed any research/internships. Could anyone with experience point me in the right direction?
I'm a mathematics professor. I'll tell you how it is in math. You can probably extrapolate to CS, although work experience might count for more there, depending on your field of study.<p>In math, rec letters are the most important, and whether rightly or wrongly, math professors don't give a damn about the word of anyone other than other math professors.<p>Figure out how you will be spending your first two years, and the coursework in particular. At good programs it will be killer hard. Are you prepared for this? <i>Your rec letters need to come from people who thoroughly understand how difficult graduate work is, and who can credibly assert that you will succeed in it.</i> This needs to be based on your past success, presumably in your coursework.<p>In particular, top programs look for not only talent but also thorough preparation. Have you gone far beyond your university's requirements, and absolutely excelled?<p>If you want to get a Ph.D., and don't get into top schools, you can probably go to a mid-tier place, and if you are really thriving, file transfer applications your second year. Or just finish at the mid-tier place. I went to a non-top-ten university for my Ph.D. and am doing very well now.<p>Good luck to you!
Not really answering the specific question you've asked... but all the same it could be useful.<p>A 'top graduate school' is actually somewhere that probably gets a large number of applications from students (Stanford etc.)<p>That means when you apply for a phd in that school, you are really trying to appease the admissions department, you may not be allocated to a 'phd supervisor' yet.<p>But if you find which area you'd like to go into and the various 'leaders' in that field, you will probably notice they are not aligned to a 'top graduate school' and possibly deal with admission enquiries directly. (To quantify a leader check someones h-index score on google scholar then take with big pinch of salt)<p>What's different in this case is that they will most likely appreciate any additional work you've done which shows how interested you are in that particular field.<p>An admissions department on the other hand will probably look for GRE, GPA, awards, scholarships as ways to differentiate people.
One possible option for you is to do a CS graduate degree part-time while still working. Some of the top schools offer great online programs where you take the exact same classes as the students on campus (for example, University of Illinois offers this: <a href="http://cs.illinois.edu/online" rel="nofollow">http://cs.illinois.edu/online</a>)<p>I graduated with an MS in CS from Illinois in about 3 years while continuing to work full-time. When I attended, you could apply via the normal application process. Alternatively, I know of students who were able to take and complete 2-3 classes as non-degree students before submitting their formal application to the program. They could then apply and transfer these credits towards the program -- I'm guessing it's easier to get in too once you have a few decent grades for classes in the program.
Let me add that there is a huge difference between PhD and Masters admissions. Masters admissions is typically FAR easier and less research and less rec-letter dependent. Strong work experience is sometimes all that's needed to get into a good Masters program.<p>For example, a school like Stanford is notorious for having a Masters program that is easier to get into than the undergrad program and is generally not terribly difficult to get into as long as you can pay.