¿Qué tipo de matemáticas debo estudiar para comprender mejor la teoría detrás de la programación?

El cálculo lambda o el cálculo combinatorio sería un gran comienzo. Descubrirá que el cálculo lambda también lo conducirá rápidamente a variaciones en la teoría de tipos.

Sin embargo, su mejor apuesta para aprender todo esto es comenzar a tratar de implementarlo en su propio idioma, construye desde cero. Eso significa que necesitará aprender a usar la programación funcional, luego las mónadas y luego los analizadores también.

Aunque, más ingeniería en lugar de matemáticas formales, si finalmente desea saber qué está sucediendo en el nivel de los microprocesadores, debe aprender el ensamblaje y cómo eso se convierte en código de máquina, para que pueda comprender la administración de memoria, ALU, y el proceso real de obtención, decodificación y ejecución de las CPU. Todo esto es una capa adicional por encima de las matemáticas, pero también es bueno entender esto.

Puedo prometer que el viaje vale la pena.