¿Tengo que saber matemáticas para programar?

El tipo exacto de habilidades matemáticas necesarias para la programación depende en gran medida del tipo de programas que está escribiendo. El juego a menudo requiere cierto conocimiento de álgebra lineal y ecuaciones potencialmente diferenciales (para simulaciones físicas). El cifrado implicará cierta cantidad de matemáticas y estadísticas discretas. La programación científica variará mucho según la disciplina, pero a menudo será útil algún conocimiento de ecuaciones diferenciales, estadísticas y álgebra lineal. Una cosa a la que debe acostumbrarse en la programación es que cada proyecto generalmente requerirá que aprenda algunas cosas nuevas, ya sea un nuevo lenguaje de programación o paradigma de programación, o algún tipo de matemática con la que no esté familiarizado . ¡Trabajar en un navegador web puede obligarlo a aprender sobre los conceptos básicos de la visión para comprender cómo implementar los perfiles de color correctamente!

Dicho esto, la parte de las matemáticas que quizás sea más útil en la programación es la forma de pensar. En la programación, deberá poder definir con precisión su problema, dividirlo en problemas más pequeños, encontrar soluciones y convencerse (preferiblemente de manera rigurosa) de que las soluciones que encontró son correctas. Tendrás problemas si esas son las cosas que no te gustan de las matemáticas.

Una cosa que puede hacer es obtener la Introducción a los algoritmos de Cormen y avanzar a través de ella; asegúrese de comprender los algoritmos y las razones por las que funcionan; trate de pensar cómo se le ocurrió la idea para cada uno de los algoritmos; y ejercita al menos algunos de los ejercicios. Cuando encuentres algunas matemáticas desconocidas, aprende. Creo que el texto de Cormen trata sobre el nivel correcto para una introducción a la programación en la mayoría de los campos.

Se requiere conocer las matemáticas suficientes para “obtener” abstracción algebraica, ya que la programación se trata de abstracciones y cómo manejarlas.

Además, muchos lugares de programación requieren matemáticas más avanzadas: los motores de juego usan conceptos de cálculo y física, la IA y el aprendizaje automático usan estadísticas pesadas, los motores de bases de datos usan muchas ideas de la teoría de conjuntos, la programación científica usa muchas matemáticas y física, minería de datos y la ciencia de datos utiliza muchas estadísticas y otros tipos de matemáticas, y no está de más entender las matemáticas discretas en muchas áreas de la informática.

Dicho esto, hay vastas áreas de programación donde las matemáticas más allá del álgebra de la escuela secundaria rara vez se encuentran, como el trabajo de IU, una gran cantidad de programación de negocios, etc.

Hay muchos programadores jóvenes que aprenden a programar antes de que se hayan encontrado con muchas matemáticas, y muchos programadores exitosos sin muchos conocimientos de matemáticas, en C, C ++ y muchos otros lenguajes.

Pero deberá sentirse cómodo con el argumento numérico y lógico para tener éxito en todos los tipos de programación.

El conocimiento de las matemáticas no necesariamente te hace bueno de repente para programar. Creo que para que uno sea bueno / mejor en la programación, uno tiene que seguir practicando y también adorar programar como un pasatiempo fuera de su trabajo / estudios. Ni siquiera un libro muy bueno o una universidad de primer nivel pueden hacer que uno que no está interesado sea bueno. Pero si dices que te encanta programar, estás en la dirección correcta.

Pero hablemos de matemáticas. Hay muchos puntos de vista opuestos acerca de la informática, como si necesita matemáticas o no, es una idea errónea de que necesita matemáticas. Depende de lo que entendemos por matemática, porque los algoritmos simples y la lógica en la mayoría de los proyectos de programación son solo cosas básicas de la escuela. Tal vez uno necesita comprender la aritmética binaria para cosas de bajo nivel, pero eso es matemática concluida en pocas páginas y aprendida por la práctica y la repetición. Y luego hay gráficos en 3D en los que necesitas álgebra lineal, vectores, matrices, pero si bien pueden parecer intimidantes en la escuela, uno podría simplificar y cubrir de nuevo las cosas básicas necesarias en pocas páginas. Entonces es todo algoritmos y lógica.

