Hey guys, I'm stuck in a rut. I'm currently in an engineering program--Nanotechnology, it's mostly focused on materials, chemistry, and electrical. In upper years there is an option to specialize in biology which is the original reason I wanted to attend this program. That specialization is mostly for bio-compatible materials and drug delivery systems, and I wouldn't mind doing research in this field for a living, after getting my PhD. Currently I have a pretty good GPA, I'm part of a couple of pretty good extra curriculars at my school including a robotics team and an undergraduate research project in nano materials for drug delivery. I've gotten a research intership at a lab at MIT and have my name published in a journal with an impact factor of 14, and I have a future internship arranged. I think it goes to show that I have quite a head start on my career, if I decide to stay on this track. However, I hate the way I'm learning in my program. I don't like the engineering way of teaching only methods and not the theory. A lot of my profs clearly dislike teaching, and my faculty doesn't strive to get profs that teach well. So a lot of my courses become jumbled facts that are repeated, not derived. I hate memorizing and I would rather they be able to derive it, or if my program was less specialized I would at least be able to find textbooks or course notes that cover the theory. But a lot of times after first year I find myself scrambling for online resources to explain, say x-ray crystallographic techniques and I don't get everything the prof taught. Clearly memorizing isn't my strength. Not only that, but materials science isn't what my passion is. I realized early on that I am passionate about biology and math. However, there were gaps in my education early on that so my ability to rigorously prove things is not very good, and I'm terrible at labs to the point whenever I have a lab course I'm liable to get ~60%. Also, biology requires lots of extensive lab-reports (much longer than engineering reports, and graded tougher too) and considering the number of pre-meds I'm competing against, it doesn't seem very likely that I will stand out for grad school. Therefore I'm completely disregarding the possibility of going into biology, since it'll be the equivalent of jumping out of the proverbial pan into the fire. My school is very well known for math and CS. Mostly CS, but math follows. I had initially considered the possibility of going into math, but I was afraid I wouldn't be smart enough to make do research, much less make an impact in the field. In addition, pure math, although enjoyable, is not very well paid. I would not like to end up working as a high school math teacher, it would not be a very fulfilling career for me. I had never had any experience in CS, but recently I realize I'm quite good as finding algorithms to solve CS problems, in the form of some of my friends' (pretty smart CS majors) assignment problems. If I go into CS, I would like to begin my own startup or work for Google. If I go into math, I would like to publish and become a tenured professor (I'm mostly interested in pure math or combinatorics). The reason why I am not completely certain on switching is that I can get by on nano engineering and it's a great opportunity. If I go through this major I would want to do a PhD. and then have my own startup if my research goes well. Or maybe become tenured as a professor of interdisciplinary sciences. Or maybe I could design some softwares for manipulating nanomaterials. Or discover some interesting theorems and call it my own. What do you think I should do? tl;dr: engineering student wants to switch to math/cs, what to do?