uso tecnologia relacion programadores programacion para matematicas matematica libro informatica influye entre como aplicadas math

math - tecnologia - relacion entre matematicas y programacion



¿Las matemáticas son necesarias para la programación? (30)

Me pasó a debatir con un amigo durante los días de la universidad si las matemáticas avanzadas son necesarias para cualquier programador veterano. Él solía discutir ferozmente contra eso. Dijo que los programadores solo necesitan conocimientos matemáticos básicos de la escuela secundaria o las matemáticas de la universidad de año nuevo, ni más ni menos, y que casi todas las tareas de programación se pueden lograr sin necesidad de matemáticas avanzadas. Argumentó, sin embargo, que los algoritmos son un activo fundamental y obligatorio para los programadores.

Mi postura era que todos los avances en informática dependían casi exclusivamente de los avances en matemáticas y, por lo tanto, un conocimiento profundo de las matemáticas ayudaría enormemente a los programadores cuando trabajan con problemas desafiantes del mundo real.

Todavía no puedo establecer de qué lado de los argumentos es correcto. ¿Podría decirnos su postura, desde su propia experiencia?


¿Qué tipo de programación?

En mi experiencia comercial, no he necesitado matemáticas avanzadas, pero esto depende en gran medida del campo en el que se encuentre.

Los gráficos por computadora requieren una gran cantidad de matemáticas avanzadas. Una gran cantidad de programación informática académica requiere matemáticas avanzadas.

Por lo tanto, decir que tiende a haber una correlación entre personas que son buenas en matemáticas y personas que son buenas en programación.

Espero que esta respuesta débil sea útil.


Alguien con un sólido fondo matemático (que no es meramente aritmético) o lógico soportará bien los algoritmos, el uso de variables, el razonamiento condicional y las estructuras de datos.

  • No todos pueden diseñar una IU.
  • No todos pueden hacer un código eficiente.
  • No todos pueden comentar y documentar claramente.
  • No todos pueden hacer un buen algoritmo

Las matemáticas te ayudarán a un punto, pero solo a un punto.


Aprender matemática superior, para la mayoría de los programadores, es importante simplemente porque inclina tu cerebro a pensar lógicamente, paso a paso para pasar de una cosa a otra.

Sin embargo, muy pocos trabajos de programación requieren algo más que las matemáticas de la escuela secundaria. He usado el álgebra lineal una vez. Nunca he usado cálculo. Yo uso álgebra todos los días.


Bueno, generó una serie de respuestas, y no, no las leí todas. Estoy en el medio de esto, no, ciertamente no necesitas matemáticas para ser un programador. Assembler vs controladores de dispositivo en Linux no son más o menos complicados que el otro y tampoco requieren matemática.

De ninguna forma o forma necesita tomar o aprobar una clase de matemática para nada de esto.

Estoy de acuerdo en que la mentalidad de resolución de problemas para la programación es bastante similar a la de las soluciones matemáticas, y como resultado, las matemáticas probablemente sean fáciles. o al contrario si las matemáticas son difíciles, la programación puede ser difícil. No se requiere una clase o un grado o cualquier trozo de papel o trofeos, apagándose y aprendiendo cosas, seguro.

Ahora bien, si no puede convertir de forma hexadecimal a binaria a decimal rápidamente, ya sea en su cabeza, en papel o usando una calculadora, tendrá problemas. Si quiere entrar en contacto con redes y otras cosas que implican tiempo, qué controladores de núcleo a menudo lo hacen, pero no tienen que hacerlo. Vas a luchar. Conozco una larga lista de personas con títulos en matemáticas y / o ciencias de la computación, y / o títulos de ingeniería que luchan con los cálculos de tasas, bits por segundo, bytes por segundo, la cantidad de memoria que necesita para hacer algo, etc. en cierta medida, puede considerarse como una especie de destreza que algunos tienen y otros tienen que trabajar.

