I’m a software engineer with a CS degree. I was accepted to a school for ECE. I have the option to go either CE or EE, but can’t decide. What things outside of typical software dev to CEs do? Should I focus on the hardware side or the really low level software side? It’s all interesting to me but I’d love to hear more from expert engineers on the different paths.<p>My hope is to combine my CS and programming experience along with my masters program in interesting ways. To understand the stack all the way down to the hardware level and be able to implement end-to-end solutions that way. My issue is not knowing anything about the fields in industry
I wouldn’t focus on low level software and hardware. I believe that opportunities in these areas will shrink over time as hardware gets cheaper and newer tools allow people to work at a higher level of abstraction.<p>Think of how assembly language has become niche, or how web tools help you put together simple UI’s that would previously have taken days. Or relational databases with SQL that killed off the previous generations. We are working on tools that substantially reduce the coding/testing burden, and I’m sure we are not the only ones.<p>If you focus more on the skills that a CS degree will help you develop you can’t go far wrong, no matter what the future holds.
What's the underlying reason you're seeking a Master's degree? Do you want a job that requires one? Will it help meet immigration requirements? Are you just seeking knowledge? (probably not a great reason to go) Do you want to learn things that require access to equipment that's not personally attainable, but will be available at a school?<p>I have a bachelor's in CE, but never had a reason to get a masters. Undergrad in-major courses were a mix of regular high level software stuff, but not compilers and things, lightweight software engineering courses about process and awareness of formal methods (in depth formal methods in the Software Engineering major), some embedded systems work, and then a bit of electrical engineering: IIRC, we did some basic chip layout but my school didn't have any fab resources so no practical work there. A little bit of FPGA stuff.<p>With that degree, I just write software, mostly for servers, at Internet companies. I don't build hardware or anything, but maybe I'd be prepared for an entry level job in hardware, probably get roped into doing drivers though.
It very much depends on where you plan to live and work. Work opportunities are not evenly distributed.<p>Computer engineering has become a niche and there are few potential employers. Most <i>computer manufacturers</i> assemble computers from components and subsystems from Intel, AMD, TMSC, Nvidia, etc. Although it does require a great deal of expertise, it is not typical of what is taught as CE.<p>Consider what the proposed CE curriculum covers. In many cases university courses fail to keep up with the pace of technology. Industry experience is far more valuable than theory. There just isn't enough time during a semester to develop in-depth practical experience in any given area.<p>Electronic / embedded systems engineering have broader potential areas of application. FPGAs are potentially a very good skill to have. But, as above, consider in light of employment opportunities.<p>At the lowest design levels EEs obsess over transmission line effects and EMF radiation from PCB traces. These days advanced electronic circuits are microwave transmitters.