← Back to context

Comment by JonChesterfield

12 days ago

Electrical engineers do generally think software is easy. Even when their day is a horror show of TCL and verilog. In fairness I think hardware is horrendously difficult, so maybe they're not wrong.

chuckle they fact that they can solve their problems with TCL and verilog should be all the proof it takes to conclude that their jobs are easier.

But the guys who really have it hard are guys writing the EDA software. You have to be expert in both chip design and software development. You are writing software to design tomorrow's computers, and it has to run on today's computers. Virtually every problem is NP-complete, and the problem size is growing with Moore's law.

And all your customers just LOOOOVE TCL :-) so you end up writing a lot of that too :-)

Most bachelor's and master's level CS is comparatively easier than EE because EE requires much more hard math. The theory at least, but project-wise CS is more demanding. I had two EE roommates in college, their exams were HARD, but their home-projects were easy compared to CS (less projects overall as well).

I remember one exam my roommate complaining about was about getting all the formulas he needed into his scientific calculator before the exam even started. If you understood how to derive all the formulas and knew how to put them in the calculator and how to use them you passed the exam. I think it was analog circuit processing exam but I might be wrong.

Research-level in computer science can get very hard as well though. A lot of it is more pure mathematics than engineering.

  • As far as undergraduate work goes EE is harder due to the math background required, indeed. However, the thing is, if you take the same brilliant minds who would ace EE, and reallocate them to software, they won't magically throttle down and limit themselves to undergrad CS concepts; they will find and tackle all the complexity they can withstand. You end up with the JS ecosystem, CI/CD, IaC, columnar databases, and so on. So I wonder if some of this is happening where thinking that AMD doing undergrad CS-level effort is all there is, where there is actually invisible complexity that is being missed that NVidia managed to tackle.

    • Yeah I agree with you, if you see these programmers doing very advanced stuff they often have degrees in physics and the like. The hardest problems in CS today are all very math-focused.

      The original quote from the OP was about why Lisa Su decided to go EE bachelor though and EE bachelor indeed is one of the hardest ones out there.

      What I was trying to highlight is that although EE is harder, CS has a bigger workload due to all the personal projects you have to build. But given enough time and persistence you can get a CS degree even if you are not the sharpest (speaking as someone who is not the sharpest). To be honest in my own degree I didn't have much trouble with the content (besides a few math-heavy classes), just the workload.

      I remember me and my roommates study time, my time was usually implementing algorithms on my PC while theirs was usually pouring over text-books and solving differential equations. Although one of my roomates was a huge nerd who had to get max grades, he spent much more time than me studying. The other one spent about the same amount of time as me.

  • > I had two EE roommates in college, their exams were HARD, but their home-projects were easy compared to CS (less projects overall as well).

    Maybe that's just a result of EE take-home projects being less practical? Hold on, let me walk on over to my wire bonding station ...

    In my applied EM class in college, we had a year-end project in which we built an antenna of a specified type (e.g., helical, corner reflector, etc ... ). The final exam was essentially a do or die transmitter hunt. We had a lot of open lab time to do it. But that project was an exception, not the norm.

    • I think it is because CS is such a broad field, every little nook has a ton of different algorithms to study and, like you said, it is not that hard to tell students to implement algorithm X as projects.

      While my EE roommates would often just spend their time solving the same types of problems from their text books over and over again. My roommates had a few lab classes where they did get assignments, but they were usually pretty small and couldn't be done at home.

They are quite different skills, I think. Being good at one doesn't tend to mean being good at the other (and this also applies to organisations: hardware companies will tend to suck at software by default and vice-versa. Not because they're necessarily anti-correlated but because they're sufficiently uncorrelated that they will tend to be average, i.e. bad in the area they aren't doing well in). But then there's a pretty wide spread of difficulty and skills in the individual parts of either which dwarfs any difference in the average.