¿Qué tan significativo es el cálculo y las matemáticas cuando se convierte en ingeniero de software?

Depende. ¿Se le dirá qué programar o va a saber mucho sobre el área de contenido?

Los programadores siempre se han quejado de que varias áreas de las matemáticas nunca se aplican en su trabajo (y, por lo tanto, no hay razón para aprenderlo). Esto es principalmente cierto, pero a veces es necesario conocer dichos conceptos para hacer el trabajo. Por ejemplo, el conocimiento de espacios vectoriales (del álgebra lineal) puede ser de gran ayuda al hacer motores de renderizado 3D (para juegos, por ejemplo).

Lo mismo ocurre con el cálculo. Hay algunas áreas donde se necesita cálculo, más específicamente las ecuaciones diferenciales.

Déjame ponerte un ejemplo simple,

Cada compañía de automóviles tiene que probar sus modelos para ver cómo se comporta en situaciones de choque. Lo hacen colocando una multitud de sensores en todo el automóvil y colocándolo. La información recibida de esos sensores necesita ser interpretada y analizada.

Si alguna vez escribe un software que haga esto, entonces estará lidiando mucho con ecuaciones diferenciales. Los ángulos en los que cada parte del automóvil se dobla desde el choque se pasan a través de estas ecuaciones para obtener los valores de las fuerzas involucradas. Los valores de desaceleración también deben calcularse utilizando tales ecuaciones.

Esta es solo una de las aplicaciones de cálculo en la programación de computadoras.

Los usos principales de las disciplinas matemáticas “continuas” superiores como el cálculo y las ecuaciones diferenciales en la ingeniería de software están en el desarrollo de algoritmos para modelar fenómenos del mundo real. Las dos áreas principales están en la simulación de gráficos y física, lo que significa que una matemática más alta es esencial para programar motores de videojuegos modernos, así como para desarrollar software para la industria del cine. La rotación y texturización de objetos en 3D hace uso de una combinación de trigonometría y matemática básica de la matriz, mientras que incluso los algoritmos de iluminación y sombreado más simples utilizan el cálculo vectorial.

Sin embargo, he sido desarrollador de software durante 10 años y no he necesitado nada de eso.

De mayor utilidad para el campo en general, incluido el considerable contingente “everyman” de los programadores de lógica de negocios, hay varias disciplinas de “matemáticas discretas”. Estos incluyen aritmética básica, álgebra y estadística, pero también aritmética modular, combinatoria y probabilidad, teoría de números, teoría de conjuntos, teoría de grafos, así como “cálculo discreto”, que es una rama del cálculo continuo destinado a llegar a las mismas respuestas por métodos. más adecuado para computación discreta. Estas áreas de matemáticas son notablemente útiles para la mayoría de los usuarios finales de programas informáticos en áreas que van desde contabilidad y finanzas hasta, y también permiten a los programadores identificar formas de aumentar la eficiencia de las mismas. Estas disciplinas son también las formas en que probablemente implementaría métodos para resolver de manera eficiente y aproximadamente las ecuaciones continuas necesarias para las simulaciones físicas; cuando su avatar digital se lanza desde un cañón, una función continua puede determinar dónde aterrizará o qué tan alto volará, pero son los cálculos discretos los que se utilizan para modelar su vuelo por el aire en tiempo real, cambiando su posición entre cuadros de la pantalla.

Obtener un buen trabajo de ingeniería de software es más fácil y más seguro cuando tienes un título en informática, que proviene de un departamento de ingeniería, que requiere algo de matemática.

Mi universidad requirió tres semestres de cálculo, matemáticas discretas y tu elección de álgebra lineal o ecuaciones diferenciales.

Cuando no necesita una visa, puede sustituir de 5 a 7 años de experiencia en trabajos que generalmente requieren un título en ciencias de la computación, aunque eso crea un problema de gallina y huevo que no puede garantizar que resolverá.

La mejor opción es eliminar los primeros dos semestres de cálculo como colocación avanzada en la escuela secundaria, donde tienes una clase de 30 con un maestro muy experimentado que quiere estar allí en lugar de un estudiante de primer año de ingeniería en una clase de 300 impartido por un profesor asociado que preferiría enseñar a estudiantes de posgrado.