He escuchado a gente decir que necesitas matemáticas para ensamblar, C / C ++ y lenguajes de bajo nivel, mientras que no los necesitas para javascript, visual basic, etc. Pero no estoy de acuerdo. Realmente depende del problema. No es como si estudias matemáticas avanzadas, serás más capaz de entender los punteros. Las cosas de bajo nivel solo necesitan que pienses diferente sobre la memoria, los bits individuales, cómo funcionan las computadoras, etc. Muy bien podrías estar trabajando en algunos cálculos científicos avanzados o un motor 3D en JavaScript y necesitas muchas más matemáticas que en una aplicación C GUI proyecto. Un matemático muy alfabetizado tendría dificultades de la misma manera que un simple informático cuando intenta aprender a programar en C o ensamblar.

Por último, pero no menos importante, todavía no he usado más que el conocimiento escolar, incluso en la programación de gráficos en 3D. Si bien tengo un diploma en matemáticas, rara vez encuentro aplicaciones de cosas muy avanzadas o abstractas, a menos que alguna vez trabaje en un proyecto de computación científica que presente algunas de las matemáticas avanzadas, pero todo lo que tienes que hacer es traducir los símbolos en algoritmos. Y algo más, mientras estudiaba programación gráfica, caería en papeles para iluminación avanzada o dinámica de fluidos u otras cosas que tenían las fórmulas más intimidantes. Pero muchos de ellos demostrarían ser algoritmos muy lógicos si pudieras encontrar algún otro tutorial de codificación que explique la idea básica detrás de esto. Vería múltiples integrales y gradientes (el símbolo anadelta) pero realmente podrían describirse con múltiples bucles for en un rango (en lugar de múltiples integrales) o calcular la inclinación de los píxeles más cercanos (los gradientes), cosas con las que estoy más familiarizado codificación de gráficos para un pasatiempo.

Realmente, si no supiera cuáles son estos símbolos (por lo tanto, el grado de matemática me ayuda a no sentirme intimidado), huiría y pensaría que los gráficos no son para mí. Pero no, aunque las matemáticas son elegantes en los documentos, creo que el algoritmo de “aspecto más avanzado” puede cuantificarse en algo que no es tan difícil de entender con una lógica simple. A veces me encanta explicar en términos más simples algunos de los efectos “elegantes” en los gráficos debido a ese sentimiento.

Bueno en programación consiste en múltiples cosas:

1) Ser capaz de implementar cualquier lógica: buena comprensión de descubrir la lógica para una tarea en particular. Podría incluir algunas condiciones, podría incluir algunas operaciones matemáticas básicas, algún reconocimiento de patrón entre los datos que le ayuda a buscar por él. Puede incluir muchas otras cosas también.

2) Comprender la estructura de datos, las listas vinculadas, las matrices, etc. le dará conceptos de programación que son un conjunto de cosas que puede hacer usando la programación. En un nivel básico de programador, no se requieren muchas matemáticas, aparte de quizás diferentes formas de organizar los datos, la recuperación, etc.

3) Eficiente en la codificación: podría usar un código que haga el trabajo de encontrar números primos hasta 100,00 en 5000 iteraciones. Pero hay una manera de escribir con solo 100 iteraciones, que es 50 veces más rápido. El análisis de dichos algoritmos requerirá algunos conocimientos matemáticos. Hay algo llamado Fast Fourier Transforms que revolucionó el área de procesamiento de señales. Otro ejemplo sería el motor de búsqueda de google. Las personas que hacen cosas revolucionarias no se detienen en la mera programación. Están en matemáticas detalladas. Hay muchas materias dentro de la informática en sí. Póngase en contacto con una persona que está haciendo una maestría en CS para conocer los detalles.

