Заказчик приходит со своими желаниями. Далее в работу вступают аналитики и бизнес-аналитики. Их дело сформулировать задачу, дизайн и много чего ещё. Дальше задачу вручают ТМ, кто , что и как будет делать-его задача. Реализация в итоге-с него. Конечно же в нормальных IT конторах никто не берёт программеров на временную работу и не платит аналитикам намного больше, чем толковым программерам. Девелоперы-те же программеры. Другой вопрос, что в России, именно из-за того, что многие рассматривали программирование "как увлечение", 80% кодеров, а не пограммистов. Но ситуация меняется, что неплохо. И конечно же приличный программист должен в идеале быть сильным математиком. Смотреть в сторону программирования можно, если есть желание. В тот же ШАД не поступишь без сильной математики. А так-вполне сейчас нормально развивается и оплачивается машинное программирование, Big Data и т.д. Но тут вопрос-программирование как инструмент, а образование фундаментальное. Или же факультет компьютерных наук НИУ ВШЭ (лучше через их лицей, туда поступить сложнее, чем во все топовые школы) и факультете инноваций и высоких технологий МФТИ. В любом случае математика нужна. И определённый склад ума-тоже; У меня ребёнок вполне хорошо с математикой, но вот  самостоятельно мотивировал себя исключительно после того, как начла изучать Python. И поплыл С Java явно проще было.