¿Los ingenieros de software necesitan saber matemáticas?

No, los ingenieros de software no necesitan matemática, como señalan muchas respuestas aquí.

Pero a partir de los detalles de la pregunta, tengo la sensación de que la pregunta realmente quiere preguntar “¿hay algún puesto de ingeniería de software en el que necesites saber matemáticas?” La respuesta a eso es definitivamente sí.

Muchas posiciones requieren hacer cálculos numéricos. En estos días, el aprendizaje automático es muy importante; definitivamente necesitará saber matemáticas: álgebra lineal, cálculo, descenso de gradiente.

Los videojuegos y otras aplicaciones de gráficos por computadora requieren matemáticas para calcular las posiciones y los valores de color y demás.

Si trabajas en compiladores o teoría PL, querrás saber algo de lógica matemática.

Si trabaja en bibliotecas criptográficas, querrá conocer la teoría de números o tal vez cosas más avanzadas como curvas elípticas. (Si solo está usando bibliotecas criptográficas, no necesitará saber nada de eso).

No sé si usted cuenta “algoritmos / estructuras de datos” como matemáticas, pero ciertamente muchas aplicaciones requieren conocimiento de ellas. La informática de alto rendimiento y los sistemas distribuidos amplios tendrán muchas oportunidades para que un algoritmo brille.

En mis últimos 3 años como ingeniero de software, donde principalmente realicé “desarrollo web genérico” casi no utilicé ninguna matemática. Pero hice cosas como:

  • cálculos de fermi para averiguar cuántos recursos tomarían las grandes operaciones de migración de bases de datos
  • algo de álgebra básica para poder escribir CSS para posicionar las cosas de la manera que quería
  • determinar la probabilidad de colisiones entre identificaciones generadas aleatoriamente
  • construir algoritmos dibujando diagramas con flechas de una manera que parezca vagamente math

Por lo tanto, creo que si lo busca, puede encontrar usos para las matemáticas, incluso entre los trabajos de ingeniería de software más “sencillos”. Puede sobrevivir sin él, pero aún puede ayudar de alguna manera.

Eso depende del tipo de ingeniero de software que quieras ser. Como ingeniero de software con una sólida formación matemática, diría lo siguiente:

  • Si desea trabajar en desarrollo web / nube o la mayoría de los software de aplicación, probablemente no. Necesitas un sentido de lógica y racionalidad para poder armar las cosas correctamente, pero eso puede existir fácilmente independientemente de la capacidad de resolver ecuaciones. Poder pensar un problema racionalmente y publicar un buen código para resolverlo es más importante, y con frecuencia los problemas que enfrenta no dependen de la capacidad de resolver ecuaciones.
  • Si quieres hacer programación de gráficos o ciencia de datos: . Ambos requieren una comprensión bastante buena del álgebra lineal, y al menos en la programación de gráficos puede tener un código que compila pero también es matemáticamente incorrecto, y la capacidad de regresar y trabajar en las matemáticas que la máquina está haciendo a menudo es vital. Trabajando en mi motor de gráficos de hobby, a veces he compilado cosas, pero salgo loco cuando corren, y en ese momento agradezco a mis estrellas de la suerte que la mayor parte de mi título involucraba asistir a algunas clases de matemáticas bastante hardcore.

Sin rodeos, no.

Algo más diplomático: la mayoría de la ingeniería de software del mundo real no implica muchas matemáticas difíciles. Un poco de álgebra booleana, un poco de matemática discreta, tal vez algo de lógica. Tampoco hay una gran cantidad de conocimientos teóricos de informática.

Hay un uso para más matemática: me vienen a la mente cosas como motores de juegos en 3D, modelado cuantitativo, reconocimiento de voz, procesamiento de escaneos médicos, pero necesitaría encontrar las oportunidades adecuadas para eso.

Gracias por preguntar 🙂 Amartya Das