Una cosa que puedo decirte es que, si estás desarrollando alguna aplicación o algún software incrustado, no necesitas preocuparte demasiado por el tercer punto. Más bien, pondré el aprendizaje de conceptos de sistemas operativos como el tercer punto.

Estrictamente hablando, no puedes. Siempre hay algunas matemáticas involucradas. Sin embargo, ¡por lo general es matemática correctiva! Mientras pueda sumar, restar, multiplicar, dividir, encontrar restos, valor absoluto y redondear, estará bien.

Es uno de los conceptos erróneos más comunes entre los no programadores.

Ahora, si desea obtener un título en Ciencias de la Computación, prepárese para muchas matemáticas: cálculo, álgebra lineal, lógica, etc., etc., las aprenderá en su forma pura y las aplicará en algunas de los cursos de informática. Incluso algunas asignaturas optativas como Computer Graphics son extremadamente intensivas en matemáticas (la cantidad de matemática requerida para CGI es alucinante). Sin embargo, para el desarrollo regular de aplicaciones empresariales, es posible que nunca tenga que ir más allá de la aritmética básica de la escuela primaria.

Si está haciendo gráficos (incluso 2D simples), encontrará algunas X e Y, pero generalmente serán las coordenadas de sus primitivas gráficas. Puede usar algunas funciones matemáticas para describir la trayectoria de los objetos, etc. pero no debería ser tan malo

Creo que la respuesta correcta a esta pregunta debería depender de quién pregunta.

Si no le gustan las matemáticas, entonces me inclinaría a responder “no”, porque no gustarles las matemáticas no debería ser un obstáculo para aprender a programar.

Sin embargo, tenga en cuenta que no hay consenso con respecto a cómo definimos las matemáticas.

Entonces, en particular, si asocia la palabra “matemáticas” con cosas (generalmente aburridas) como sumar números, entonces la buena noticia es que, incluso si tiene la necesidad de hacer cosas como esta, puede delegar todas esas cosas aburridas en su computadora.

Creo que incluso el nombre “computadora” es engañoso en este contexto, porque implica que su propósito es realizar cálculos. Como suele ser el caso, el nombre es el resultado de un accidente histórico, y un mejor nombre para las computadoras sería simplemente “máquinas programables”, porque su propiedad esencial es que podemos programarlas.

Y la programación solo le dice a la computadora que en algunas circunstancias particulares se deben realizar algunas acciones específicas. Entonces, la dificultad principal es describir esas circunstancias y asegurarse de que se elijan las acciones correctas.

¿Necesitas matemáticas para esto? Supongo que esto solo depende del tipo de circunstancias que desea poder describir y de las acciones que desea que su programa pueda realizar. Por ejemplo, si está escribiendo un programa que controla un ascensor y desea que haga cosas diferentes dependiendo de si hay más de diez personas adentro, entonces ya se está refiriendo a las nociones matemáticas como “más que” y ” diez”.

circunstancias:
el número de personas dentro del elevador es mayor a 10
acción:
abre las puertas y dile a la gente que alguien necesita irse

circunstancias:
el número de personas dentro del elevador no es mayor a 10
se presionó un botón a otro piso
acción:
cierra las puertas y ve a otro piso

Su programa debe poder realizar adiciones para realizar un seguimiento de la cantidad de personas que ingresaron al elevador:

circunstancias:
el detector detecta a una persona que ingresa al elevador
acción:
aumentar el contador de personas adentro en uno

circunstancias:
el detector detecta a una persona que sale del elevador
acción:
disminuir el contador de personas adentro por uno

Por supuesto, uno puede imaginar fácilmente un programa útil que no recurra a los números. Por ejemplo, podríamos escribir un programa que realice la declinación de los sustantivos latinos. Podríamos ser muy detallados sobre esto:

