Программист должен знать программирование. Которое укладывается в формулу, придуманную Виртом для названия своего учебника: "Алгоритмы и структуры данных". В свою очередь, алгоритмы требуют знания дискретной, а если это вещественные вычисления, то ещё и вычислительной, математики.
Умение писать код - не программирование, а кодинг. Занимающий в процессе программирования предпоследнее место.
Даже российский госреестр профессий явно различает две профессии: "программист" и "техник-программист". Программист имеет знания, необходимые для самостоятельного нахождения эффективных способов (т.е. алгоритмов) решения нетривиальных задач. Техник-программист (в просторечии - кодер) таких знаний не имеет и способен лишь воспроизводить "как научили" типовой код, кое-как решающий типовые задачи.