Hacker News new | ask | show | jobs
by fgeahfeaha 1053 days ago
Obviously it depends on the person but I did 3 years of an EE degree then switched to CS so I've experienced both

EE was definitely harder to me mainly just because engineering had you taking a lot more credits at once compared to science

And doing vector calc/electromagnetic field math is way harder than proofs IMO

Also debugging software is so much easier than hardware/circuits. The real world is so much messier compared to computers where stuff is cleanly true/false.

You can put together a circuit perfectly but it turns out some component you ordered was busted or the tolerance is wrong or something got fried accidentally and it can be really painful to track it down with a multi meter/oscilloscope.

Whereas that doesn't really happen in software. You don't have a program that works one day and then and then suddenly the next day "if statements" aren't working. So much more stuff can go wrong in the physical world.

My main job now is pretty high level C++ but I don't regret doing the EE part though because it forced me do a few courses in Verilog and there's no better way to really understand how a computer works than building a simple CPU on an FPGA

4 comments

> You don't have a program that works one day and then and then suddenly the next day "if statements" aren't working.

I know you're talking about the fixed nature of programming logic, but this phrase is surfacing some repressed timezone debugging memories.

Oh yeah, those Verilog courses are like the next level up from nand2tetris in wrapping your head around those kinds of things. I got a lot of mileage out of writing some automated scripts to run through Xcelium's interactive shell so I could get a faster debug loop going with them.
What do you do now that involves C++ if you don’t mind me asking? I too have a EE degree but have been doing web dev for the last few years, I would like to get back into maybe doing lower level software development or work on something I can use my degree somewhat on.
I do graphics programming on a game engine
The craziness in software starts at the systems level, especially distributed systems. The madness of debugging distributed systems (at present) shouldn't be underestimated :)