circunstancias:
el usuario solicitó la forma acusativa del sustantivo singular “poeta”
acción:
dar la palabra “poetam” al usuario

circunstancias:
el usuario solicitó la forma genética del sustantivo plural “poetae”
acción:
dar la palabra “poetarum” al usuario

y así.

Por supuesto, escribir el código para todos los sustantivos posibles sería muy ineficiente ya que no explotaría las similitudes estructurales entre diferentes palabras. Nos resultaría más conveniente definir funciones que nos darían lo que queremos, como en, digamos:

singular Acusativo (palabra) =
if isFirstDeclension (palabra)
luego madre (palabra) ++ “am”
más si isSecondDeclension (word)
luego stem (palabra) ++ “um”
si no es isThirdDeclension (word)
luego stem (word) ++ “em”
si no es isFourthDeclension (word)
luego madre (palabra) ++ “im”

Por supuesto, también tendríamos que proporcionar funciones stem y is{First,Second,Third,Fourth}Declension . Por supuesto, los nombres “primero”, “segundo”, “tercero” y “cuarto” no son esencialmente matemáticos (estos son solo nombres históricos), pero … ¡espera un minuto! ¿No es la noción de función (algo que asocia algunos argumento con un valor único correspondiente) esencialmente matemático?

Probablemente eso no sea lo que tenía en mente cuando hizo esta pregunta. Pero si no está familiarizado con la noción de función y no está dispuesto a aprenderla, es probable que se haga las cosas mucho más difíciles. No necesita saber cosas como derivados o integrales, pero no conocer la noción de funciones, conjuntos o lógica básica (como las leyes de De Morgan) y las reglas de la aritmética será un impedimento para usted si desea lidiar con la programación.

Entonces supongo que mentí al principio. Lo cual debería estar en línea con el mantra que algunas personas dicen, que las matemáticas no están ahí para hacernos las cosas más difíciles, pero están ahí exactamente para hacerlas más simples. Lo que no debería sorprender: a pesar de la controversia con la definición, la palabra griega ta mathemata significa “conocimiento” o “las cosas que se pueden aprender (y enseñar)”.

Sí, pero no todos entienden qué son realmente las matemáticas (porque no tiene mucho que ver con lo que se enseña en la clase de matemáticas en la escuela).

Lo que sin duda necesitará, sin lugar a dudas, para la programación es la habilidad de abstracción de problemas, junto con las habilidades de detectar patrones y formas de generalizar problemas. No necesitará todas las fórmulas y pruebas que se enseñan en la clase de matemáticas: las fórmulas que puede buscar (aunque tiene que ser capaz de comprenderlas) y las pruebas se entrenaron en la abstracción, los patrones de detección y la generalización, por lo que Si eras bueno en ellos, tienes ventaja.

Una anécdota. Mi padre era oficial de capacitación para una empresa de ingeniería del Reino Unido. Cuando aparecieron las computadoras, tuvo que decidir a quién enviar cursos externos de programación de computadoras. Envió a los candidatos que no eran particularmente buenos en matemáticas, porque pensó que la computadora hacía los cálculos. Luego decidió ponerse en el curso, y descubrió que sus matemáticas estaban al límite. Las computadoras hacen la aritmética . La matemática es saber qué aritmética debe hacerse.

No tengo ningún entrenamiento formal en matemáticas (bachillerato, no universidad) y no soy muy joven (47 años), por lo tanto, mi mente no es tan rápida como a los 20. Sin embargo, estoy estudiando Haskell y he aprendido mucho. de cosas de las matemáticas también. Puedes hacerlo, solo lleva tiempo.

Los temas más importantes que eventualmente enfrentará son los cálculos lambda, la teoría de tipos, el álgebra abstracta, la lógica y “el sinsentido abstracto” (también conocido como teoría de categorías).

