Applied through college career site.
Emailed me a few weeks later about taking an Intelligence Test, which was of average difficulty, some simple questions, some doozies like on a MENSA test, some annoying ones about finding the number of "h"s in a paragraph etc etc. Apparently I did well enough.
Got a request for a phone interview a week or so later. The phone interview consisted first of talking about certain projects and work experience on my resume, then some programming related questions based on my couple of programming courses, and a couple of brain teaser/puzzles. Use techinterview(dot)com for an excellent resource for these types of questions. I wasn't quite able to answer one of the questions fully, but I talked through the entire thing and got frustratingly close. Very nice interviewer though, helped me out on questions I struggled with.
Invited for an on-site interview, where they flew me in and put me up in a pretty nice hotel a few blocks away from the office. Very nice building, great atmosphere, glass doors in all the meeting rooms, cool stuff. First interview was with 2 software devs, who grilled me on a lot of C++ concepts (especially memory management and pointers), that I claimed to know from my self-study, but realized very quickly that I really didn't have a grasp on. it was very difficult for me, but should be a cakewalk for most people experienced in C++. I personally thought I did terribly on this portion of the interview. Be ready to write code on a notepad. One of the interviewers was really nice and helpful, the other seemed like he was having a bad day, and my inability to answer some of his questions quickly seemed to frustrate him even more.
Next was a 1:1 with a manager in R&D, who asked me more brain teasers and a few more programming questions, which started off badly like the first interview, but got progressively better.
Finally, there was a 1:1 with someone from HR, who asked a simple data structure concept question, but focused more on my resume, past experience, and other typical HR questions. He was really relaxed and put me at ease after a rigorous first couple of rounds of interviews.
Advice: Brush up on whichever programming language you are most comfortable with. Don't lie about this! Like very basic theory and syntax, and those little nuances that you might be asked on an AP CS test or an intro CS test in college. Even if one of the on-site interviews goes badly, regroup between rounds and knock the next one out, and they will vouch for you (believe me...)