Desde un punto de vista amplio y práctico, las matemáticas son desarrollo de software . Los problemas matemáticos se resuelven exactamente como usted tiene que resolver los problemas de software en el mundo real, y existen paralelos directos entre las matemáticas y la programación. Vamos a repasarlos:

  • El análisis: los problemas de palabras (tanto como los odias) son casi idénticos a lo que haces en la vida cotidiana. En el desarrollo de software, escuchas a alguien o tienes una idea. Luego, debes poder dividir ese párrafo en partes más pequeñas que puedas abordar y luego poder hacer preguntas perspicaces y la habilidad que viene con la práctica. Tendencias? ¿Qué tipo de tendencias? ¿Lo que es importante? ¿Debo comenzar a escribir un reproductor de música para recopilar datos? ¿Debo comenzar a trabajar en el analizador de tendencias y simplemente simular? ¿Qué no es importante o irrelevante? Analizar.
  • Las fórmulas: las fórmulas son el estante de la espada de las matemáticas, al igual que la tecnología es el estante de la espada del desarrollo de software. ¿Usas la ecuación cuadrática? y = mx + b? Las diferentes combinaciones son más adecuadas para diferentes problemas, y conocer las diferencias, nuevamente, solo viene con la práctica. Las matemáticas le ayudan a comprender que la resolución de problemas consiste en pararse sobre los hombros de gigantes y usar las mejores herramientas para el trabajo, incluso si dos herramientas diferentes técnicamente “funcionan”.
  • La solución: Llegar a una solución en matemática le brinda la misma gran sensación que enviar un producto en el desarrollo de software. Si sale con una respuesta incorrecta, o algo que los usuarios odian o no pueden usar bien porque están realmente confundidos al intentar iniciar sesión, entonces han ganado algo aún más valioso.

En particular, el desarrollo de software implica mucho álgebra booleana. También llamada Matemática discreta, es una de mis clases favoritas en la universidad, y se la recomendaría a cualquiera , incluso si realmente no eres un fanático de los números.

La programación más típica no involucra matemáticas muy avanzadas. Un poco de suma y resta aquí y allá, tal vez la aritmética de módulo ocasional … Hay, por supuesto, excepciones: el trazado de rayos y otras cosas de gráficos de computadora de núcleo duro necesitan matemáticas más complejas.

Sin embargo, la programación y las matemáticas requieren una mentalidad analítica similar. El tipo de persona que sería un buen programador es poco probable que sea malo en matemáticas.

Eso es un cualitativo. A pesar de lo que sugerirían muchas respuestas, necesita algunas matemáticas. Hay muchos adultos adultos que no pudieron decirle las respuestas a preguntas simples como ‘ ¿7 divide 52? ‘en menos de 15 segundos sin una calculadora o papel de borrador. Yo personalmente conozco al menos una docena.

Si no es capaz de las matemáticas básicas, con certeza se reflejará en su capacidad para diseñar, escalar y depurar un sistema. ¿Cuántas matemáticas necesitas? Eso depende de lo bueno que quieras ser, pero hay rendimientos decrecientes que alcanzan la utilidad asintótica para el programador / ingeniero de software promedio .

No. Puedes tener una carrera perfectamente buena como desarrollador de software sin usar nada más que álgebra de secundaria, e incluso eso no es necesario todo el tiempo.
Algunas especialidades dentro del desarrollo de software son pesadas en matemáticas: CAD / CAM, gráficos, redes neuronales. Pero la mayoría no lo son.

Ver: la respuesta de Mike Anderson a ¿Es el cálculo una clase obligatoria requerida para la ingeniería de software?

La historia es similar para álgebra lineal, geometría, trigonometría, análisis numérico, probabilidad, estadística, teoría de grafos y varios temas matemáticos discretos.

Como desarrollador comercial general, no.

Pero se requiere:

  • Para ciertos dominios, como CAD, juegos, simulaciones de ingeniería, aprendizaje automático
  • Por grados en informática, donde te acercas al lado teórico del análisis de la informática

