I don't know how to learn (ENGN/CS-related)

I’m finishing up my second semester of freshman year at an Ivy League school, and I’m essentially miserable as a STEM major. I was really good at science in high school, was never very good at math, but I worked hard to pull a low B in calc. 2 for engineers last semester and am currently getting a similar grade in calc 3 for engineers. My issue is that I don’t know how to learn at this pace. I tried pretty hard to get good grades in high school (and I got them); however, I also felt like I had time to learn the material in the process. I know college is supposed to be much more accelerated than high school, but my “slowest” STEM class is my chemistry class, and we just covered the gamut of AP chemistry in 2 months. My engineering class travels at lightning speed, I never even had the opportunity to take AP Physics (bad high school), and I’m trying to figure out if I’m simply not smart enough to major in STEM or if I’m not studying smart enough. My GPA is currently hovering around a 3.2 at best (my only A is in my literary arts course on robotics, and I actually might currently be at a C in engineering, given that I did very poorly on my midterm). Everyone keeps telling me to drop engineering because it’s not what “truly” interests me; however, what truly interests me is computer science (and cognitive science, neuroscience, psychology, with some engineering thrown in), I have virtually no CS background compared to half of the other kids in the major, and computer science is even more difficult than engineering. I didn’t expect college to be easy, but the fact that I can still pull solid A’s on essays that I’ve spent ~3 hours on, but am now pulling low B’s when I’m putting double-digit hours in class time and problem set time into my STEM courses, is making me question whether I can actually do this. I’m not entirely an outlier; I have plenty of friends from similar backgrounds who are in similar situations… but that doesn’t alleviate the feeling that I’m fighting a losing battle. Any advice?

Why aren’t you doing CS if it’s what truly interests you? You don’t need background to start, just start at the first course in the sequence, which is usually a good idea even for those with experience. Engineering and CS aren’t harder or easier than each other, it depends on the person. For some, CS is easier. For others, Engineering is. I would highly recommend trying the starting CS class before it’s too late to switch.

College is a lot harder than high school, and a 3.2 is not terrible by any means. College GPA’s are usually lower given that there’s no weighted scale if you had that in high school.

Also, remember, you are at an Ivy-league school: below average at an Ivy is still very good. There’s studies about this: how sometimes “lesser” schools are better for the average or below average Ivy student because they feel they are better comparatively. I think you can personally remedy that by just remembering where you are and that even if you aren’t in the top half of your university you are still ahead of the entire population of many other schools.

First, in the long run you will be much better off doing what interests you.

Second, as a programmer with an engineering degree I wouldn’t say the CS is harder than engineering. Even if you are starting a little behind your peers, passion for the subject will allow you to catch up quickly.

Finally, to answer the question in the title, the best tip I can give is actually learn the material, not study to the test. Read and do problems as though you were tasked to teach somebody else. Stop when something doesn’t quite make sense, go off on that tangent and figure out why it is the way it is.