Mi conclusión es que creo en la fuerza de voluntad, si quieres aprender estas cosas puedes y quieres, es así de simple. No necesitas tomar una clase o gastar mucho dinero, linux y qemu, por ejemplo, pueden mantenerte ocupado durante bastante tiempo, diferentes lenguajes de asm, etc. entornos colapsibles para el desarrollo del kernel, incrustados, etc. No estás limitado a eso , pero no creo que tengas que salir corriendo y tomar clases si no quieres. Si quieres, entonces seguro tomar algunas clases de ee, algunas clases de cs y algunas clases de matemáticas.


Comencé a programar casi al mismo tiempo que ingresé a mi clase de preálgebra ... Así que no diría que las matemáticas son tan importantes, aunque pueden ser útiles en ciertos tipos de programación, especialmente funcional.

Todavía no he tomado Discrete Math, pero veo muchas cosas de teoría con la programación escrita en una notación matemática que se enseña en esta clase.

Además, asegúrese de saber cómo calcular cualquier cosa en cualquier base, especialmente la base 2, 8 y 16.

Además, una clase que realmente trajo a casa algunos conceptos para mí fue esta clase de pre-programación. Nos enseñaron uniones, intersecciones, y todas esas cosas felices y casi exactamente en paralelo con las operaciones en bits. Y cubrimos la lógica booleana en gran medida. Lo que consideré más útil fue cuando aprendimos cómo reducir declaraciones booleanas complejas. Esto fue muy útil:

(x|y) & (x|z) & (x|foo)

se puede simplificar a

x | (y & z & foo)

Que antes no entendía del todo.


Creo que realmente depende de lo que estás tratando de hacer, pero en mi humilde opinión, la teoría de CS y OS son más importantes que las matemáticas aquí, y realmente solo necesitas las matemáticas que implican.

Por ejemplo, hay una gran cantidad de antecedentes de CS de la teoría de la programación y la optimización que se encuentra detrás de muchos programadores en sistemas operativos modernos. Ese es un ejemplo de algo que requeriría algo de matemática, aunque no algo súper complicado.

Pero, sinceramente, para la mayoría de las cosas, no necesitas matemáticas. Lo que necesitas es aprender la capacidad de pensar en la base 2 y 16, como la capacidad de O / Y mental. Por ejemplo, si tiene un byte y dentro de ese byte hay dos campos de 3 bits y 2 bits desperdiciados, saber qué bits están en qué campos están activos cuando el valor del byte es algo así como 11 hará que las cosas sean un poco más rápidas que tener que usar pluma y papel.


Depende de lo que está haciendo. Si realizas una gran cantidad de programación 3D, el conocimiento de la geometría 3D es ciertamente necesario, ¿no estás de acuerdo? ;-) Si quieres crear un nuevo formato de imagen como JPG o un nuevo formato de audio como MP3, también estás bastante perdido si no puedes entender una transformación de coseno o de Fourier, ya que estos son los conceptos básicos con los que la mayoría de las compresiones con pérdidas se basan . Muchos otros problemas se pueden resolver mejor si conoce sus cálculos bastante bien.

También hay muchas otras tareas de programación que encontrarás que no necesitan mucha matemática.


El concepto fundamental de las matemáticas es el siguiente, el diseño, la comprensión, la implementación y el uso de algoritmos. Si no puede hacer matemáticas, es porque no puede hacer estas cosas, y si no puede hacer estas cosas, entonces no puede ser un programador efectivo.

Las tareas de programación comunes pueden no necesitar ningún conocimiento matemático específico (por ejemplo, probablemente no necesitará álgebra vectorial y cálculo a menos que esté haciendo tareas como gráficos 3D o simulaciones físicas, por ejemplo), pero los conjuntos de habilidades subyacentes son idénticos y la falta de capacidad en un dominio se combinará con la correspondiente falta de habilidad en el otro dominio.


El conocimiento avanzado de matemáticas es vital si vas a escribir un nuevo lenguaje de programación. O necesita escribir sus propios algoritmos.

