Не нужно, на знать школьную математику в полном объёме желательно. Неизвестно, какой именно раздел математики понадобится при решении конкретной задачи. Понятно, что дискретка нужна везде, но далеко не везде можно обойтись лишь одной дискреткой.Английский нужен только для чтения документации, которую ещё не перевели на русский. Для самого программирования знание английского языка не требуется.Нужно изучать тот язык, который используется в твоем учебнике программирования для объяснения свойств алгоритмов. Если это первая редакция учебника Вирта - там будет Pascal, но если ты возьмёшь актуальную редакцию, то там будет Oberon-07, который намного проще и при этом мощнее, чем Pascal.