No necesita conocer a ninguno de ellos para entender a Haskell. Tiene muchos términos matemáticos en la biblioteca, pero eso no significa que necesite saber matemáticas. Son solo nombres. Usted ‘solo’ necesita comprender las abstracciones. (piénselo: función, variable, algoritmo … la programación imperativa clásica también está llena de términos matemáticos)

Haskell le permite trabajar en un nivel de abstracción extremadamente superior en comparación con los lenguajes imperativos clásicos (e incluso en comparación con los lenguajes funcionales clásicos). Y es la razón por la que es tan poderosa y la razón por la que se siente tan difícil. Aprender algo práctico se hace fácilmente leyendo. Resumir un concepto es natural (a nuestra mente le encanta abstraer), pero no es fácil simplemente leerlo: requiere práctica y comprensión profunda.

Aquí hay un ejemplo simple: si los busca, encontrará que la definición matemática de semigrupo y monoide es extremadamente fácil. Pero te perderás la abstracción real hasta que comiences a usarlos en el código. A continuación, los entenderá como una forma de acumulación / concatenación, pero eso es solo el comienzo. En el momento en que también te des cuenta de que también pueden representar una opción, comenzarás a sentir que hay una comprensión muy abstracta que abarca tanto la acumulación como la elección (y más).

Este mismo proceso se repetirá una y otra vez. Cada abstracción en realidad tiene una gran cantidad de “instancias” concretas que podría usar para explicarlo. Pero ninguno de ellos es realmente completamente correcto. Esto es lo que Brent Yorgey llama la “falacia del tutorial de mónada” (conocida como la teoría de “mónada son burritos”). El hecho es que realmente se te ocurre la intuición que quieras (incluidos los burritos) y será correcto e incorrecto. Finalmente, necesita desarrollar una comprensión de la abstracción en sí misma, no de las instancias concretas.

Esto es lo que parece ser difícil. Pero realmente no es difícil. Solo lleva tiempo. Tienes que dejar que la comprensión se hunda, y eso no se puede hacer leyendo una definición. Tienes que dejar que tu mente mueva la idea, una y otra vez. Toma tiempo.

Una vez que comience a obtener las abstracciones, probablemente descubra que también desea aprender los antecedentes matemáticos. Pero no lo necesitas. Su afirmación de que siente que necesita las matemáticas para aprender Haskell es tanto verdadera como falsa al mismo tiempo. Podría revertirse: necesitas a Haskell para entender las matemáticas. Por supuesto, ninguna de las versiones es verdadera: puedes aprender Haskell y puedes aprender las matemáticas independientemente el uno del otro. Ambos requieren comprender el mismo tipo de abstracciones, por lo tanto, son, en cierta medida, equivalentes. Lo que realmente está haciendo es aprender a trabajar con abstracciones. Haskell te permite aplicarlos a programas, las matemáticas te permiten aplicarlos … a más matemáticas.

Sugiero que lo abordes estudiando ambos al mismo tiempo.

Comience con un poco de historia sobre el cálculo lambda. Más tarde lo expandirá a los combinadores y supercombinatores y la codificación de la Iglesia y la codificación de Scott y más. Luego simplemente escribió lambda y desde allí los otros idiomas del cubo lambda.

Comience con una descripción general de las estructuras en álgebra abstracta. Pero no es necesario estudiar teoría de grupo o anillo desde el principio. Solo las definiciones básicas de las estructuras son suficientes para comenzar.

Enjuague y repita.

Si y no

La mayoría de los programas de informática requieren que tomes Cálculo II, que es cálculo integral. Sin embargo, la mayoría de las personas con las que he hablado nunca han requerido la aplicación de cálculo a su programación. Si trabajó para una empresa como una que hace calculadoras o software matemático, entonces sí, lo más probable es que necesite saber matemática de nivel superior.

