I haven't made my official major change yet, but I want some advice. So I transferred from a local community college to go into Electrical Engineering. I went into it, and I sucked at "hands on" activities in EE. Building circuits just didn't seem like my thing. I mainly went into Electrical Engineering because of the money and it involved a lot of math (which I am good at). There wasn't too much "passion" in actually learning the material. Then here comes computer science. While I am interested in learning more about how to program, the only thing concerning me is the one bad experience I had with it. I had to take a computer science class for EE at the community college since the class was full at the university. The professor I had was very difficult and overqualified. Many people fail or withdraw from his class. His notes were him typing in a compiler, and he didn't use the book or Power Point at all so there was a poor explanation of terminology. He gave difficult programs for a beginner (with strict due dates), but started them off (super complicated for a beginner to actually do). I felt strong about the class until we had the final project and the final exam. By then, I started to have panic attacks because the class wasn't going anywhere (we weren't really learning anything when the final project was assigned, and the professor let us out early). I thought I was going to get a C in the class because of this (didn't finish the project, and kinda froze on the final), but I wound up with an A. This class didn't count toward the degree plan at the university (did for associates at the community college, and for other universities), but got you out of a class which was required for students with little to no programming experience. This class is also a prerequisite to the first class that counted toward the degree plan. Because of my miserable experience with that class, I was thinking about switching to a math major and putting my credits to good use (since I was good at math). The math class required a computer science class (the one that actually "counted"). Luckily, I was able to get into that class at the university. The class was SO MUCH better than the one I took at the community college. The professor made the concepts more clear. What is ironic is the class at the community college covered more than the university, but only left out a couple of things that the university class didn't cover (for reviewing from the other class). I talked to my professor of my computer science class at the university about taking this class and being OK in it while having the other one at the community college, and it not covering those couple topics. He said that I would be OK in it (and I was). This class at the university covered in the 1st 6 weeks the stuff covered in the previous class at the university, but the previous class at the community college in 12 weeks! One thing in this class at the university was that when the professor was going over pointers, he said that we shouldn't worry about them if we are confused because they even confuse advanced programmers. The professor at the community college just shoved them down our throats and expected us to know them. I sometimes wonder how the kids who took the previous class the university would do in the class at the community college. I can say that I made an A in the class at the university, and the class at the community college made this ironically easier (since I had to make a roulette game, and I used parts from a craps game and a poker game from the community college class to help make it). And a lot of students at the university struggled with it, but the parts from the community college class were parts the professor started the programs with, so IDK if I missed out on actually learning something. I think the part of me being confused about this decision about being a CS major is disbelief, and something coming to haunt me. I need to get over it, but how? Every time I open programs from the community college class, it haunts the hell out of me. Mainly because they were poorly written. The programs I wrote in the university class were written much better, and were easier to understand. I am glad my professor showed me the light of computer science, and I met some friends who were going into computer science. They also showed me the light of it as well as my schedule last semester ironically looked like that of a computer science major. My schedule looked like. Computer Science I Linear Algebra Physics E&M w/lab GE class Dunno what next semester will look like for me. I hope you guys are still able to read this. tl;dr - Basically I had a tragic experience which awkwardly turned into a better one, and I am feeling kinda suspicious. Along with a CS major, I am thinking about getting a math minor or a physics minor. I like math and physics, but majoring in those subjects don't have good job opportunities as computer science. Both can give me a break from programming all the time, and go well with CS. Since I am going to take an extra year to graduate due to these major changes, I might as well add a minor and that shouldn't affect graduation at all, and I shouldn't be too stressed out. Double (or triple major) wouldn't be worth it in this case. If I really want to get a major in math or physics, I might as well get the CS degree first and then go back. Math is a good minor with Computer Science because it makes you a better logical thinker. I've heard that there are additional fields in computer science you could go into if you have a better foundation in mathematics. I have taken Multivariable Calculus already (got an A+), and I don't want that credit to go to waste as it isn't even required for CS majors. Plus, there is some overlap between CS and math. Math comes very natural to me as I practice and practice more. Physics seems like an interesting minor to go along with Computer Science. I've heard something about simulations using physics. I am not interested in working with hardware, so don't suggest computer engineering. A physics major requires labs, and I don't want to be working in a lab although I am interested in the theoretical part but not as much with practical (since I suck at practicals). Plus, a lot of physics majors turn into programmers. Labs would be better if I didn't have to learn math, but I'd rather learn the math to be honest. A physics minor will let me take Diff Eq (which I want to take), while it won't count for me if I do a math minor. So I wonder what fields I could go into if I minor in math and/or physics with computer science. Just doing computer science alone feels boring as I'm disappointed that it doesn't require Diff Eq or Multivariable. That's why I'm thinking about physics, but I am not sure how doable these physics classes are on top of these computer science classes. I want to learn as well, I just don't want to be focused on "getting a job" and "making a lot of money" until the time comes. It's another reason why I am considering a minor in such fields. To take a break from people that go into these things just for the money, and for people that truly don't know what they are doing.