Exagerado... :D
Começa por aritmética diretinho (inclui porcentagem, regra de 3, etc.), muita gente falha nisso :) Tem que entender a função dos números (dados) e suas relações, forma como são manipulados.
Toda álgebra básica. A programação usa o tempo todo. Álgera booleana também, bem, muito bem.
Lógica. Claro, isso é o que permite programa com destreza, resolver problemas, melhorar algoritmos. Lógica é matemática. Só lógica, nada de lógica XYZ. Isso não se ensina explicitamente na escola, vai acontecendo implicitamente.
Teoria dos conjuntos. Quase o tempo todo trabalhamos com conjuntos em nossos códigos. Pena que em geral a escola ensina só o mínimo, e olhe lá.
Precisa entender o que é o problema, ver os dados reais, entender o contexto como ele é de fato, aí já começa entrar em método científico. Se você pegar dados errados, o resto já não importa. Para tudo, dados de como deve construit o algoritmo.
Depois vem mais algumas coisas, mas isso é o principal para o básico.
Não é difícil, é só o básico, mas tem que entender muito bem.