I think there's value in hiring people who have been trained in a standardized process that prioritizes chains of responsibility, detailed analysis and reliability over velocity, flexibility and bug-tolerance.
Plus, these days, the usual electrical engineering curriculum is ~50% programming, which is more than can be said for some CS curricula (which aren't standardized the way ABET does for EE).
Personally I think something like Electrical Engineering is more valuable. At my company EE folks are often competent in both hardware and software, but the CS folks are completely incompetent at hardware and don't even understand basic GPIO usage.
A lot of CE degrees are EE with just the barest veneer of software to meet ABET requirements.
Mine had data structures and software engineering as CE-specific requirements (along with a dash of microarchitecture and HDL/FPGA stuff), the CS algorithms course was an elective that obviously gave priority to CS majors.
Beyond that, we had a department head that really only cared about shoving as many EEs as possible into the PG&E hiring pipeline.
I've only got a very small value of "few" to jump into this argument, but let me provide a (slightly hyperbolic) counterpoint: electrical engineers often are crap programmers.
Don't get me wrong, some of the best programmers I've worked with graduated with an EE degree, but they were working as programmers. If you're not, than matters concerning programming require a context switch that often isn't fully made, resulting in a slightly messed up mindset that usually doesn't produce the most optimal results.
This is similar to programmers doing UI/UX, which most of the time doesn't even result in a good UI for programmers, let alone mortal users.
Not saying that this was the case here, though. When you've got some serious hardware constraints, it's easy enough to lowball your ambitions, even though theoretically something more generic could be made. Not every team has a Niklaus Wirth in it.
I have a BS EE, my day job now is lower level software/firmware - almost entirely with Linux these days but have done a fair share of bare metal, too. My favorite course in university was my 2nd year circuits course, the professor who taught it had a research grant to study how to better teach electrical engineering to undergrads, and it showed. I vividly remember demonstrations and labs we did in that class even 20 years later.
I imagine part of the problem is there's just fewer EEs than there are CS grads, so the EEs who end up teaching might be the best at that in their field but since the field of CS grads is so much larger you generally get better teachers in CS. I feel there's also been a huge push to make CS approachable over the past 30 years and it shows, it's easy to find great teachers both online and in universities for CS. It's much harder to find good teachers for EE.
Knowing EE or CS does not make a good teacher. Being a good teacher is significantly more than simply knowing the material.
The Computer Engineering degree I have is from an ABET program, it was pretty even on CS/EE. No regrets, except for the times the hardware guys act like I'm just a software guy and the software guys act like I don't know anything about software because I'm a hardware guy. XD
It seems like undergrads are entering ECE/EECS departments with far more programing experience as well, and there is far more awareness / advertisement / (over)hyping of "glamorous" FAANG-type environments and trajectories. As compared to EE companies where the perception is that jobs are far more "traditional".
Regarding the article's comments on the decline of tinkering, either it's causal or correlated, but it seems like students have far less physics (E&M) exposure than programming experience, and many don't want to grind through the math required (differential equations is often taught poorly, contributing to this phenomenon). So it's seen as far simpler to just do as little EE as possible to finish the degree and get the sweet SWE job.
I would disagree slightly here. EE is like majoring in assembly language. It is the wrong paradigm for value creation these days because most hardware startups require large capital expenditures upfront.
EE training also forces you into a mode of thought that focuses on concrete implementation rather than making what people want.
Turing taught us that any machine implemented in digital logic can be implemented with a basic microprocessor. Knowledge of transistor transfer functions and Nyquist plots are useless in a startup context these days.
Good, experienced EEs are worth 10 or more recent grads. Especially those that know RF and/or embedded programming. But then again I'm in a area that has a large number of EE's.
AFAIK, salaries for electrical engineers are very low compared to software engineers so there isn't much interest in working on EE problems. Unless it's your passion and you're willing to give up a good salary.
I think it is the result of how these things tend to be taught. At least in my school, all the EE’s and all the computer engineering students had the same first couple programming classes.
Lots of EE’s need to do some programming, and lots of people getting EE degrees end up in programming careers, so it would be a disservice not to teach them any programming at all. In particular, an engineer should be taught enough programming to put together a matlab or Numpy program, right?
Meanwhile, some of their classmates will go on to program microcontrollers as their job.
Writing programs and a product, and writing programs to help design a product, are two basically different types of jobs that happen to use similar tools, so it isn’t that surprising that people mix them up.
Electrical engineering is a nightmare compared to software engineering. It also involves a lot of programming. It's just that hardware businesses don't give a damn about the software.
After a couple years in industry, I personally have come to appreciate getting an Electrical Engineering degree instead of CS. For me, a C background was enough to get me thinking, and "on the job" programming problems drove me into higher & higher languages. I don't think I'd pick up basic physics, signals processing or Maxwell's equations on the clock, though. I'm glad I had a chance to study all that in school.
Why is EE so bad? On the surface it looks like a degree with a strong grounding in mathematics, exposure to programming, the discipline of engineering, and a diverse range of applications across industry. It kind of seems like the ideal degree if you want to hire someone. I'm always baffled when I hear stories like this.
Interesting - perhaps because I see so many EEs in software or consulting I don't think as much about hardware. I can see how the field can get specialized very quickly, and the first post-college job is critical.
Plus, these days, the usual electrical engineering curriculum is ~50% programming, which is more than can be said for some CS curricula (which aren't standardized the way ABET does for EE).
reply