¿Cuáles son las ventajas de tener un título en matemáticas y trabajar como programador?

  • Comprender la convexidad de la función muy profundamente . Si bien la mayoría de las “ciencias de la computación” evitan las funciones arbitrarias, el trabajo algorítmico del mundo real implica mucha creación de funciones mágicas. En algunos contextos, a lo que se reduce es a entender la convexidad: ¿cómo debería cambiar su producción a medida que cambia la escala de su entrada? Por ejemplo, el factor de registro en IDF es crucial para garantizar que las palabras extremadamente raras no dominen las palabras medianas o que las palabras comunes como “restaurante” no se descarten por completo. Este no es un concepto difícil, pero la intuición profunda solo viene con años de pensamiento matemático.
  • Facilita muchas clases / conceptos de informática . Los estudiantes que no se especializan en matemáticas en, por ejemplo, una clase de algoritmos tendrán que gastar una cantidad significativa de poder mental simplemente en el proceso de una prueba rigurosa; si ya dominas eso como matemático, entonces puedes dedicar todo tu poder mental al problema específico en cuestión.
  • Los conceptos específicos aplicables a las ciencias de la computación están cubiertos posiblemente más profundamente por las clases de matemáticas . Junto con las estadísticas y el aprendizaje automático mencionados por Adam D’Angelo, hay una teoría de gráficos (por ejemplo, PageRank), teoría de juegos (AdWords), lógica formal (análisis estático), teoría de números (criptografía), etc.
  • Diversidad de paradigmas . Cualquiera sea su especialidad, le dará paradigmas para pensar. Si supone que ya estará expuesto a los paradigmas de la informática (ver más abajo), puede ser útil tener otros marcos para trabajar con ideas.
  • Los recursos informáticos en línea son realmente buenos . La informática no es programación, por lo que sigue siendo importante como programador exponerse a las ideas informáticas. Sin embargo, la programación facilita eso de manera relativamente orgánica (“espera, ¿cómo funciona esa tabla hash?”), Y la abundancia de buenos recursos en línea (conferencias grabadas en video, desbordamiento de pila, etc.) hacen que esto sea fácil de hacer.
  • Precisión y escepticismo . Estas son dos habilidades que perfeccionas profundamente como matemático y que aplicas esencialmente a cualquier pensamiento o discusión.
  • Los estudiantes de matemáticas son realmente inteligentes ; Es bueno tener una red de personas realmente inteligentes, y de alguna manera mejor tener una red de personas realmente inteligentes que todos los demás programadores no necesariamente conocerán también.

Estuve en matemáticas por un tiempo, pero luego terminé sin terminarlo y solo obtuve un título de CS. Las ventajas que siento de los cursos de matemáticas que tomé son:

  • Pienso más rigurosamente en las abstracciones que surgen durante la programación. Creo que estudiar álgebra abstracta y escribir muchas pruebas al respecto fue una gran parte de esto.
  • Tengo una mejor base en estadística, análisis y álgebra lineal, que surge en el aprendizaje automático, el análisis de datos y las tareas de programación relacionadas.

Era estudiante de matemáticas y física y, como la respuesta de Adam, particularmente su segundo punto. No tenía idea de lo que quería hacer, pero sabía que me gustaba la ciencia / ingeniería. Y pensé que las matemáticas son básicamente la lengua franca de estas disciplinas: si tuvieras una buena formación y formación en matemáticas, podrías pasar fácilmente a cualquier disciplina técnica: CS, EE, Física, Bioestadística, Bioinformática, etc.