Getting accepted into a top level CS program.
foo23: When reading your app, professors are trying to tell one thing:Will this person be a good academic researcher?  To figure this out, they will look at:1. Can you already do research? If you've published at academic research conferences, they'll read your paper and judge you by it. If you have good recommendations from people they trust, or are known in their field, they will read those and rely on them heavily. Otherwise they view your application as a crapshoot (why would they want to take on a student they're not sure will succeed?)2. grades, programming abilities, and other things are all secondary. If they pass the bar, that's good, but they're not going to get you in.My advice: get a programming job working in a research lab, then apply to places the people you're working with have worked with before.  Look at MSR (Microsoft lABS), Intel Research, and Google. Otherwise go to a startup.