For that, I strongly recommend an engineering-based degree. A BSEE with a minor in computer science (or BCSE with minor in EE, or double major) used to be ideal. Many universities offer "Computer Engineering" or "Digital Systems Engineering" degrees that may be more to the point--especially if you can pick a software-oriented focus.
Embedded systems programming is almost always about direct control of the hardware, and you need to know about hardware to write the software. You don't really need to know how to design circuits, but you do need to understand how the design affects software requirements. And, vice versa. With new hardware, you are often writing your own device driver code. On small systems, you may be running without an OS. These days, that may be more to reduce system power consumption than to save on silicon, but the need is still there to manage all of the attached software.
Computer Engineering will cover this, as well Electrical Engineering with a focus on Embedded Systems (though, not as in depth as Computer Engineering - CPE).
Answers & Comments
Verified answer
For that, I strongly recommend an engineering-based degree. A BSEE with a minor in computer science (or BCSE with minor in EE, or double major) used to be ideal. Many universities offer "Computer Engineering" or "Digital Systems Engineering" degrees that may be more to the point--especially if you can pick a software-oriented focus.
Embedded systems programming is almost always about direct control of the hardware, and you need to know about hardware to write the software. You don't really need to know how to design circuits, but you do need to understand how the design affects software requirements. And, vice versa. With new hardware, you are often writing your own device driver code. On small systems, you may be running without an OS. These days, that may be more to reduce system power consumption than to save on silicon, but the need is still there to manage all of the attached software.
Computer Engineering will cover this, as well Electrical Engineering with a focus on Embedded Systems (though, not as in depth as Computer Engineering - CPE).
computer engineering with an emphasis on real-time software development