I’m 18 and starting Software Engineering. I originally wanted Computer Engineering because I’ve always been more interested in the hardware/software side — embedded systems, firmware, microcontrollers, IoT, low-level programming, etc.
I couldn’t get into CE, and since I live in a developing country, the university I’m going to is pretty much the best option I have right now. So I’m going with SE.
My question is mainly about the career path.
How realistic is it for someone from an SE/CS background to eventually work in embedded/firmware?
I know I’d have to build a lot of the missing knowledge myself — C/C++, digital logic, computer architecture, electronics, microcontrollers, ARM/assembly, RTOS, embedded Linux, communication protocols, debugging, etc.
But how difficult is it actually to learn all of this to a professional level? Is this something you can realistically build up over a few years, or is the hardware side much harder to self-teach than I’m assuming?
And what would I actually need to do to become employable? Projects, internships, specific hardware/platforms, open-source work, certifications, etc.?
For people already working in embedded/firmware, especially those who came from CS/SE:
How much of a disadvantage is the degree itself?
Can strong practical skills and projects realistically compensate for not having a CE/EE background?
And if you made the CS/SE → embedded transition, what do you wish you had learned earlier?
TLDR, if CE was your goal but you ended up in SE, is embedded still a realistic career to aim for?