So I've been looking at furthering my knowledge into embedded and lower level hardware programming, however, every time I look for jobs that mentions "embedded" it's always high level stuff. To me, that doesn't make a whole lot of sense.
So what exactly does "embedded" entail? When I think of embedded I think of lower-level microcontroller programming and such. If embedded is not the proper title for this, then what should I be searching for?
Best Answer
Define what you mean by higher level stuff. Writing drivers and any other type of software that communicates with hardware is probably what most people think of when you mention embedded software. While that is part of it, that is only a small part. Once you have all that setup there is still the whole application to write that probably never actually talks to the hardware directly and more than likely in most cases this is the majority of the development effort. This can at some level be comparable to "higher" level programing. However, in the embedded world you are probably working under some constraints especially in terms of computational power and memory. Here is list of thing that I think about on daily basis that probably have less importance in higher level development in most cases.
Also, embedded platforms tend to be highly specialized to accomplish one specific goal opposed to a PC that is designed to be a platform for general heterogeneousness computing. This mean that you probably have a lot of custom code that may or may not be portable.