Sin embargo, para la mayoría de la programación diaria, desde sitios web hasta aplicaciones de procesamiento de seguros, solo son necesarias las matemáticas básicas.


El conocimiento matemático a menudo es útil para un programador, al igual que las habilidades de diseño gráfico, la capacidad de resolución de rompecabezas, la ética de trabajo y una serie de otras habilidades y rasgos. Muy pocos programadores son buenos en todo lo que un programador puede ser bueno. No estoy de acuerdo con ninguna declaración del formulario "no eres un programador real a menos que puedas { insertar la capacidad de programación favorita aquí }".

Pero desconfiaría de un programador que no pudiera hacer matemáticas. Más que de uno que no pudo dibujar.


En mi experiencia, se requiere matemática en la programación, no puedes alejarte de ella. Toda la programación se basa en matemáticas.

El problema no es blanco y negro, sino más colorido. La pregunta no es si necesita o no matemáticas, sino cuánto. Los niveles más altos de matemáticas te darán más herramientas y abrirán tu mente a diferentes caminos.

Por ejemplo, puede programar si solo conoce las sumas y restas. Cuando se requiere multiplicación, deberá realizar muchas adiciones. La multiplicación simplifica las adiciones repetitivas. Algebra permite simplificar las matemáticas antes de implementarlas en los programas. Linear Algebra proporciona herramientas para transformar imágenes. Boolean Algebra proporciona mecanismos para reducir todas esas declaraciones if .

Y no te olvides del hermano de las matemáticas, Lógica y Filosofía. La lógica lo ayudará a hacer un uso eficiente de las case de case y case . La filosofía te ayudará a entender el pensamiento del tipo que escribió ese código que estás modificando.

Sí, no necesitas mucha matemática para escribir programas. Algunos programas pueden requerir más matemáticas que otros. Más conocimiento de matemáticas le dará una ventaja sobre aquellos que tienen una comprensión menor. En estos tiempos, las personas necesitan todas las ventajas que pueden obtener para obtener esos trabajos.


Estoy de acuerdo con Chris. Yo diría "Sí", también. Pero esto depende de su mercado como se indicó anteriormente. Si simplemente está creando algunas aplicaciones básicas "listas para usar" o herramientas de escritura para ayudar en su trabajo diario ... entonces las matemáticas no son tan importantes.

La ingeniería de soluciones de software personalizadas requiere una gran cantidad de resolución de problemas y pensamiento crítico. Habilidades que definitivamente se mejoran cuando hay un fondo de matemáticas presente. Estudié matemáticas con mi título en Ingeniería Informática y doy crédito a todos mis antecedentes orientados a las matemáticas sobre por qué estoy donde estoy hoy.

Esos son mis 2 centavos, puedo decir por leer arriba que muchos no estarían de acuerdo. Animo a todos a considerar que no estoy diciendo que no puedan tener esas habilidades sin conocimientos de matemática, simplemente estoy diciendo que las habilidades son efectos secundarios de tener esos antecedentes y pueden afectar el software positivamente.


He estado programando durante 8 años profesionalmente, y desde que tenía 12 años como hobby.

Las matemáticas no son necesarias, la lógica es. 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 arma hace que sea mucho más fácil.

Hay un par de mínimos, que ya deberías conocer. Necesita saber las expresiones algebraicas básicas y la notación, y los equivalentes de computadora comunes. Por ejemplo, necesita saber qué es una exponencial (3 a 3 es 27) y la expresión común de la computadora es 3 ^ 3. Las notaciones comunes para álgebra sí cambian entre idiomas, pero muchas de ellas usan una metodología algo unificada. Otros (mirándote LISP) no lo hacen. También necesita saber el orden de las operaciones.

