Математику для решения научных и технических задач надо знать математику. От элементарной арифметики, до линейной алгебры, аналитической геометрии, тензорного, дифференциального и вариационного исчислений, а также различных современных разделов математики. При этом желательно хорошо понимать численные методы решения, в программировании доступны только они, реализация аналитических методов возможна, но она на порядки сложнее. А язык программирования потом подойдёт любой, в зависимости от работодателя. Кому-то и э.в. питона хватит, а кто-то заставит всё делать на С++.