¿Qué tan útil es aprender Linux siendo ingeniero mecánico?

Linux es un sistema operativo para computadoras, muy parecido a muchos otros, pero mejor en algunos aspectos y peor en otros. ¿Tiene valor para un ingeniero mecánico? En gran parte No.

Veamos cuándo un conocimiento de Linux puede ser útil. Si tuviera que lidiar con software y aplicaciones escritos para Linux o que fueran de código abierto, un conocimiento de Linux sería útil. Atrás quedaron los días en que su valía como ingeniero mecánico solo estaba determinada por su conocimiento de la mecánica, los materiales, el diseño, los procesos de fabricación y los fundamentos básicos de la ingeniería mecánica. Hoy en día, es común que los empleadores de todo el mundo esperen un nivel de competencia en el software asociado con la ingeniería mecánica, especialmente el diseño y el análisis, que abarca las siguientes áreas:

  1. Software CAD / CAE: Pro / Engineer, CATIA, Hypermesh, ANSYS, ABAQUS, NASTRAN, etc.
  2. Software de ingeniería computacional: CAS como MATLAB, Mathematica
  3. Software de ingeniería y análisis estadístico: R, Minitab
  4. Programación de uso general y resolución de problemas: Python, C ++

Algunas de estas herramientas son exclusivas de Linux o Unix, pero la mayoría no lo son. Por lo tanto, puede encontrar equivalentes de todas las herramientas anteriores en las plataformas de Windows generalizadas, pero a un costo.

Es posible que no necesite aprender Linux porque: incluso si conoce Linux, sus habilidades como ingeniero mecánico dependen en gran medida de qué tan bien comprenda las estructuras, mecanismos, sistemas, materiales, diseño, procesos y fabricación. Depende de poder encontrar formas creativas de resolver problemas, a menudo con limitaciones de recursos y tiempo. Depende de su capacidad de comprender los sistemas existentes y de poder diseñar otros nuevos con igual felicidad. Sí, conocer Linux te dará exposición a algunos programas y métodos, pero estos todavía son en gran medida multiplataforma y también se puede acceder a ellos desde la plataforma de Windows.

Antes de decir NO por completo, permítanme considerar un escenario: si usted es un ingeniero mecánico que trabaja en una startup y desea desarrollar sus propios modelos computacionales o de ingeniería de un sistema o modelos CAD de una estructura o mecanismo, software libre y de código abierto definitivamente mantendrá los costos bajos. Entonces, sí, en ese contexto, es útil conocer Linux hasta cierto punto. Pero aquí también, saber cómo usar esas herramientas específicas, ya sean FreeCAD o R, es más importante.

En conclusión: el conocimiento de Linux le da una ventaja si, como ingeniero mecánico, utiliza modelos CAD / computacionales y software ampliamente y eso también, en un entorno de software libre solamente. Sin embargo, para la mayoría de las personas que son ingenieros mecánicos, el conocimiento de Linux puede ser innecesario ya que sus habilidades básicas como ingenieros mecánicos (diseño, diseño de detalle, mecánica, materiales, procesos de fabricación) son definitivamente más importantes que Linux.

Para la mayoría de las cosas del día a día en ingeniería mecánica, (diseño mecánico, FEA, CFD, pruebas de laboratorio) el conocimiento de Linux no va a ayudar. Sin embargo, si terminas lidiando con sistemas embebidos o electrónicos, en realidad puede ser de gran ayuda.

Aquí hay dos ejemplos cuando era pasante de ingeniería mecánica en Intel:

  • Utilizamos un pequeño sistema integrado para sincronizar el control térmico entre diferentes trineos de servidores. Escribí un script simple de Linux para mostrar la velocidad de rotación del ventilador para depurar un problema de control relacionado con la temperatura ambiente
  • Obtuve acceso al firmware de un servidor a través de telnet y también se ejecutó una versión integrada de Linux. Necesitaba encontrar una manera de obtener las salidas del sensor (voltaje, consumo de energía, temperatura, velocidad del ventilador, etc.) del firmware a una conexión remota de LabVIEW. Los resultados reales de los comandos salieron en hexadecimal, así que tuve que hacer algunas manipulaciones de cadenas usando sed para obtener los datos exactos necesarios para la pantalla de la interfaz de usuario de LabVIEW

Además, este no es un ejemplo de Linux, pero uno de los ingenieros de firmware me dio un script de DOS que hace ping a cada componente conectado a la placa base. Esto es extremadamente útil cuando se ejecutan pruebas de choque y vibración porque puede hacer que este script verifique si hay conexiones rotas en lugar de tener que inspeccionar visualmente cada carril y junta de soldadura. No veo por qué no se podría hacer lo mismo con Linux.

El conocimiento de Linux es muy útil si está trabajando con clústeres informáticos. Debe saber cómo transferir archivos desde su máquina local a la unidad del clúster o si necesita ejecutar el archivo junto con un script particular para automatizar su flujo de trabajo de simulación.

Además, escribir el script en sí no es tan sencillo, aunque esto no tiene nada que ver con Linux per se. Depende de en qué idioma se escribió el front-end del software CAE. Pero navegar por Linux usando la interfaz de línea de comandos es bastante común y puede ser de ayuda.

La gestión de licencias es otra área clave para la mayoría de las empresas. Debido a las capacidades de red superiores de Linux, se utilizan muchos softwares CAE en Linux. Entonces, al final del día, diría que, como ingeniero mecánico, si está familiarizado con Linux, debería ser dorado.

Como esta pregunta es muy genérica, intentaré responder desde mi perspectiva.
Soy estudiante de maestría en áreas relacionadas con la mecánica de fluidos. Mi trabajo implica una buena cantidad de codificación en C. Las personas en mi campo generalmente escriben códigos C / C ++ / Fortran que forman la base de su algoritmo. Los datos resultantes tienen que ser procesados ​​posteriormente para obtener gráficos / diagramas de dispersión / histogramas, etc. Aquí es donde las secuencias de comandos de shell son útiles. Joder, es como una bala de cañón. Puede atravesar cualquier cosa, facilitando su automatización. Personalmente prefiero una combinación como Matlab + shell script o Python + shell script.

Las razones por las que hago esto son:
1. Los datos suelen ser grandes (~ 4/5 GB) y están dispersos en varias ubicaciones. Shell puede leer archivos a una velocidad asombrosa (~ Python) y puede saltar de un directorio a otro de manera pacífica.
2. Las secuencias de comandos de Shell pueden cortar (mediante comandos de cortar / dividir), reemplazar (awk / sed / grep), ordenar / cambiar el tamaño / agregar o eliminar Nan / inf, etc. Si su trabajo involucra muchos de los puntos mencionados anteriormente, sugiero encarecidamente lees páginas de manual en awk / sed / grep. Ayuda mucho en la automatización.
3. Si desea ejecutar programas por lotes, nada mejor que shell IMO.

Como ingeniero, Autocad es una herramienta indispensable que falta en Linux. Ni siquiera menciones el software CAD actualmente disponible en Linux. Ninguno de ellos es utilizable. Sin embargo, me siento bastante cómodo con una máquina virtual que ejecuta Autocad. Si puedes manejar esto, un gran sí. De otra manera no.

Linux se ejecuta en muchos sistemas y servidores integrados, por lo que estar familiarizado con él es definitivamente útil.

Enséñate a ti mismo a programar. Linux es el mejor entorno para la programación.

No estoy seguro de si tienes la oportunidad de lidiar con Linux en el trabajo del mundo real. Esos vendedores de hardware podrían tener su propio ide / sdk, podrían ser Linux o no Linux.