1) это кодер
2) да, но еще немаловажно умение их строить
3) код-манки
4) код-манки
5) хипстер
6) бизнес-аналитик, что в принципе норм. Программист должен в первую очередь решать задачи бизнеса а не код писать (это метод решения проблем), а для этого надо какое-никакое о погружение в предметную область
7) это справедливо для всех специальностей.
В целом вопрос самоопределение "программиста" это весьма филосовский вопрос. Я для себя это определяю как "полезный чувак, который в состоянии решать проблемы из разных предметных областей". Жить становится чуть проще когда перестаешь разделять людей на категории вида "бизнес аналитик, тестировщик, кодер"... это все может быть один человек. Просто кто-то углубляется больше в одну сторону, кто-то в другую...
В целом... почитайте Эрика Эванса, Предметно Ориентированное Проектирование - он там чуть уделяет внимание задаче девелопера.