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