Должен ли программист думать о дизайне?
Дизайн программисту знать не нужно. Но если вы занимаетесь разработкой графического интерфейса, то стоит следовать общепринятым практикам и учитывать UX.
ты не обязан владеть дизайном на уровне дизайнера, но иметь первичные понятия о том что это такое - нужно. во-первых, тебе с этими людьми взаимодействовать, и чтобы не материть их за "неадекватные глупости которыми они меня достают" а примерно понимать откуда растут ноги у их запросов - а равно проектировать так чтобы с ними стыковаться - нужно примерно соображать в их сфере.
Ну и вот например - будешь ты петпроект делать - его часто делают в одно лицо. Чтобы не был он "на лицо ужасный" - или сам что-то сделаешь, или идёшь клянчить к знакомым дизайнерам, или расчехляешь кошелёк и идёшь к фрилансерам. Что тебе ближе.
Пример с пылу с жару - вчера я в аппстор новую приложуху залил на публикацию. Выяснилось что за те пол-года что я там не был, у них изменились требования к картинкам - так бы пришлось морочиться - где их брать - а так я открыл Pixelmator и за час нечто удобоваримое себе бесплатно сделал.
Ну и проектировать интерфейсы тоже надо хотя бы минимально уметь.
Цитата, которую обожает БобукЛюбой человек должен уметь менять пеленки, планировать вторжения, резать свиней, конструировать здания, управлять кораблями, писать сонеты, вести бухгалтерию, возводить стены, вправлять кости, облегчать смерть, исполнять приказы, отдавать приказы, сотрудничать, действовать самостоятельно, решать уравнения, анализировать новые проблемы, побросать навоз, программировать компьютеры, вкусно готовить, хорошо сражаться, достойно умирать.

Специализация — удел насекомых.

Роберт Хайнлайн, Достаточно времени для любви, 1973