Знание алгоритмов нужно лишь для решения задач, которые уже были решены ранее.
Например, для той же сортировки есть множество алгоритмов, и среди них нет универсального, который быстрее всех работал бы во всех случаях (обычно это зависит от объема и смешанности данных).
Конечно, можно поверхностно ознакомиться с алгоритмами, но на практике стоит использовать готовые решения, если нет особых требований.
С алгоритмами в 3D графике можно ознакомиться как в
теории, так и с OpenGL/Direct3D поиграться (а чтобы далеко не ходить можно WebGL).
По комп. зрению, имхо, лучше просто начать с
лекций
По С++ могу посоветовать
- Стефан Р. Дэвис - С++ Для чайников
- Лафоре. - Объектно-ориентированное программирование в C++
По языкам-долгожителям книги 4 летней давности вполне актуальны (о всех фишках новых спецификаций можно дочитать в новых книгах от авторов языка, которые, как по мне, более скучные).
По остальным направлениям особо нечего добавить: по математике так вообще книги начала 2000-х вполне актуальны)))
А вот актуальность этих направлений несомненно будет на одном из первых мест. Ведь вычислительные мощности ЭВМ увеличиваются, а все больше и больше задач требуют автоматизации. Автопилоты на электрокарах, "умные" камеры видеонаблюдения и т.д - все это - уже настоящее. Но вот как-то в России с этим не складывается