¿Es cierto que las personas que son buenas en matemáticas son mejores programadores de software?

Ruego diferir de las otras respuestas hasta ahora.

Mi respuesta es no.

Hay una correlación, pero no es del todo obvia.

En primer lugar, la mayoría de los ingenieros de software realmente buenos tienen un conocimiento o comprensión muy superficial de las matemáticas. La mayoría de ellos admitiría fácilmente que no son buenos en matemáticas, y el resto probablemente no sean tan buenos como piensan. Eso no les impide ser brillantes ingenieros de software.

En segundo lugar, la gran mayoría de los matemáticos o personas que son realmente buenas en matemáticas simplemente no están hechos del tipo de cosas que hacen a un buen ingeniero de software. En su mayor parte, su pensamiento no es lo suficientemente pragmático.

Cuando contrato, busco muchas cosas en un buen ingeniero de software. Una sólida formación en matemáticas no es una de ellas. De hecho, si el antecedente de un candidato es principalmente en matemáticas, esto sonaría para mí.

Hay una excepción

Si la persona tiene una sólida formación matemática Y ha participado y tenido un buen desempeño en reconocidas competencias internacionales de informática, como la Olimpiada Internacional de Informática o las competencias de informática de ACM, esto me indicaría que saben cómo aplicar su conocimiento del concepto matemático abstracto. y herramientas con el fin de derivar algoritmos y programar computadoras para resolver problemas complejos de datos. Estos son raros, pero son de oro puro.

Con respecto a su pregunta de seguimiento: nuevamente mi respuesta es no . No necesita ser bueno en matemáticas para convertirse en un muy buen ingeniero de software. Sin embargo, si eres un buen ingeniero de software, aprender más matemáticas solo te hará mejor.

Soy doctorado en matemáticas y diría que es NO, al menos la mayoría de las veces. Las matemáticas cubren muchas formas diferentes de pensamiento abstracto y para las masas, se trata principalmente de cálculo más algunas cosas de matriz o quizás matemáticas discretas.

También soy programador en no muy pocos idiomas y creo que el culpable de que gran parte de la educación general de pregrado en la forma matemática de pensar no sea tan relevante (peor aún si vas a la escuela de posgrado), el problema es que se ramifica (si, de lo contrario, el caso) y la encapsulación abstracta no se traducen bien en matemáticas piensan y hablan, especialmente las matemáticas continuas.

En mi humilde opinión, escribir un programa pragmático y robusto casi siempre requiere ramificar y verificar cada escenario posible que pueda crear sorpresas. En casos no tan frecuentes, ve una forma de refactorizar y reinventar la estructura para que sea más simple y elegante. Aquí hay oro puro, pero la estructura principal sigue siendo barras de hormigón y acero.

Ser demasiado ideal como muchos matemáticos golpea al adversario de la programación productiva: la optimización prematura es la raíz de todos los males: Knuth.

Después de haber enseñado programación de computadoras a cientos de niños de secundaria en los últimos siete años, puedo decirles si he visto o no una correlación entre la habilidad matemática y la programación de computadoras. En mi experiencia, una fuerte habilidad matemática casi siempre se correlaciona con alguien que puede convertirse en un buen programador. Estos niños tienen el pensamiento lógico inherente que se presta a la programación.

Pero no es tan simple como ‘buenas matemáticas = buena programación’

Porque hay más en la programación que solo lógica pura, algo que creo que se refleja en el hecho de que el programa del Bachillerato Internacional está reclasificando la programación en el componente de “ciencias experimentales”. Y esta cualidad, el deseo de experimentar no es necesariamente un rasgo que tienen los grandes estudiantes de matemáticas, pero es algo que realmente ayuda a los estudiantes de CS. Además, me ha sorprendido lo bien que algunos estudiantes con poco éxito en matemáticas han tenido éxito en la programación. Algunos de mis antiguos alumnos que no eran tan buenos en matemáticas (sin duda eran buenos, pero no los mejores en la escuela), han trabajado en algunas empresas de tecnología de alto perfil en Silicon Valley, justo después de la universidad.