No, tu no.

Para ser un buen ingeniero de software, debes ser bueno en el pensamiento lógico y sistémico. Debe poder identificar patrones en contextos altamente abstractos.

Las matemáticas comparten habilidades fundamentales similares, por lo que las personas que son buenos programadores también pueden ser buenos en matemáticas, pero la superposición en el conocimiento específico del dominio constituye un pequeño subconjunto de cualquier campo.

Más allá de las matemáticas, debe poseer habilidades que marquen la diferencia cuando se trata de salarios de ingenieros de software o incluso para comenzar a trabajar. Estos incluyen lo siguiente:

Pitón
C
UNIX
Linux
C ++
Oráculo
Java
JavaScript
SQL
HTML
Microsoft SQL Server
C#
.RED
El sitio oficial de Microsoft ASP.NET
PHP

Fuente: Ingeniero de Software Salario

Otros factores importantes cuando se trata de la diferencia salarial y la empleabilidad incluyen el género (lamentablemente), la ubicación (las principales ciudades obviamente pagan más), la experiencia (principiante, a mitad de carrera y las experimentadas varían en pago) y la educación (particularmente su GPA y el escuela de donde te graduaste).

  1. No mucho si eres un desarrollador front-end
  2. Un poco de conocimiento y eficiencia si eres un desarrollador back-end. Como hay bibliotecas / API para la mayoría de los algoritmos complejos y cálculos matemáticos, no se requiere mucho conocimiento de matemáticas. Es posible que necesite una alta eficiencia en matemáticas si está trabajando con una compañía de alto nivel donde escriben sus propios algoritmos complejos en lugar de depender de bibliotecas públicas ya construidas.
  3. Se requiere alta eficiencia si está trabajando como Data Scientist.

Soy terrible en matemáticas básicas y no tengo problemas para programar. La razón principal por la cual las matemáticas se enumeran como una ventaja para la codificación es porque las habilidades de pensamiento lógico utilizadas en la codificación son el mismo tipo de habilidades utilizadas en los conceptos matemáticos. Básicamente, debe ser capaz de pensar lógicamente de manera computacional y las personas con fuertes habilidades matemáticas generalmente tienen más facilidad para procesar las cosas de manera analítica y lógica.

Como dijo Toby Inkster, no necesitas saber matemáticas para ser ingeniero de software. Pero, si conoce las matemáticas, seguramente puede convertirse en un mejor ingeniero de software.

Puede ser útil, pero rara vez se requiere.

La habilidad más útil podría ser una comprensión profunda de los cálculos estadísticos, pero a menudo estos son parte de las bibliotecas de software existentes.

El otro tipo de habilidades de “matemáticas”, que podrían ser útiles, es la familiaridad con los principios de impuestos y contabilidad.

Por lo general, cualquier cálculo matemático complejo se puede buscar en línea, y las fórmulas apropiadas se pueden aplicar a cualquier procesamiento.

No es necesariamente necesario. Pero ayudará a comprender el algoritmo. También será útil para crear aplicaciones como una calculadora o cualquier aplicación en la que necesites calcular algo como monedas en el juego.

¡No, no, no, no, no y NO!

He escrito más de 200,000 líneas de código en los últimos 5 años y en casi todo no hay nada más complicado que: a = X * Y o a = X / Y. Cosas que aprendiste en la secundaria o antes.

Debe ser bueno para analizar problemas y dividirlos en unidades lo suficientemente pequeñas como para que sus herramientas y experiencia existentes puedan manejarlos.

Aplicado + DISCRETO.

No. La única vez que necesitaría matemáticas para programar sería si estuviera escribiendo un programa específicamente para hacer matemáticas. De lo contrario, las matemáticas son completamente innecesarias.

Sí, las matemáticas se usan con mucha frecuencia durante la programación. Si tiene una buena calificación en matemáticas, entonces la ingeniería de software es el camino a seguir