Sobre matemática, já falei aqui e aqui. Sugiro ler tudo para um panorama mais completo, mas pra resumir um ponto essencial: matemática não é só aquilo que vemos na escola (decorar fórmulas e fazer continhas), vai muito além disso.
Um trecho do segundo link para elucidar melhor:
Quando dizemos "matemática", muita gente associa com aquilo que vemos na escola: decorar fórmulas e sair fazendo contas sem entender pra que serve. Na minha opinião é essa forma equivocada de ensino que fez com que gerações inteiras odiassem matemática, e achem até hoje que é inútil.
Se for esse o caso, então realmente vc não vai usar o que só decorou na escola. Mas matemática é algo que vai muito além. Entre outras coisas, ela é uma ferramenta para resolver problemas através da criação de abstrações, e no fundo é isso que fazemos o tempo todo ao programar.
Para criar um programa qualquer, pegamos entidades do mundo real e tentamos encaixar nas estruturas e mecanismos que as linguagens nos dão (arrays, classes, funções, etc). Traduzimos algo concreto para uma representação abstrata, e a matemática te dá a capacidade de fazer isso. O problema é que esse ganho é indireto e geralmente demora para ser percebido (em parte, é um dos motivos de muita gente achar que não precisa).
Depois o texto continua com um exemplo prático de um conceito matemático que muita gente usa sem saber, e que eu também usei em certa ocasião (e neste caso foi diretamente).
E no primeiro link eu dou mais uns exemplos de coisas usadas na programação que vieram diretamente da matemática (SQL, programação funcional, etc). Saber determinados conceitos, inclusive, te ajuda a programar melhor.
Por exemplo, funções: uma função/método que vc cria em qualquer linguagem segue exatamente a mesma ideia da matemática. Vc recebe alguns dados, faz algo com eles e retorna o resultado. É uma abstração tão banal que muitos nem a vêem como tal, e nem sequer associam com matemática (em parte porque a forma como ensinam na escola é confusa e descolada da realidade). Mas é essencialmente a mesma coisa, só que traduzida/adaptada para uma linguagem de programação.
Outras coisas talvez vc use indiretamente (alguma lib específica faz cálculos que usam alguns desses conceitos, por exemplo). Na verdade, acho que a maioria dos conceitos que vimos na escola serão usados indiretamente.
Criptografia é matemática pura, talvez uma das aplicações práticas mais usadas hoje em dia para coisas que isoladamente parecem inúteis (certas propriedades dos números primos, aritmética modular, teoria dos números em geral, etc). Mas aí vc tem que decidir se quer ser um criptógrafo (alguém que estuda ou até cria os algoritmos criptográficos) ou um dev que quer deixar seus sistemas seguros (e aí saber como funciona, mas sem se especializar nos detalhes matemáticos seria o bastante).
Dito isso, vejo que muita gente sequer consegue dominar o básico. Quantos códigos já vi por aí que fazem contas completamente erradas ou desnecessariamente complicadas pra calcular uma porcentagem, por exemplo. E - coincidência ou não - geralmente são de pessoas que adoram dizer que matemática não serve para nada, que "nunca precisei", etc.
Enfim, vc usa matemática pra programar sim, só não é da maneira que muitos imaginam.