Под словом "программирование" чего только не имеют в виду. Производство ПО - гигантская отрасль, разные части которой имеют имеют различные цели, инструменты и технологии. И соответственно разные требования к работникам.
Когда-то считалось, что программист обязан понимать, как работает компьютер. И учили булеву алгебру, матлогику, системы счисления, представление чисел, механизмы прерываний и т.д.
А еще программист обязан был понимать, как работает транслятор. И студентам соответствующих специальностей в обязательном порядке читали теорию формальных грамматик и конечные автоматы.
Все это полезно. А теорию конечных автоматов всем рекомендую. Но в большинстве случаев современный программист должен больше понимать в том деле для которого он создает программу, чем в теории программирования.