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