¿Qué tipo de asignaturas de matemáticas debería estudiar como programador autodidacta?

Las respuestas hasta ahora son geniales. Otra asignatura de matemáticas que agregaría es la matemática discreta (nota: no discreta ). Esta lista de reproducción tiene algunas conferencias transmitidas en línea para CS 70, un curso sobre Matemática discreta y Teoría de la probabilidad, en la UC Berkeley. Como se describe en el programa del curso:

Las matemáticas discretas y la teoría de la probabilidad proporcionan la base de muchos algoritmos, conceptos y técnicas en el campo de la ingeniería eléctrica y las ciencias de la computación. Por ejemplo, el hardware de la computadora se basa en la lógica booleana. La inducción está estrechamente vinculada a la recursión y se usa ampliamente, junto con otras técnicas de prueba, en argumentos teóricos que son críticos para comprender los fundamentos de muchas cosas, desde algoritmos de control, aprendizaje, procesamiento de señales, comunicación e inteligencia artificial. Del mismo modo para la aritmética modular y la teoría de la probabilidad. CS70 te introducirá en estos y otros conceptos matemáticos. Al final del semestre, debe tener una comprensión firme de las bases teóricas de estos conceptos y sus aplicaciones a los problemas matemáticos generales. Además, aprenderá cómo se aplican a problemas específicos e importantes en el campo de EECS.

Como se puede imaginar, puede ser muy valioso para cualquier programador estudiar esto. Se cubren cosas importantes, como los códigos de corrección de errores del algoritmo de matrimonio estable. (Y si no tienes idea de lo que son, ¡no te preocupes! ¡Los videos y el curso los cubren!)

Uno de los requisitos previos para este campo de las matemáticas es el Álgebra Lineal, por lo que recomiendo aprender eso antes de Matemáticas Discretas.

Esto depende completamente del tipo de programación en la que esté interesado. Después de una habilidad matemática básica, lo que necesita estudiar para ayudar a su progresión en la programación podría ser muchos temas. Por ejemplo, si está interesado en el diseño web, su habilidad matemática básica probablemente debería ser suficiente. Esto es todo lo contrario si está utilizando la programación para el análisis de datos o la inteligencia artificial, donde un conocimiento profundo de temas como la regresión, el álgebra lineal y la teoría de la probabilidad son cruciales. En general, la capacidad de programar es una herramienta que uno tiene, que dependiendo de la meta final se puede aplicar con muy poca capacidad matemática o que requiere una compañía constante con ideas matemáticas complejas.
Dos grandes sitios web que he encontrado útiles son:
Coursera – Cursos gratuitos en línea de las mejores universidades
edX
Estos ofrecen cursos de nivel universitario en muchos temas y son excelentes para aprender sobre áreas específicas en las que está interesado.