Necesitas entender el pensamiento algorítmico. Primero esto, luego esto, produce esto que se usa en este cálculo. Lo más probable es que entiendas esto o no, y es un obstáculo bastante difícil de saltar si no lo entiendes; Descubrí que esto es algo que ''obtienes'', y no es algo que realmente 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 CS que no pueden entender por qué esto no funciona: x = z + w; z = 3; y = 5; No es que no comprendan la suma, es que no están comprendiendo el requisito de expresar inequívocamente. Si lo entienden, la computadora también debería, ¿no? Si no puede ver lo que está mal con las tres líneas anteriores, entonces no se convierta en un programador.

Por último, necesita saber qué matemática 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 (poco) y matemáticas en geometría tridimensional (euclidiana). Si está programando software de arquitectura, necesitará saber trigonometría.

Esto va más allá que las matemáticas; sea ​​cual sea el dominio para el que esté programando, necesita comprender a la perfección los conceptos básicos. Si usted es un software de análisis de lenguaje de programación, necesitará saber la probabilidad, las estadísticas, la teoría de la gramática (múltiples idiomas), etc.

Muchas veces, ciertos dominios necesitan, o pueden beneficiarse de, el conocimiento que usted pensaría que no está relacionado. Por ejemplo, si estuviera programando software de audio, realmente necesita saber trigonometría para manejar 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 se tratara de 10 millones de registros, se beneficiaría enormemente al conocer realmente las matemáticas vectoriales y tener una comprensión profunda de la clasificación a nivel binario (¿cómo clasifica un sistema alfabéticamente? ¿Cómo sabe que ''a'' es menor que ''b? ''?)

Descubrirá que, como programador, su base de conocimiento general va a explotar, porque cada proyecto requerirá más aprendizaje fuera de la esfera de programación directa. Si eres aprensivo o flojo con el autoaprendizaje, y no te gusta la idea de pasar más de 10 horas a la semana haciendo esencialmente ''deberes'', no te conviertas en un programador.

Si te gustan los ejercicios mentales, si te gusta aprender, si puedes pensar en cosas abstractas como las matemáticas sin una calculadora o un diseño sin un bloc de dibujo, si tienes un amplio gusto en la vida y pasatiempos, si eres autocrítico y puedes tirar " ideas favoritas, si te gusta perfeccionar las cosas, entonces conviértete en un programador. No base esta decisión en las matemáticas, sino más bien, la capacidad de pensar de forma lógica y aprender. Esos son lo que es importante; las matemáticas son solo el subproducto.


Iré contra la corriente aquí y decir "Sí"

Cambio de la Ingeniería Civil a la programación (Concrete Sucks!). Mis antecedentes matemáticos consisten en las materias usuales del primer año, Cálculos de segundo y tercer año (ecualización difusa, integraciones de volumen, transformadas serie, Fourier y Laplace) y un curso de Análisis numérico.

Encuentro que mis matemáticas son increíblemente insuficientes para la programación de computadoras. Hay áreas enteras de matemática discreta y lógica que me falta, y solo sobrevivo gracias a una extensa biblioteca de libros de texto, Wikipedia y Wolfram. La mayoría de los algoritmos avanzados se basan en matemática avanzada, y no puedo desarrollar algoritmos avanzados sin hacer una investigación exhaustiva (Esencialmente, el equivalente a un medio curso de trabajo). Ciertamente no puedo encontrar NUEVOS algoritmos, ya que simplemente me pongo No tienen los fundamentos matemáticos como hombros de gigantes sobre los cuales mantenerse.


La mayor parte de la programación que he realizado involucraba simulaciones de física para investigación, incluyendo cosas como electromagnetismo, mecánica cuántica y mecánica estructural. Como los dominios problemáticos tienen matemáticas avanzadas asociadas a ellos, me resultaría difícil resolverlos sin utilizar las matemáticas avanzadas.

Entonces, la respuesta a su pregunta es: depende de lo que está tratando de hacer.


Las matemáticas son necesarias para los desarrolladores en algunos campos, pero son casi inútiles en otros.

