Ассемблер. Почему он? Потому что, инженеры обычно должны отвечать за программное обеспечение железной сферы. Т. е., допустим, надо запрограммировать станок. Другие языки не подойдут. Никакие. Только низкоуровневый язык. У любого современного станка есть "мозги". Т. е., допустим, что станок должен выполнять некие действия. Как это сделать? Надо знать архитектуру ядра станка. Зная архитектутуру, программист должен придумать схему, на основании которой, станок будет работать в миллиметровоммикронном режиме.