More people should get into EE and see it all the way through. And, rather than getting a masters degree or PhD, go straight into industry. Why? Because just beyond what you learn in your BSEE degree lies one of the most fascinating topics ever: Signal integrity.

I understand why a lot of people bail out of EE, and why a lot go to web dev specifically. EE relies so heavily on simple calculus that there's a distinct moment where you have to go "what the heck am I actually learning?". And seeing that software has this apparent depth (design patterns, OOP principles, Haskell, ORMs, Fieldingian REST, GraphQL, 10,000-word blog posts on vim vs emacs, etc.), they naturally get drawn there.

You exactly describe my journey! After undergrad, I went right to industry doing hardware design. Given a complex PCB, I was confronted with this field of signal integrity and I fell in love with it. My undergrad didn't explicitly require EM courses, but I learned on the job (lots of reading plus guidance from some experienced RF engineers). Eventually I went back for my master's, and it was so nice knowing exactly which niche I wanted to focus on (and finally get a ton of EM fundamentals under my belt). It truly feels like EE is an infinite field with no limit to the possible type of work...

I am currently on the EE path but the CSEE side is very tempting. Right now the "information/computer engineering" seems much more popular than "plain" EE. I wouldn't study pure software because it doesn't seem connected enough to the real world (...or I am coping for my weak algorithmic thinking skills).

Maybe one day I will actually understand signal integrity but so far my experience has been "check return paths, match impedances and pray to the EE gods".