¿Debería poder codificar para obtener un título en Ingeniería Aeroespacial?

Todos mis trabajos de tesis de posgrado (grados de maestría e ingeniería) incluyeron la redacción de un código de elementos finitos (FE) para predecir la respuesta al impacto de las estructuras del motor y otras estructuras a fragmentos de segmentos grandes de las etapas de la turbina de gas.

El código FE es una gran deformación de la respuesta elástica-plástica de las estructuras metálicas y lo modifiqué para tener en cuenta las estructuras compuestas para soportar Boeing.

Escribí y apoyo el código en FORTRAN

De hecho, la mayoría de los códigos de resolución numéricos grandes (especialmente los códigos de elementos finitos y los códigos CFD) están escritos en FORTRAN. Traducción de fórmulas. El nombre lo dice todo y está optimizado para ejecutarse rápidamente, cuando una ejecución estándar puede llevar minutos, si no horas o días.

Los científicos informáticos y algunos con experiencia en ingeniería escriben las interfaces gráficas de usuario para esos códigos en Visual BASIC o Java o C ++.

Donde actualmente trabajo, tener la capacidad de codificar en Python, Java y MatLab es esencial.

Los aeroingenieros que trabajan con sistemas de guía, navegación y control pueden trabajar en otros idiomas.

Tuve un curso de un término en FORTRAN. Es simplemente un medio para codificar todas las fórmulas que intenta resolver en una metodología lógica y fácil de seguir, utilizando bibliotecas de solución numérica que se han perfeccionado a lo largo de los años.

Estoy trabajando en un proyecto actual donde los ingenieros más jóvenes que solo conocen C o C ++ se pierden cuando se trata de solucionadores numéricos. Sus códigos tardan más en ejecutarse si funcionan.

Todo lo mejor.

si

Me gradué en 1997 con mis licenciaturas. Había aprendido a Pascal. No muy útil

Mi primer trabajo, todo se hizo a mano en Excel. Aprendí VBA y MS Access (herramienta DB). En un par de meses estaba haciendo en 8 horas lo que antes tomaba 45. Y lo hacía con mayor precisión porque no estaba tratando de copiar y pegar en varias hojas de cálculo.

Luego, en mis siguientes 2 trabajos, aprendí nuevos idiomas para los proyectos según fuera necesario. Después de eso, pasé la mayor parte de mi tiempo en Matlab.

En mis últimas 2 posiciones estaba rodeado de personas que podían codificar. Pero mis compañeros nunca se esforzaron por hacerlo tan bien. Eran adecuados en eso. Algunos fueron más rápidos que otros, ninguno fue tan eficiente.

Siempre tomé la posición de que debería programar su código en el nivel útil más pequeño. Por ejemplo, tenía una función a la que le pasé un directorio y un patrón de nombre de archivo y buscó en todos los directorios debajo del que le pasé los archivos que coinciden con ese patrón. (Python tiene la función glob que es muy similar). El resultado era una lista de archivos con todos los datos que normalmente necesitaba sobre esos archivos en una buena lista ordenada.

La mayoría de las veces, mis compañeros simplemente codificaron a mano sus archivos de entrada en su script de inicio. Usé mi función de búsqueda. Entonces, cuando obtuvimos nuevos datos de prueba, tuvieron que actualizar su script. Acabo de ejecutar el mío y la función de búsqueda agregó automáticamente el nuevo archivo a la lista de archivos para procesar. De acuerdo, esto solo ahorró un minuto o dos, pero ese script ahora se puede aprovechar en partes de código. El efecto es un ahorro de tiempo compuesto.

Cualquiera de mis compañeros podría haber escrito ese código de búsqueda. Cualquiera de ellos podría haber usado el mío. Muy pocos lo hicieron. Y 6 meses después de ambos puestos, tenía una biblioteca de estas pequeñas funciones que podrían encadenarse para hacer cosas complejas sin mí. Eso significaba que normalmente terminaba mi trabajo mucho más rápido que mis compañeros. El trabajo fue consistente porque la computadora estaba haciendo todas las tareas mundanas que solía pasar por alto o hacer mal cuando estaba cansado.

Significaba que mi computadora podía ejecutar simulaciones, análisis, etc., mientras estaba en reuniones o en casa dormido.

Al final de 5 años en mi última posición, tenía simulaciones de controles de extremo a extremo que se ejecutaban sin mí. El código tomó mis nuevos parámetros, creó un controlador a partir de ellos, ejecutó un análisis lineal, luego ejecutó un análisis de dominio de tiempo, luego generó una presentación de PowerPoint con todos los datos relevantes. Lo que solía tardar unos días en ejecutarse y documentarse ahora tomó menos de 30 minutos. Todo estaba bien formateado, no los gráficos oculares que hace la mayoría de la gente. Las diapositivas de PowerPoint solo necesitaban que las revisara en busca de errores, lugares donde mi código podría haber fallado y mi comentario sobre lo que significaban los resultados de rendimiento. Aproximadamente 20 horas de trabajo se habían convertido en 30 minutos para mí y me había librado de casi todas las partes mundanas de mi trabajo.

