Я тут поработал, в некотором смысле, по теме заданного мной вопроса и нашел интересную книгу
Embedded Systems Design: An Introduction to Processes, Tools, and Techniques
by Arnold S. Berger ISBN: 1578200733
Просмотрел ее бегло: там идет разделение труда программистров и разработчиков железа.
НО!, написаны такие строки(общий смысл конечно, не дословно):
"Если Вы опытный разработчик и скажете, что Вам надо размышлять над вопросами ускорения алгоритмов сортировки и нафиг не надо знать эти инженерные вопросы, то Вы окажетесь в самом низу при принятии критических решений и будете в начале черного списка, когда проект запоздает или провалится".
Так что, как ни крути изучения требуют оба направления.