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!