El punto es este. 1) Incluso si no es necesario. Aprende a programar. 2) El idioma no es tan importante como aprender a programar bien. Cuando lo haces correctamente, las ganancias se agravan. Produces trabajos de mayor calidad en mucho menos tiempo.

Si está buscando consejos sobre los mejores idiomas para aprender, comenzaría con Python y Matlab. Pase mucho tiempo en StackOverflow para Python y preste atención a lo que las personas llaman código Pythonic. Pase mucho tiempo en Mathworks Central y StackOverflow aprendiendo cómo escribir un buen código de Matlab. Presta especial atención al Álgebra Lineal en tu trabajo del curso, ya que este es el corazón de la escritura de código eficiente (muy rápido) en Matlab y la biblioteca Numpy en Python. Evitar bucles a favor de los productos de puntos y la multiplicación de matrices es la forma más fácil de hacer que su código se ejecute 100 veces más rápido.

Supongo que le resultará difícil graduarse sin poder escribir software en algún idioma, por lo que probablemente sea un punto discutible. En cuanto a trabajar en el sector aeroespacial, los diferentes puestos tendrán requisitos diferentes.

He estado fuera del sector aeroespacial durante varios años y, sin duda, las cosas han cambiado. Los grupos que realmente escribieron software, ya sea software de comando y control en tierra, vuelo o procesamiento de datos, eran competentes en C ++. Pero eso no fue requerido por todos los ingenieros. El grupo de controles programado en MATLAB. Los grupos de diseño pueden haber usado PLM o I-DEAS, pero me eliminaron de ellos, así que realmente no lo sé. Siempre hubo algún software de fabricación propia que los ingenieros hicieron de forma paralela, pero que no se podía entregar como parte de un contrato y que generalmente estaba en C ++.

Encontrarás que cada compañía tiene sus propias herramientas favoritas y terminarás necesitando aprenderlas si estás en una posición donde se requiere programación. Incluso dentro de una compañía, no es inusual encontrar que diferentes programas pueden usar diferentes programas para la misma función porque uno es un programa nuevo y avanza mientras que el otro está en modo de mantenimiento y atascado en el pasado. No saber dónde trabajará o qué idioma estará de moda allí cuando finalmente llegue hace que apuntar a un idioma en particular sea un juego de adivinanzas.

Mi mejor consejo es que aprendas lo que tu escuela requiera lo mejor que puedas. Incluso si su próxima compañía no usa este software, habrá adquirido competencia en los conceptos detrás de él y la transición a un nuevo software no será demasiado difícil. Un lenguaje general, Python, C ++, lo que sea, siempre es útil, por lo que agregar uno a su caja de herramientas nunca es una mala idea.

Si deberías. La capacidad de codificar y realizar simulaciones es muy importante. Sorprendentemente, FORTRAN todavía parece ir fuerte en las simulaciones relacionadas con la dinámica de fluidos debido al soporte extendido para las bibliotecas numéricas.

Estudié tres años de Ingeniería Aeroespacial antes de transferirme.

Necesitábamos poder codificar incluso en 1989, de hecho, era un as en FORTRAN.

¿Qué fue esto útil (o requerido) para: análisis de elementos finitos en aeroestructuras, modelado de matrices complejas, dinámica de fluidos computacional, también debe aprender rápidamente los lenguajes para CAD. Honestamente, casi todos mis compañeros de clase podrían ser etiquetados como genios de alguna manera … la codificación es una cosa que se espera que ocurra de forma natural y rápida (junto con la física, la geometría analítica y probablemente cualquier otra materia que se te ocurra).

Si. Casi no hay trabajo técnico para el que no te beneficiaría ser un excelente programador.

Dependiendo de dónde termines dentro del campo, la programación integrada puede ser importante, entonces querrás C. De lo contrario, votaría por Python / SciPy primero, seguido por Matlab, probablemente ambos, porque algunas disciplinas usan mucho matlab mientras que otros probablemente favorecerán a Python. El análisis y la simulación de datos son partes clave del trabajo.

Claro, hay trabajos en codificación para compañías aeroespaciales. Mi hijo, un estudiante de primer año en el MIT, fue contratado por Boeing durante el verano para codificar. Hizo $ 25k para el verano. Lo que estaban haciendo era buscar un futuro empleado.

Lo que esto realmente significa es que necesitan codificadores además de ciencia de materiales, ingenieros mecánicos e ingenieros aeroespaciales.