Si eres un desarrollador de juegos y tienes que trabajar mucho con física, la comprensión de las matemáticas es crucial. Si está trabajando con controles visuales avanzados, no podría hacer mucho sin la geometría. Si planea hacer algunos cálculos financieros, REALMENTE ayudaría a tener un sólido conocimiento de las estadísticas.

Por otro lado, en los últimos 5 años solo tuve 2 o 3 proyectos en los que CUALQUIER cantidad de matemáticas se requería. De estos solo hubo 1 aparición cuando una búsqueda en Google no ayudó.

Al final del día, incluso los cálculos financieros son muy a menudo algo que sus clientes hacen por usted y le dan fórmulas para implementar.

Entonces, si estás en un negocio de ''software aplicado'', es probable que nunca uses tu título de matemática. Si estás en el software académico, las matemáticas son cruciales.


Math es una caja de herramientas para crear programas. Recomiendo la Introducción de Cormen a los Algoritmos. Toca las cosas más "mathy".

- Greatest lowest limit (managing resources) - Random variables (game programming) - Topological sort (adjusting spreadsheets) - Matrix operations (3d graphics) - Number theory (encryption) - Fast fourier transforms (networks)


Necesitas matemáticas La programación no es más que matemática. Cualquier hallazgo de la física teórica no se convierte en una implicación práctica (aplicable), a menos que se expliquen en términos de soluciones matemáticas. Ninguno de ellos se puede resolver computacionalmente si no se pueden interpretar en computadoras, y más específicamente en lenguajes de programación. Diferentes idiomas están diseñados para resolver problemas específicos. Pero para el propósito general y lenguajes de programación ampliados como java, c, c ++ muchas de nuestras tareas de programación implican soluciones repetitivas (continuas) a los mismos problemas como extraer valores de la base de datos, archivos de texto, ponerlos en Windows (escritorio, web), manipular mismos valores, a veces accediendo a algunos datos de dispositivos similares (pero con diferentes nombres de marca, puerto diferente y dolor de cabeza), etc. que no implica más que un método unitario, y álgebra (contador, algo de lógica), geometría (gráficos) etc. depende de lo que trates de resolver


No creo que el conocimiento de matemática avanzada sea un requisito para un buen programador, pero basado en la experiencia personal, creo que los programadores que tienen una mejor comprensión de las matemáticas avanzadas también son mejores programadores. Esto puede deberse simplemente a una mente más lógica, o una perspectiva más lógica debido a sus experiencias de resolver problemas matemáticos.


No creo que las matemáticas superiores sean un requisito para ser un buen programador, ya que siempre depende de lo que está codificando.

Por supuesto, si estás en la programación de gráficos 3D, necesitarás matrices y esas cosas. Como autor de software comercial, probablemente necesitará estadísticas matemáticas.

Pero ser un programador profesional durante casi 10 años (y otro aficionado de 10 años) "matemática superior" no es algo que necesite regularmente. En aproximadamente el 99.8% de todos los casos, es solo más, menos, división y multiplicación en algunas combinaciones inteligentes, en la mayoría de los casos se trata de algoritmos, no de matemáticas.


OMI, probablemente necesites una aptitud para las matemáticas, sin tener necesariamente mucho conocimiento en el campo. Entonces, las cosas que necesita para ser bueno en matemáticas son similares a las cosas que necesita para ser bueno en la programación.

Pero, en general, no puedo recordar la última vez que utilicé algún tipo de matemática avanzada en la programación diaria, por lo que no.


Para responder a su pregunta tal como fue planteada, tendría que decir: "No, las matemáticas no son necesarias para la programación". Sin embargo, como otras personas han sugerido en este hilo, creo que hay una correlación entre entender las matemáticas y ser capaz de "pensar algorítmicamente". Es decir, poder pensar de manera abstracta sobre cantidad, procesos, relaciones y pruebas.

Empecé a programar cuando tenía alrededor de 9 años y sería difícil decir que había aprendido muchas matemáticas en esa etapa. Sin embargo, con un poco de esfuerzo pude entender variables, bucles, declaraciones de goto (perdóneme, era Vic 20 BASIC y aún no había leído ninguna Dijkstra) y geometría de coordenadas básica para poner gráficos en la pantalla .

