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