Sin embargo , las matemáticas mejoran su pensamiento lógico y esta es una habilidad por excelencia al programar. La única matemática que diría que necesitaría es aritmética básica, álgebra, tal vez álgebra lineal (dependiendo del tipo de programación que esté haciendo) y, lo más importante, matemáticas discretas .

Sin embargo, no se deje intimidar por el nombre. La matemática discreta es más parecida a la lógica que la matemática, y trata conceptos como la teoría de conjuntos, el álgebra booleana y la lógica matemática.

En resumen, no puede aprender programación sin matemáticas, pero puede aprender programación sin matemáticas de nivel superior .

Los conceptos matemáticos definitivamente ayudan en la programación, diré que no puede escribir un programa sin usar al menos ninguno de los conceptos matemáticos .

Algunos conceptos de uso frecuente:

  • Conjuntos
  • Lógicas
  • Probabilidad
  • Matemáticas generales
  • Derivados
  • Redondeo
  • Teorías de grafos, etc.

Si trabajará como desarrollador de juegos, procesamiento de imágenes, administrador de bases de datos, científico de datos, analista, etc., ¡también tendrá que lidiar con matemáticas complejas!

Bueno, depende de qué tipo de programación hagas.

Los lenguajes como Python usan una buena cantidad de matemáticas, aunque no sean matemáticas difíciles. Supongo que puede sumar, restar, multiplicar, dividir, cuadrado, cubo, raíz, números divisibles, etc.

Pero un error común es que la programación es matemática. Pero no lo es. Es poner una serie de instrucciones juntas para crear un programa. Por lo tanto, los elementos involucran matemáticas, pero si no está preparado para manejar incluso los problemas matemáticos, me temo que la programación no es para usted. ¿O es eso?

Un artículo de The Telegraph nos dice que la programación tiene más que ver con la lógica y las habilidades de pensamiento. Incluyendo la capacidad de pedir prestado y ampliar el trabajo de otras personas.


“Para tomar un ejemplo festivo adecuado, digamos que desea escribir un código simple para crear un árbol de Navidad con una cuenta regresiva para Navidad. Usaría una serie de instrucciones lógicas simples “si esto, entonces aquello” para producir algo como esto . No es exactamente digno de una aplicación, pero lo que puedes ver es cómo las matemáticas interactúan con la lógica.

No hay muchas matemáticas, ya ves, pero algunas ecuaciones. “Usted”, el desarrollador, le indica al programa de computadora que complete las tareas utilizando la lógica.

Sin embargo, la comunidad de desarrolladores es increíblemente buena para compartir y trabajar en colaboración, como lo explica Thomas Shadwell (18) de Young Rewired State, quien ha escrito los ejemplos de código y la notación que ve en este artículo: “Los programadores casi nunca necesitan hacer cálculos por sí mismos Es solo una cuestión de hacer el álgebra correcto, e incluso entonces, hay cientos de publicaciones de blog y tutoriales de programadores que han abordado el mismo problema “. “- Aprendiendo a codificar: ¿necesito ser bueno en matemáticas?


Personalmente estoy de acuerdo con esta cita. En realidad, no hay mucha resolución matemática involucrada en la programación, “es solo cuestión de hacer el álgebra correcto, e incluso entonces, hay cientos de publicaciones de blog y tutoriales de programadores que han abordado el mismo problema”.

Cógelo de mi. Tengo 13 años y ni siquiera conozco un lenguaje de programación con fluidez. XD

Ehh … 😉

Ejem. ¿Qué quieres decir con “matemáticas”?

Existe un argumento razonable de que al tomar cualquier decisión (incluyendo cómo codificar * algo), solo tiene dos opciones:

  1. Usa las matemáticas de alguna manera;
  2. Tomar decisiones aleatorias (ish). **

¿Conoces una manera de separar las matemáticas de cualquier forma de toma de decisiones lógica? Yo no. Incluso los bebés que recién comienzan a comunicarse utilizan una toma de decisiones sofisticada (bayesiana).

