I'm thinking of becoming a CS major

A rambling post about my thoughts on swapping majors

school Math computer-science computer-engineering Electrical Engineering fpgas verilog systemverilog

I feel like if computers didn’t exist, I would have been a mathematician. But there’s plenty of opportunities to embed fancy math inside a piece of code, and code can actually do something, which is why I like programming and thus computers.

But when I was doing my college apps, I had the choice to either be a Computer Science (CS) major or a Computer Engineering (CPE) major. Although I do prefer software over hardware, I chose CPE at the time for the following reasons:

  • I was in robotics and I liked it. Though I like high level stuff, I think low level stuff is also pretty interesting.
  • I enjoy tinkering with electronics. Why not go for a major with both?
  • It’s probably slightly less impacted than CS. Still extremely impacted, but my chances are a bit better.

But now, I don’t think another 2+ quarters of circuit analysis sounds too interesting to me. I mean, it’s not even that I find it hard, I just find it rather tedious, and I’m really interested in software/theoretical stuff. I actually had some fun attempting to make my own version of LTSpice, actually, before I gave up on it and realized it was a waste of time.

I feel like I should have considered switching earlier. I guess I’m more interested in the computers, not really the hardware. What I was probably interested in back during robotics was the microcontrollers and digital control systems and all the associated theoretical math. But once again, that’s a software problem that’s been abstracted from the hardware problem they originally are.

Computer Architecture was another class that was kind of holding me off on switching to CS, but I think I mostly enjoy it because it’s mostly writing in HDL, which is again, more like coding than circuit/hardware design. Sure, it’s a bit more complicated than C, for example, because you have to worry about propagation times and board resources. But even then, you’re not making circuits, you’re writing code. (As a side note, I’ve noticed that HDL and React are actually surprisingly similar in terms of the way of thinking. I’ll elaborate in a future blog post.)

I guess I just like high-level, more theoretical stuff. I’d rather take something more software-related, and maybe even get a math minor. There aren’t as many available tech electives for CPE, even though I want to take a bunch of different tech electives. Also, I just personally feel like the major is weighted closer to EE than to CS than I would like.