Набор необходимых программисту знаний зависит от области, в которой он работает. Конечно, если задача состоит в написании программ для встраиваемых систем и устройств на микроконтроллерах, то необходимо иметь знания в области схемотехники и простейшей физики электрических цепей.
Для задач в области управления или моделирования физических процессов необходимо хорошее знание математики.