Su problema no es encontrar una forma de programación que no implique matemáticas. Ni siquiera es para “superar su miedo irracional a las variables / lo que sea”. Es simplemente darse cuenta de que todo lo que ya hace está incrustado en matemáticas / lógica, por lo que (como los bebés) ya está usando las matemáticas en todo lo que hace.

Al menos todo lo que tiene algún sentido.

Ahora solo tienes que traducir esas habilidades innatas en código.

Sí, es matemática.

Mi 2c, Jo.

* ¡La palabra ‘código’ es una pista de que las matemáticas están involucradas!

** El verdadero azar es realmente bastante difícil. Lo más probable es que sin controles matemáticos sofisticados, eres “aleatorio” no lo es. Solo te estás engañando a ti mismo.

Respuesta corta: no.

Aparte de la aritmética básica, la programación no implica muchas matemáticas en absoluto. La programación es solo escribir una secuencia de instrucciones para una computadora, sin matemáticas en absoluto.

Muchos problemas de programación involucran matemáticas, a veces matemáticas complejas, pero muchos no.

Editar: Si su pregunta implícita era “¿debería ingresar a la programación como carrera si soy malo en matemáticas”, entonces estoy de acuerdo con la respuesta de Gary Puckering. El pensamiento de tipo programación y el pensamiento de tipo matemático son similares. Si le resulta difícil el álgebra, probablemente no será un gran programador. Pero hay excepciones: pruebe un poco de programación. Si lo amas como loco, hazlo independientemente de si eres bueno en matemáticas. Si eres ‘meh’ acerca de la programación y eres malo en matemáticas, olvídate de la programación; no serás bueno en eso.

Para los novatos o programadores aspirantes, la respuesta siempre debe ser NO. Porque no debemos desalentar su pasión por aprender programación. Una respuesta más elaborada es que no tienes que saber matemáticas para comenzar a programar, es fácil e interesante comenzar a aprender programación, no te preocupes por eso. Incluso si necesita matemática, tendrá tiempo para aprenderla cuando haya disfrutado de la feliz programación. Nunca es tarde

Para aquellos desarrolladores profesionales que tienen mayores expectativas para la carrera, la respuesta es SÍ. Si alguna vez tienes la oportunidad de resolver problemas realmente complejos, encontrarás que el arma matemática siempre es tu amigo en tu kit de herramientas. A pesar de esto, las matemáticas proporcionan una representación razonable y elegante para expresar el problema muy complejo, que podría ser muy difícil de describir en lenguajes naturales. Incluso si usted es un CTO que puede no necesitar codificar, aún necesita saber cómo diseñar KPI u OKR en matemáticas.

Las matemáticas están en todas partes, y nunca es tarde para aprender.

No matemática per se. Necesitará un pensamiento lógico para programar. Suponiendo, por supuesto, que se da por sentado que usted conoce operaciones matemáticas básicas. Puede comprender y escribir código con sentido común, pensamiento lógico y matemática básica, sí.

Sin embargo, escribir código eficiente es una bestia completamente diferente. Si desea comprender qué estructura de datos sería la más adecuada para cada necesidad o calcular la eficiencia (asintótica) de un algoritmo, deberá ser fuerte en álgebra.

Más allá de esto, hay dos ángulos a considerar. Primero, cuanto más profundice en un área específica en CS (análisis de datos y minería, bioinformática, algoritmos y lenguajes de programación, inteligencia artificial), más avanzada será la matemática que exige. Segundo, el dominio para el que vas a codificar. Construí algo como sabueso para mi proyecto de último año y tuve que aprender las transformadas de Fourier para ello. Mi amigo escribe scripts de automatización para una aplicación comercial y tiene que saber aritmética avanzada.

En conclusión, si quieres ser un programador de propósito general, entonces puedes escaparte sin saber más que lo básico, pero si buscas algo más que eso, es mejor que conozcas tus números.

