Eu era estagiário de uma grande empresa fabricante de nobreaks e estabilizadores, trabalhava na engenharia, mais especificamente como programador de firmware (o software que fica dentro de um microcontrolador).
O produto que eu estava trabalhando era de baixo custo, portanto o microcontrolador usado nele era o mais barato o possível.
Parte da exigencia legal era que a medição de tensão fosse feita através de TrueRMS (https://www.fluke.com/en-us/learn/blog/electrical/what-is-true-rms)
Para isso, fatia-se uma senoide em N pedaços, eleva cada pedaço ao quadrado e depois tira a raiz quadrada da soma.
Simples né? Só que não. Um microcontrolador de 8 bita não possui calculo de raiz quadrada nativamente, e a biblioteca que fazia esse calculo tinha três problemas:
- Era enorme, 1.5kB (o microcontrolador tinha 4kB de memoria de programa)
- Era lenta.
- Tinha zonas de imprecisão.
Estavamos enfrentando um problema que o estabilizador do nada "enlouquecia", e eu descobri que o problema estava na imprecisão do calculo de raiz quadrada.
Mas esse numero de RMS era usado simplesmente para comparar com uma tabela. então eu propus (para varios engenheiros formados, cabeça dura) de retirar a raiz quadrada e jogar pro outro lado da equação (a tabela).
Parece obvio, mas tive que passar horas explicando minha tese, desenvolver uma versão e provar que além de resolver o problema, nós conseguiríamos poupar bastante dinheiro reduzindo o tamanho do programa.
Com isso concluo: matemática é importante em tudo, mas na programação é ainda mais, pois em algum momento você vai precisar provar por A+B um conceito que na sua cabeça funciona. A matemática vai te ajudar a enxergar melhor determinados processos, lógica, e etc.