Hi pf, I am currently a fourth year student who has recently switched majors from biochemistry to EECS (so I'm going to get my bs sometime around 2013-2014). And since I'm pretty much back to square one, I am in need of some basic advice with regards to how to get into a top tier EECS program (top tier in the field of my interest). I understand the basic determining factors of admittance/rejection to a phd program such as GPA, research experience, LORs, and GRE scores, but I feel like there is something more that I should know about in the grand scheme of things when trying to prepare for graduate school. For example: 1. Should I try to publish a paper? I know that this is very difficult and time-consuming as an undergraduate, and I'll probably have to compromise my gpa, and/or something else. Even if I do happen to compromise, there is no guarantee that I can produce results within the given amount of time (let alone publish) before applying to graduate school. So is the "attempt" of publishing a paper worth the time? 2. Should I try to get into ANY research group, even though I'm not interested in that particular area of research? Say that I'm really interested in computer architecture, but the only research group that is willing to take me in is a mixed-mode circuits group, should I just join that? 3. Should I take graduate level courses to make myself look competitive? There are two particular graduate level courses that I really want to take before I get my bs, but I think that my efforts and time would be better allocated elsewhere. 4. How many years of research should I have done prior to applying to graduate school? (Roughly speaking) 5. I have recently switched my major to EECS because of an extraordinary epiphany that I had a couple months back. But I know that because I am going to get my bs really late, how bad will this look? I "wasted" a lot of time (or spent a lot of time figuring out what I didn't like) taking nonrelevant classes such as organic chemistry, biochemistry, biology...etc. These are just few of the many things that I am unsure of now. I understand that if I should aim to do all these things if I want to be the ideal applicant for a phd program, but I just would like to know how I should set my priorities. I consider myself a competent student as far as gpa and studying goes, but I just want to be careful in the steps and directions that I take because it may impact my future significantly. Maybe I shouldn't be tripping out about these things, but I found treasure once I discovered how much I love EECS. I want to be able to take this love as far as possible, so that's why I really want to this right. Thanks for your input, pplz. Edit: Additional questions that I forgot to add: 6. How important is an internship at a company? It seems that a lot of my fellow students are doing these internships but they just plan on getting their bs and working in the industry. Does this matter for graduate school? Should I intern over the summers rather than doing research?