Entonces, al final, mi respuesta es ‘no, las personas que son buenas en matemáticas no son necesariamente mejores programadores de software’, pero es inevitable un cierto nivel de pensamiento lógico / matemático para hacer una codificación seria.

Aquí hay una analogía en los deportes: la persona más alta del mundo no es el mejor jugador de baloncesto, a pesar de que los grandes jugadores de baloncesto suelen ser más altos que las personas normales. Entonces, el punto es: aunque las matemáticas pueden ayudar mucho a los programadores, uno no necesita ser experto en matemáticas para sobresalir en la programación. Solo asegúrate de que tus habilidades de codificación brillen.

El desarrollo de software es solo un vehículo en la mayoría de los casos, la naturaleza de la solución que desarrollan es más importante.

Programador que juega con reconocimiento de patrones, sensores, instrumentación, etc., etc.

para ellos el dominio de las matemáticas ayuda mucho. 🙂

Los geeks matemáticos en su mayoría eran desarrolladores de juegos muy malos, sin buenos diseñadores. 🙂

Creo que depende de lo que hagas como ingeniero de software. Por ejemplo, no creo que necesites mucho fondo matemático para diseñar Chrome. Pero necesita una buena comprensión de cómo funcionan las redes, cómo funcionan las computadoras, cómo las diferentes partes del software actúan juntas, etc.

Pero algunas aplicaciones están más orientadas a las matemáticas. Por ejemplo, en gráficos por computadora, si desea crear agua que parezca agua corriente real, necesitará elementos de cálculo para comprender e implementar los métodos que encontrará en artículos científicos.

Como conclusión, diré que una de las cosas cruciales es saber suficiente matemática para codificar dentro de la complejidad correcta. Y si tiene un algoritmo complejo, para poder demostrar que funcionan todo el tiempo. En realidad, eso no es matemática, pero está estrechamente relacionado con la forma en que usas tu cerebro para hacer estas pruebas.

Si.

La mayoría, si no todos, los conceptos utilizados en la ingeniería de software se encuentran de alguna forma en matemáticas.

La refactorización, por ejemplo, tiene su análogo de una prueba particularmente elegante, a pesar de que la refactorización no es un concepto matemático que simplemente resulta útil en CS como la recursividad.

En pocas palabras, NO .

Si bien las matemáticas son un factor clave en muchas secciones de la ingeniería de software, y a menudo los mejores ingenieros de software tienden a ser buenos / brillantes matemáticos, las matemáticas no significan que usted sea bueno para resolver problemas; las matemáticas solo interfieren con dichos campos en algunos escenarios.

Por ejemplo, tengo un compañero de clase que es brillante en programación, pero que solo posee las habilidades de la persona promedio cuando se trata de matemáticas. Sin embargo, al resolver problemas lógicos y desafíos relevantes (es decir, el desafío FizzBuzz), supera a casi todos en la clase.

El punto es que, aunque es útil ser bueno en matemáticas, para ayudarlo a usar la lógica mejor o no, no tiene que ser bueno en matemáticas para ser un ingeniero de software brillante.

No necesariamente. Algunos juegos matemáticos tienen formas de pensar muy geométricas que no se traducen muy bien en construcciones algorítmicas de forma lineal. Euclides podría no haber sido un buen programador si hubieran tenido máquinas programables en Alejandría en los viejos tiempos. Por otro lado, Arquímedes habría sido un programador maravilloso. Lea “The Sand Reckoner” de Arquímedes de Siracusa.

Sí y no … Conozco a muchas personas muy buenas en matemáticas, algunas muy malas (como yo … Fallé el cálculo previo 4 veces seguidas a pesar de comprender la tesis doctoral de mi padre en topología)

Hay una parte de las matemáticas llamada álgebra booleana y lógica, que tiene muchas aplicaciones en la programación de computadoras. Entonces, para responder a su pregunta, sí, si desea ser un buen ingeniero de software, debe ser bueno en matemáticas.

Puede que no se requieran matemáticas en su conjunto. Pero seguramente sus habilidades de razonamiento lógico deben ser altas.