Sat May 05, 2012 2:48 pm
Worth noting that many microcontrollers these days outmatch the minicomputers of several decades ago, or the microcomputers of circa 1980. The main difference might be that a rich programming environment (BASIC, libc, job control) is not automagically laid on for you. When an ARM core can be squeezed into less than a square mm, on process nodes that are almost considered obsolete already, and can still achieve 100MIPS, you'd better believe it gets used for anything and everything.
At the same time, the term "embedded programming" encompasses a wide range of things, from directly manipulating hardware with 256 bytes of RAM in a microwave oven, up to a complete Linux environment with a multicore GHz-class RISC CPU and several GB of RAM and storage that just happens not to have a traditional desktop or input hardware. Even realtime requirements are not ubiquitous, though they are common.
FWIW, games consoles are technically embedded systems. The game industry therefore absorbs a lot of potential talent. This might also be your main competition in terms of salary and job satisfaction.
The key to knowledge is not to rely on people to teach you it.