¿Qué tan necesario es una comprensión profunda de las matemáticas en la programación?

En realidad no. Sí, ayudará, hasta cierto punto, dependiendo de cuán “matemática” sea su programación, pero no existe la correlación que podría pensar. Este es el por qué:

1) La mayoría de la programación no requiere ninguna matemática más alta que el álgebra.

Sí, es verdad. La mayoría de las tareas de programación que encontrarás son tediosamente triviales en el gran esquema de las matemáticas. Sumar uno, restar uno, comparar recuentos … No hay tanta complejidad a menos que estés tratando específicamente de convertirte en un competidor de Wolfram Alpha.

2) La programación es una mentalidad completamente diferente.

Así que has “dominado” (según tu propia comprensión) los estudios de cálculo. Eres brillante en matemáticas. Eso no significa que serás un buen programador, al menos no sin esfuerzo, y posiblemente mucho. Verás, para poder programar bien, tienes que pensar como la máquina. La mentalidad de programación es una forma de pensar completamente nueva. Por supuesto, esto es algo que se desarrolla con el tiempo con la práctica; incluso las carreras de matemáticas más prestigiosas probablemente no puedan programar muy bien al principio. Y hay un mundo de diferencia entre poder codificar algo y aprender a codificar de manera eficiente, con buenas prácticas.

3) La programación requiere práctica, y la práctica significa tiempo.

Este punto va de la mano con el último. Esperar ser bueno en la programación porque eres bueno en matemáticas es como decir que serás bueno en el tenis porque eres un experimentado jugador de raquetas. Sí, hay similitudes, y puedes ser mejor que la persona promedio que no tiene idea de lo que está sucediendo, pero la realidad es que son dos bestias completamente diferentes. Y tienes que atacarlos a cada uno apropiadamente.

No digo que ser bueno en matemáticas no te beneficie; de hecho, probablemente te beneficiará enormemente, como a mí. Pero no debe esperar ser asombroso con la experiencia de nivel de entrada; Eso es simplemente absurdo.

La programación es muy amplia y, dependiendo de los dominios que esté programando, la cantidad de matemáticas variará. Hay algunos programadores excelentes que no tienen capacitación avanzada y aprenden cosas según sea necesario, pero diría que la programación menos intensiva en matemáticas aún requeriría aritmética, álgebra, lógica y geometría. Después de eso, el álgebra lineal y la probabilidad / estadística serían útiles para algoritmos más avanzados. Si está haciendo más computación científica, también necesitaría agregar cálculos y ecuaciones diferenciales. Una cosa importante a entender es que ser bueno en matemáticas no necesariamente lo convierte en un buen programador y viceversa, sin embargo, creo que un programador se beneficiaría de aprender más matemáticas que un matemático se beneficiaría de una mayor programación.

Como respuesta breve, la comprensión profunda de las matemáticas no es necesaria para una carrera de desarrollo de software. Las habilidades matemáticas relevantes serán útiles en áreas de dominio técnico específicas, como ingeniería, estadística, gráficos por computadora, etc., pero no directamente relevantes.

La relevancia de las matemáticas, sin embargo, es indirecta : cultiva la disciplina y la aptitud para el pensamiento sistemático y preciso, lo que será útil en la práctica del desarrollo de software.

Es como si no necesitaras un conocimiento más profundo de las matemáticas para estudiar física, pero sí, ¡los conceptos básicos de las matemáticas son esenciales para superarlos! Los programadores solo necesitan conocimientos matemáticos básicos de matemáticas de la escuela secundaria o de la universidad de primer año, no más nada menos, y que casi todas las tareas de programación se pueden lograr fácilmente sin necesidad de matemáticas avanzadas. en su mayoría algoritmos se basan en fundamentos

Si bien no es necesario, descubrí que aplicar un poco de matemática ayuda mucho a simplificar y acortar el código. Un ejemplo sería encontrar la suma de los primeros n números naturales. Si lo hicieras ingenuamente, recorrerías 1,2,3,4, …, ny sumarías todo. Sin embargo, usando las matemáticas puedes devolver n * (n + 1) / 2.

Lea la publicación de blog de Steve Yegge: Math For Programmers. obtendrás tu respuesta.