No tienes que saber matemáticas para programar. Soy un estudiante en la Escuela Holberton, que estudia ingeniería de software full-stack. Tuve solo el mínimo de clases de matemáticas hasta la universidad. Ni siquiera tomé clases de cálculo o trigonometría (en realidad no sé cómo graduarme con un título sin ellos: |). Dicho esto, ayuda si eres bueno en la lógica. Trabajar a través de cosas como algoritmos no es demasiado matemático, pero se enfoca en la lógica y el pensamiento crítico.

Ahora, dependiendo de qué nivel de programación ingreses, podrías necesitar más matemáticas. Algo como ciencia de datos, aprendizaje automático o big data, pero hay muchas áreas de programación donde no es un requisito estándar.

Es tarde y estoy en la fecha límite, así que lo leí como ‘metanfetamina’ en lugar de ‘matemáticas’. Y fue como ‘Bueno, no, pero podría ayudar’ jajaja.

No tengo cálculo formal de educación matemática pasada, y lo hago bien. Los problemas de programación son muy variados: la mayor parte de lo que hago es vincular los sistemas de comercio electrónico usando API basadas en HTTP, por lo que es una red básica, administración de sistemas y manipular cadenas y almacenarlas en una base de datos. La mayoría de las matemáticas involucradas son aritméticas básicas.

Sin embargo, eso es un contraste de las matemáticas que se necesitan para algo como construir un motor de juego, que de nuevo se ve eclipsado por las matemáticas necesarias para algo como el modelado meteorológico o físico cuántico.

Así que supongo que la respuesta es “depende de qué problemas quieras resolver con la programación”.

¡Por supuesto!

Sin las matemáticas, somos hombres de las cavernas que comen barro ” – Desconocido

Las matemáticas nos permiten entender el universo en una escala completamente nueva. Las matemáticas nos muestran cómo giran los planetas, qué edad tiene la primera bacteria anaerobia y cuánta energía libera un vapor cuando se deposita en un sólido.

Aquí estamos particularmente interesados ​​en adquirir intuición y habilidades para resolver problemas. Al aprender matemáticas a un alto nivel, podrá resolver problemas complejos y retomar el oficio de programación muy rápidamente. Específicamente, ¿puedo recomendar algunos libros de matemáticas de competencia para resolver problemas para su lectura?


Puede parecer humillante leer un libro para alumnos de 7º a 10º grado y luchar con algunos problemas, pero las habilidades que se enseñan en este libro son invaluables.

Excelente pregunta!

La mayoría de la programación no requiere más que habilidades matemáticas básicas. La excepción más significativa son los gráficos, especialmente los gráficos en 3D, y la modelación de estructuras en 3D. Algunos conceptos de programación avanzados, como las mónadas, se basan en una rama de las matemáticas llamada teoría de categorías.

Dicho esto, creo que 9 de cada 10 programadores estarán bien sin ningún conocimiento avanzado de matemáticas.

Dos preguntas diferentes

La mayoría de los trabajos de programación no usan matemáticas. Pero todos los lenguajes de programación usan variables para representar números (y otras cosas), casi todas las líneas de la mayoría de los programas están manipulando variables.

Tanto en matemáticas como en programación, representar números como variables es un ejemplo de simple “abstracción”. Los programas reales tienen varias o muchas capas de abstracción que deben mantenerse directamente en la cabeza. Para ser franco, si entra en pánico cuando ve una sola capa de abstracción en una ecuación matemática, tendrá grandes dificultades para comprender los múltiples niveles de abstracción bastante compleja que se encuentran en los programas informáticos serios.

El tipo de cosas que usted describe como causantes de pánico (abstraer números como variables) ocurren en casi todas las líneas de la mayoría de los programas de computadora. A menos que resuelva ese problema, no puede convertirse en un programador de computadoras.