Eventualmente obtuve un título de honores en Matemática Pura con una especialización en Ciencias de la Computación. Aunque me centré principalmente en el análisis, también estudié bastante matemáticas discretas, teoría de números, lógica y teoría de computabilidad. Además de poder aplicar unas pocas ideas de estadística, teoría de probabilidad, análisis vectorial y álgebra lineal a la programación, había pocas matemáticas que estudiara que fueran directamente aplicables a mi programación durante mi licenciatura y la programación comercial y de investigación que hice después.

Sin embargo, creo firmemente que los métodos formales de pensar que las matemáticas demandan -un razonamiento cuidadoso, la búsqueda de contraejemplos, la construcción de bases axiomáticas, la detección de conexiones entre conceptos- ha sido de gran ayuda cuando he abordado proyectos de programación grandes y complejos.

Considere la forma en que los atletas entrenan para su deporte. Por ejemplo, los futbolistas pasan gran parte de su tiempo de entrenamiento en habilidades básicas de fútbol. Sin embargo, para mejorar su estado físico general, también pueden pasar tiempo en el gimnasio en bicicleta o en máquinas de remo, haciendo pesas, etc.

Estudiar matemáticas se puede comparar con el entrenamiento con pesas o el entrenamiento cruzado para mejorar tu fortaleza mental y tu resistencia para la programación. Es absolutamente esencial que practiques tus habilidades básicas de programación, pero estudiar matemáticas es un entrenamiento mental increíble que mejora tu capacidad analítica central.


Por supuesto, depende del tipo de programador que desee, o mejor qué tipo de programador sus empleadores quieren que sea. Creo que el cálculo y el álgebra son esenciales, la estadística y la programación lineal es, de hecho, una buena herramienta para tener en su maletín, tal vez el análisis (derivadas, integrales, funciones ...) podría realizarse sin él. Pero si quiere saber cómo funcionan las cosas en la piel (electrónica, por ejemplo, o algunos algoritmos no triviales), las matemáticas "avanzadas" es algo que es mejor que no vaya sin ninguna parte.


Sí, no hay necesidad de matemática avanzada, si estás programando comercialmente, un software estándar.

Sin embargo, cuando se trata de cosas hardcore, como:

  • Cálculo de trayectorias para controlar un robot
  • Creación de aplicaciones similares a AI para admitir la incertidumbre y el razonamiento automático
  • Jugando con movimiento en 3-D y gráficos

Algunos conocimientos avanzados de matemáticas pueden ser útiles. Y no es como si fueran problemas "fuera de este mundo".

Tuve que crear un software para tratar de "predecir" la cantidad de papel necesaria para una oficina (y fue un infierno encontrar la mejor manera de aproximar los valores).

Sin embargo, hay que tener cuidado, porque es fácil perderse cuando se usan cosas avanzadas; hay un amigo mío que recurrió a usar Turing para almacenar el estado de un menú dinámico solo para mostrarlo correctamente - humm ... tal vez él estaba demasiado lejos en su imaginación.


Si bien las matemáticas avanzadas pueden no ser necesarias para la programación (a menos que esté programando la capacidad matemática avanzada), el proceso de pensamiento de programación y matemática es muy similar. Comienzas con una base de cosas conocidas (axiomas, teorías probadas previamente) e intentas llegar a un lugar nuevo. No puede saltear pasos. Si omite los pasos, entonces debe rellenar los espacios en blanco. Es un proceso de pensamiento crítico que hace que los dos sean increíblemente similares.

Además, los matemáticos y los programadores piensan críticamente en abstracto. Las cosas del mundo real están representadas por objetos y variables. La capacidad de traducir de concreto a abstracto también vincula los dos campos.

Es muy probable que si eres bueno en uno, probablemente serás bueno en el otro.


