Jak jesteś zdeterminowany, to na Twoim miejscu wybrałbym matematykę. Z mojego doświadczenia wynika, że to co napisali koledzy jest tylko częściowo prawdą. Większość podstawowych bibliotek jest już napisana, ale pojawiają się problemy, których nie da się rozwiązać z użyciem dostępnych narzędzi. Problemy te są związane z dziedzinami, które wymieniłeś. Ponadto zobacz sobie portal https://www.kaggle.com/competitions, są tam zadania wraz z wyceną dla różnych agencji/firm. Zastanów się ilu programistów jest w stanie je rozwiązać. Według mnie niewielu.
Matematyka rozwija myślenie abstrakcyjne, bardziej niż programowanie. Dzięki temu potem programowanie jest dużo łatwiej zrozumieć, ponieważ jesteś w stanie analizować nie tylko algorytmy, ale abstrakcja sama w sobie nie stanowi problemu. Matematyka jest królową nauk i naprawdę jest wszędzie w naszym życiu. Przykładowo rozumiejąc szereg i transformatę Fouriera jesteś w stanie zająć się analizą sygnału, która ma zastosowanie w medycynie, nauce, telekomunikacji czy wojsku.
Wybierz matematykę. Po 10 latach kodowania stron internetowych będzie Ci trudno zrozumieć wyższą matematykę. Łatwiej będzie przesiąść się z matematyki na programowanie.