Дискретная математика на базовом уровне лишней не будет, как работает дизъю́нкция средний программист изучает вместе с понятием оператор, но многие не знают что это дизъю́нкция. Про графы и матрицы всякие тоже теорию покурить можно, чтоб сразу понимать что это про граф в задаче, а не придумывать их заново для себя.
В остальном все зависит от предметной области, проше погуглить при необходимости в какой-то узкой области, чем пытаться изучить все подряд. Чтоб сориентироваться в уровне ваших знаний можете попробовать такую задачку решить - у заказчика на карте десяток его магазинов, пользователь с мобилы вам свою геолокацию послал , вам надо на сайте показать ему путь к ближайшему магазину и расстояние для него. Т.е. у вас широта+долгота десятка магазинов и широта+долгота некоей точки, найти надо кратчайшее расстояние между ними, если за часок гугления задачка решится и встретившаяся математика вопросов не вызовет - можете считать свои текущие знания достаточными.