Программирование - огромная отрасль. В ней есть свои ученые, инженеры, наладчики, рабочие, бригадиры и т.д. и т.п. И так уж повелось, что всех их называют одним словом - программист.
Поэтому "учиться на программиста" - очень расплывчатое желание. Стать в этой отрасли рабочим вполне можно без математики. И даже вырасти в бригадиры. А вот инженером уже нет. Тем более ученым.
Но тут есть опасность. Развитие инструментария (даже без учета ИИ) делает все менее востребованными именно "рядовых".
Еще лет 40 назад один умный человек написал: если вы наняли 200 программистов и для руководства ими нашли 20 высококвалифицированных программистов, увольте 200: 20 напишут быстрее и качественнее сами, чем руками двухсот.
Есть разделы математики, которые кардинально продвинули программирование. Без теории формальных грамматик у нас не было бы качественных языков программирования высокого уровня. Без теории конечных автоматов трансляторы не удалось бы сделать надежными. До появления реляционной алгебры базы данных были крайне неуклюжими. Все это не обязательно знать назубок, но иметь представление нужно.
Изначально компьютеры создавались для решения вычислительных задач. Поэтому традиционно с них и начинают при изучения программирования. Но это уже не обязательно. Зависит от области работы.