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