Ni una pizca.

Sí, * puede * ser útil. Pero lo usará tan raramente que alguien con las mejores habilidades matemáticas tendrá una ventaja insignificante sobre alguien sin ninguna.

Probablemente debería tener una comprensión básica de cómo funcionan los números, en diferentes bases, y una cosa llamada “notación O”: básicamente, cómo escalan los diferentes algoritmos. Debe comprender que algo que es miles de veces más lento no solo es cuatro veces más lento, a pesar de que tiene cuatro veces más dígitos.

Es decir, debes entender los BÁSICOS absolutos.

Sin embargo, nada más que aritmética básica, no, no es necesario. Sí, esto puede ser útil cuando dibuja gráficos, maneja ondas sonoras, manipula objetos 3D, escribe filtros gráficos, análisis de estadísticas, etc. La ecuación de una línea recta es útil cuando se mapea desde coordenadas isométricas y viceversa, por ejemplo.

Incluso en esos casos, generalmente puede encontrar un algoritmo de complemento en la red que hace lo que necesita y escala bien. Si desea mostrar un intervalo de confianza del 95%, solo necesita poder buscar en Google cómo calcular eso. Si desea que sus mobs suelten el botín a diferentes velocidades, eso es solo una tabla de probabilidad, cuyas buenas implementaciones están a solo un Google de estar a su alcance.

Pero a menos que su trabajo se base en la manipulación de gráficos de bajo nivel, la salsa de matemáticas. No es la carne de tu trabajo, solo ayuda a que la carne baje un poco más fácilmente.

No, esa es una mala analogía, es peor que la salsa. Es … medicina.

Si tiene que usar matemáticas complejas, para cualquier parte de su programa que no sea estrictamente el núcleo fundamental de importancia crítica que es de lo que se trata su aplicación *, eso significa que no hay un sistema de alto nivel existente para hacer el Lo que estás haciendo, así que tienes que escribirlo desde cero. La mayoría de las veces, eso significa que te equivocaste en las fases de diseño o investigación. Ahora necesita tomar su medicina matemática para solucionarlo.

Como se dijo anteriormente, en este contexto específico, es completamente irrelevante.

Sin embargo, si busca educación formal para convertirse en un ingeniero de software (generalmente una licenciatura en ciencias de la computación o ingeniería), necesitará aprender algunas matemáticas.

Los estudiantes universitarios de ciencias de la computación generalmente toman solo un cálculo de variable única, así como algunos otros cursos de matemáticas que incluyen matemáticas discretas.

Los ingenieros informáticos, por otro lado, tienden a tomar 3 cursos de cálculo, hasta el cálculo de variables múltiples, así como otros cursos de matemáticas que incluyen matemáticas discretas (y posiblemente ecuaciones diferenciales, dependiendo de la escuela).

Si quieres escribir juegos, puede ser bastante relevante. Para que los objetos del juego se muevan correctamente, a menudo se necesita trigonometría (seno y coseno). Teorema de Pitágoras, por supuesto. Los fundamentos del cálculo también son muy útiles, no es que estarías haciendo mucho cálculo integral en las ecuaciones, más que estarías escribiendo código que haga un uso extensivo de las diferencias y las sumas.

Doy clases particulares a los niños en la codificación de la escuela secundaria, y en muchas ocasiones, cuando escribo juegos, he tenido el placer de decirles a los niños “ven – ¡es por eso que te enseñan todas esas matemáticas que parecen inútiles!”

Escribir software es como tocar música. Hay músicos que son completamente autodidactas, vivían en las calles, trabajaban en la calle para ganarse la vida. Luego están los que pasan años estudiando música e incluso viajaron por el mundo para encontrar su influencia musical. Ambos tipos son grandes músicos, porque a su audiencia solo le importa cómo suena la música para el oído.
Los ingenieros de software provienen de todas las disciplinas. Matemáticas es solo una de ellas. De hecho, para escribir un buen software, necesita una base matemática, pero la comprensión del álgebra de la escuela secundaria es suficiente para escribir aplicaciones web y móviles.
Cálculo, vectores, etc. no son directamente útiles. Sin embargo, si conoce los fundamentos de estos, podrá profundizar en por qué un lenguaje de programación ha sido diseñado de la manera en que está. El cálculo integral, por ejemplo, dice que si entiendes dx si algo, es decir, si puedes modelar el comportamiento de un espacio infinitamente pequeño en forma de una ecuación matemática, puedes integrarlo y definir el comportamiento en grande (quizás infinito) dominio. Si su mente está entrenada en este proceso de pensamiento, entonces, mientras crea una aplicación web, podrá dividir toda su aplicación en pequeñas secciones, examinar cada una de ellas cuidadosamente, aprender a vincularlas, etc.

