Llevo 8 años programando profesionalmente y desde los 12 como hobby.
Las matemáticas no son necesarias, la lógica sí. Sin embargo, las matemáticas son terriblemente útiles, decir que no es necesario es como decir que para matar a un hombre no es necesario un arma, puedes usar un cuchillo. Bueno, es cierto, pero esa pistola lo hace mucho más fácil.
Hay un par de mínimos que ya debería cumplir. Necesita conocer las expresiones algebraicas básicas y la notación, y los equivalentes comunes de computadora. Por ejemplo, necesita saber qué es una exponencial (3 elevado al 3ro es 27), y la expresión informática común es 3 ^ 3. Las notaciones comunes para el álgebra cambian entre idiomas, pero muchos de ellos usan una metodología algo unificada. Otros (mirándote LISP) no lo hacen. También necesita conocer el orden de las operaciones.
Necesitas comprender el pensamiento algorítmico. Primero esto, luego esto, produce esto que se usa en este cálculo. Lo más probable es que lo entiendas o no, y es un obstáculo bastante difícil de superar si no lo entiendes; Descubrí que esto es algo que 'obtienes', y realmente no es algo que puedas aprender. Por el contrario, algunas personas no "entienden" el arte. No deberían convertirse en pintores. Además, ha habido estudiantes en el plan de estudios de informática que no pueden entender por qué esto no funciona: x = z + w; z = 3; y = 5; No es que no entiendan la suma, es que no están comprendiendo el requisito del expreso inequívoco. Si lo entienden, la computadora también debería hacerlo, ¿verdad? Si no puede ver lo que está mal en las tres líneas anteriores, no se convierta en programador.
Por último, necesita saber cualquier matemática que esté bajo su dominio de programación. El software de contabilidad podría detenerse en el álgebra básica. Si está programando física, necesitará saber física (vagamente) y matemáticas en geometría tridimensional (euclidiana). Si está programando software de arquitectura, necesitará conocer la trigonometría.
Sin embargo, esto va más allá de las matemáticas; sea cual sea el dominio para el que esté programando, debe comprender a fondo los conceptos básicos. Si es un software de análisis de lenguajes de programación, necesitará conocer probabilidad, estadística, teoría gramatical (varios idiomas), etc.
A menudo, ciertos dominios necesitan, o pueden beneficiarse, de conocimientos que pensaría que no están relacionados. Por ejemplo, si estuviera programando un software de audio, en realidad necesita conocer la trigonometría para manejar las formas de onda.
La magnitud también cambia las cosas. Si está ordenando un conjunto de datos financieros de 1000 elementos, no es gran cosa. Sin embargo, si fueran 10 millones de registros, se beneficiaría enormemente de conocer realmente las matemáticas vectoriales y de tener una comprensión profunda de la ordenación a nivel binario (¿cómo ordena un sistema alfabéticamente? ¿Cómo sabe que 'a' es menor que 'b '?)
Descubrirá que, como programador, su base de conocimientos generales va a explotar, porque cada proyecto requerirá más aprendizaje fuera de la esfera directa de la programación. Si eres escrupuloso o perezoso con el autoaprendizaje y no te gusta la idea de pasar más de 10 horas a la semana haciendo esencialmente "tareas", no te conviertas en programador.
Si te gustan los ejercicios mentales, si te gusta aprender, si puedes pensar en cosas abstractas como matemáticas sin calculadora o diseño sin bloc de dibujo, si tienes gustos amplios en la vida y pasatiempos, si eres autocrítico y puedes desechar ' ideas favoritas, si te gusta perfeccionar las cosas, conviértete en programador. No base esta decisión en matemáticas, sino en la capacidad de pensar lógicamente y aprender. Eso es lo que importa; las matemáticas son solo un subproducto.