Ok. So the deal is that I'm going to be a senior in the fall at a UC in Northern California. I've taken enough physics and computer science courses so that I'm able to major in either one, but the thing is I can only do one. I really love learning physics. I really do. But I'm just fed up with how bland it can be sometimes (derivations that take too long, and also that all this grunt work could easily be taken care of by a computer) Also, what turns me off is the fact that I'll have very dismal chances of getting a professorship at a university, unless I get into top institution, which I have a very slim chance of getting into (my gpa being only around 3.0). Not to mention, I had a physics major friend who ended up with a 3.2 gpa from the same school, and he still couldn't find a job. I would like to be as competitive as possible in securing a high paying software engineering job in silicon valley, especially in these rough economic times So, I recently changed my major to computer science, partly because I live in the bay area and finding a job is soo much easier and better paying with Silicon Valley here and what not. Also, I'd probably like to take time off and working before going to grad school to study either artificial intelligence or computational physics. Am I really making the right choice switching to computer science from physics? I just feel like the future will really depend on computers and algorithms, much more so than physics would. Would it hard to get motivated to go back to school after working as a software engineer? I might have to apply to masters programs, build my resume, and then apply to PhD programs. Your thoughts?