Si encuentra el tema lo suficientemente fascinante como para publicarlo, simplemente continúe y comience a aprender. El resto vendrá de forma natural.


Supongo que seré la primera persona en decir que necesitas matemática. Como otros han dicho, las matemáticas no son tan importantes para ciertos aspectos del desarrollo, pero los fundamentos del pensamiento crítico y el análisis estructurado son muy importantes.

Más aún, las matemáticas son importantes para comprender muchos de los aspectos fundamentales relacionados con los programadores, las optimizaciones, la clasificación, la administración de protocolos y otros aspectos de las computadoras. Aunque las matemáticas involucradas desde un nivel de cálculo no son complejas (es principalmente álgebra de la escuela secundaria) las teorías y aplicaciones pueden ser bastante complejas ya que una sólida comprensión de las matemáticas a través del cálculo será de gran beneficio.

¿Puedes vivir sin eso, absolutamente, y no deberías dejar que un conocimiento menos profundo de las matemáticas te frene, pero si tuvieras la oportunidad, o la inclinación, estudiaría tantas matemáticas como pudieras, cálculo, teoría numérica, lineal álgebra, combinatoria, aplicaciones prácticas, todo tiene aplicaciones prácticas y teóricas en una amplia gama de ciencias de la computación.

He conocido personas que tuvieron mucho éxito en ambos lados de la valla (aquellos sin un fuerte enfoque en matemáticas, y aquellos que fueron a la escuela para física o matemáticas), pero en ambos grupos disfrutaron de problemas numéricos y aprendieron sobre algoritmos y teoría matemática .


Tengo un diploma en matemáticas, pero no puedo recordar haberlo hecho una sola vez en mi carrera. Fue útil en términos de entrenar mi mente para el pensamiento lógico, pero no he escrito ningún código usando dinámica de fluidos, teoría cuántica o cadenas de Markov. (Sospecho que el último es el que más probabilidades tiene de aparecer).

La mayoría de los desarrolladores de líneas de negocios no necesitarán matemáticas avanzadas la mayor parte del tiempo. A veces, saber que la trigonometría puede ayudar, y ciertamente ser capaz de entender suficientes matemáticas para implementar algoritmos descritos matemáticamente puede ser importante, ¿pero más allá de eso? Nah.

No olvide que la mayoría de los programadores no están avanzando en la ciencia de la computación, están creando aplicaciones. No necesito saber ingeniería avanzada para conducir un automóvil moderno, a pesar de que ese automóvil casi con seguridad ha sido mejorado a través de ingeniería avanzada.


Yo diría que tener matemática lógica avanzada (discreta) realmente puede ayudar. Eso junto con la teoría de conjuntos. Cuando se trata de programas informáticos comunes, estas disciplinas pueden ayudar mucho. Sin embargo, muchas de las otras matemáticas que tomé en la universidad fueron cálculo, que hasta donde puedo ver, tuvo un uso muy limitado. Dado que el 90% (o algo así) de la programación está haciendo aplicaciones comerciales con matemática muy simple, yo diría que, en general, puede salir adelante con muy poco conocimiento matemático. Sin embargo, una buena comprensión del álgebra booleana, la lógica, las matemáticas discretas y la teoría de conjuntos puede realmente elevarlo al siguiente nivel.


informática! = programación

De acuerdo, en serio, conozco buenos y malos programadores que eran estudiantes de inglés y de psicología y algunos que eran especialistas en informática. Algunos tipos muy famosos que admiro como desarrolladores no tenían experiencia en CS. Larry Wall (Perl), por ejemplo, era lingüista. Por otro lado, es útil saber algo sobre el dominio en el que está trabajando porque entonces al menos puede ver si sus datos tienen sentido y ayudar a sus clientes / usuarios a obtener lo que realmente desean. Y sí, está el problema de la complejidad computacional y las estructuras de datos eficientes y la corrección del programa. Eso es algo que aprendes en informática y que es útil saber en casi cualquier dominio, pero no es necesario ni suficiente.