В одном из вопросов в комментариях мы с
Назир Хуснутдинов подняли тему "Что делает программиста программистом".
У нас вышел вот такой список:
1. Знание синтаксиса языка
2. Понимание алгоритмов
3. Применение алгоритмов в синтаксисе
4. Не просто знать синтаксис языка (а бывает и нескольких языков), а знать какие модули подключать и какие функции использовать для получения результата. Хочу напомнить у разных языков они разные.
5. Постоянно следить за обновлением "инструментария" (что бы написанное ПО работало в актуальных версиях ОС (браузеров и т.п.) и при возможности поддержка старых). Т.е. осваивать (читай переучиваться) новый (или обновлённый) "инструментарий". Если этого не делать, то в итоге окажешься без работы. Поэтому параллельно приходиться постоянной что-то изучать.
6. Изучать сферы деятельности и бизнес процессы заказчика, что бы понять что "писать" (ТЗ обычно редко бывают полноценными).
7. Постоянное совершенствование своих навыков (быть в "тренде"). Надеюсь не стоит это объяснять. Программировать - это не валенки валять.
UPD 2 8) Решение проблем бизнеса.
UPDДа умение писать программы - и подразумевается под программированием и как было в одном из ответов подразумевается
инженер-разработчик программного обеспечения
Будем признательны, если вы его дополните.
П.С. тэги языков использовал, чтобы привлечь больше внимания, как профессионалов, так и новичков.