Nota: solo soy un chico de nivel junior.

Nunca he usado las matemáticas en mi trabajo actual. Quiero decir que estoy seguro de que he hecho algunas cosas que son tan elementales que no me di cuenta que eran matemáticas, pero nunca he tenido que hacer nada como factorizar una ecuación o algo así. Solo necesita hacerlo si está creando aplicaciones basadas en fenómenos del mundo real como la gravedad, etc., o si está creando algo así como una aplicación de contabilidad. En ese momento, probablemente contrates a un matemático a tiempo completo de todos modos.

9 de cada 10 veces nunca necesitará matemáticas de alto nivel para programar. Realmente no veo dónde entraría el cálculo en el período de aplicaciones web. Las matemáticas más altas en general están reservadas para hacer modelos realistas.

No lo necesitas Tomé Calculus a través de Calc 3. Pero no lo necesito para codificar. Bastante en absoluto. Hace que la comprensión de algunos conceptos informáticos más avanzados sea más fácil y divertida, y definitivamente hay lugares para vincularlos y usarlos si lo desea, pero está lejos de ser algo que uso todos los días.

Haría una ligera excepción en el caso de las matemáticas discretas. Pero eso ya tiene tanta relación con la informática y la lógica que no me parece el resto de las matemáticas, solo lo considero como teoría de conjuntos / matemática científica. Si eres bueno en matemáticas discretas, probablemente te gustará programar.

Nunca he usado mucho software de producción matemática a lo largo de los años, pero ciertamente me beneficié de la disciplina de la resolución cuidadosa de problemas que el estudio de las matemáticas me inculcó.

No necesitas nada más que las matemáticas del quinto estándar, si es así. Usará aritmética bit a veces para optimizar la multiplicación por potencias de 2, etc., pero ese es probablemente su límite general cuando se trata de aplicaciones web.

En este escenario, “crear aplicaciones y aplicaciones web”, no tiene ninguna relevancia.

More Interesting

¿Cómo puedo obtener mi currículum preseleccionado por Google para el puesto de ingeniero de software? ¿Alguien puede contarme sobre los logros técnicos o cualquier otro detalle que Google busque en un currículum?

¿Los ingenieros de software en el oeste se preocupan por la seguridad laboral?

Como ingeniero de software, ¿no soy lo suficientemente bueno si no tengo conocimiento sobre algoritmos avanzados y estructuras de datos?

¿Cómo puede SDE de Microsoft IDC Hyderabad pasar a Redmond?

¿Merece la pena mudarse a Holanda desde Ucrania si soy ingeniero de software?

Siendo indio (ingeniero de software y viviendo en India a partir de ahora), ¿cómo puedo solicitar el equivalente canadiense de una tarjeta verde?

¿Cuáles son las desventajas de los ingenieros de software de citas?

¿Es Uber Bangalore / Hyderabad un buen lugar para cambiar por un SDE 2 en Amazon Bangalore?

Me colocaron en MNC como ingeniero de software pero quiero hacer más, aparte de esto. ¿Qué tengo que hacer?

Para ser un buen ingeniero de software, ¿son necesarias las lecciones universitarias?

¿En qué tipo de productos o proyectos trabajan los recién graduados que se unen a Google o Facebook para el puesto de ingeniero de software?

¿Cuál es la forma más rápida para que un estudiante de informática moleste a un programador / ingeniero de software que trabaja?

¿Cuáles son algunas recomendaciones para una entrevista de vuelo?

¿Los programadores y los ingenieros de software usan la recursividad? ¿Es más rápido en otros lenguajes de programación?

¿Qué desafíos interesantes existen para los ingenieros de software cuando se trata de Amazon EC2?