¿Cuál es el mejor y más común lenguaje de programación que todo ‘científico o ingeniero’ debería aprender?

Tres respuestas Recomiendo hacerlo en secuencia.
1) Para una comprensión de bajo nivel de la programación, evite toda estructura. Simplemente aprenda lo que significa crear instrucciones que se puedan seguir un paso a la vez.
Comience con un lenguaje trivial: Fortran temprano o Basic o C usando goto, sin definir ninguna función.
Escriba algunos programas matemáticos simples en este idioma, al nivel de “imprima todos los números primos por debajo de 10,000”.
(A medida que se sienta más cómodo con la programación, comience a usar enunciados y funciones de control. Pero, manténgalo simple. Concéntrese en los pasos individuales. Comprenda lo que está sucediendo en términos de las asignaciones de memoria subyacentes. Es bueno tener un modelo mental que incluya un contador de programa, un puntero de pila y una matriz de celdas de memoria).
Trabaja para escribir algunos juegos clásicos. Mastermind es un buen desafío para principiantes adecuado para este lenguaje de tamaño.

2) Aprende la belleza de la programación. Pase un tiempo con un lenguaje como Scheme que sea elegante pero minimalista. Si tiene tiempo, trabaje en el clásico libro “Estructura e interpretación de programas de computadora”

3) Finalmente, aprenda un idioma para su trabajo “real”. En este punto, comprenderá la programación y será fácil aprender cualquier idioma. Elija el que mejor se adapte a lo que quiere hacer. No importa si elige C o C ++ o Java, o JavaScript o Python, o casi cualquier otra cosa. Entenderá los conceptos y aprenderá el idioma con un sentido de “Ajá, así es como se hace en este idioma”.

4) (mentí; siempre hay más de tres pasos). Repite con otro idioma. No hay un lenguaje de programación perfecto, al igual que no hay un destornillador perfecto. Sigue aprendiendo nuevos idiomas y sigue ampliando tu comprensión.

1. C / C ++: es un lenguaje importante para entrenar sus habilidades en programación y algoritmos, al tiempo que aprende a conocer algunos fundamentos como la gestión de la memoria, las variables y las estructuras de datos.
2. Matlab: esto es para planificar su diseño con análisis matemático antes de implementarlo en una plataforma real como microcontrolador, fpga, etc. La importancia de este lenguaje aumenta cuando toma un flujo de procesamiento de señal.
3. Perl / Tcl: herramientas poderosas para crear secuencias de comandos y automatizar otros programas. Yo personalmente comencé a aprender estos idiomas.
4. Verilog / VHDL: esto es para diseñar hardware más simple y práctico en lugar de tener que crear algunos circuitos complicados usando esquemas con cables desordenados.
5. Programación orientada a objetos: te ayudará mucho a aprender cómo funciona la verificación asic.
6. Unix: este no es realmente un lenguaje de programación. En la mayoría de los casos, trabajará en un entorno Unix / Shell, por lo que debe conocer algunos comandos básicos de Unix.

Si ha dominado o al menos conoce los fundamentos de estos idiomas anteriores, será más fácil ampliar sus habilidades en otros idiomas.

Aquí en Rochester, Nueva York, Kodak y Xerox brindaron capacitación en C. Aunque no es un estándar:

C ha influido directa o indirectamente en muchos lenguajes posteriores, como C #, D, Go, Java, JavaScript, Limbo, LPC, Perl, PHP, Python y C Shell de Unix. La influencia más generalizada ha sido sintáctica: todos los lenguajes mencionados combinan la declaración y la sintaxis de expresión (más o menos reconocible) de C con sistemas de tipos, modelos de datos y / o estructuras de programas a gran escala que difieren de los de C, a veces radicalmente . C (lenguaje de programación)

Los lenguajes relacionados con C también son candidatos probables para programas de ingeniería y son fáciles de aprender con una base en C.

Para los ingenieros, especialmente los ingenieros eléctricos, Matlab es probablemente la herramienta más útil. Simulink está integrado con Matlab para que pueda ejecutar simulaciones e importar directamente datos a sus programas para su procesamiento. Además, es mucho más fácil aprender y usar (¡mucho más que otros idiomas!).

El lenguaje SPICE (IDE popular es PSpice, la versión gratuita es QUCS) es muy popular para la simulación de circuitos.

Entre los físicos, Wolfram y Python son muy populares. Hace algunos eones, la gente usaba Fortran. C y C ++ también son populares, pero son más difíciles que los anteriores (especialmente con respecto a la longitud del código y la depuración), pero se supone que son más eficientes.

Hablando estrictamente sobre los científicos que no son CS R o Matlab sería una herramienta excelente, ya que requiere muy poca programación, y el científico o el estadístico pueden abordar directamente el problema. Incluso algunos científicos informáticos que están en IA, ML y análisis de datos (como yo) se beneficiarían de esos lenguajes además de Python.

En mi opinión, el mejor lenguaje para cualquier ingeniero informático sería C / C ++. Puede abordar casi cualquier tipo de problema que cualquiera pueda encontrar, y también lo hace con gran eficiencia computacional. Y aunque los punteros pueden ser una pesadilla para los programadores, también pueden ser un arma hermosa e increíblemente poderosa si la usas sabiamente.

Pero si desea más programación de aplicaciones y no desea tratar algunas de las partes feas de C / C ++ como la administración de memoria, punteros, entonces Java sería mi recomendación. Casi siempre hay un paquete que también hace todo el trabajo por usted. Lo mismo es cierto para C ++ con su STL también, pero con Java, es mucho más simple.

Sin embargo, si está buscando desarrollo web, el ingeniero o científico se beneficiaría más de JavaScript (y marcos relacionados como Node, Angular, etc.), Python (Django), Ruby (Rails), etc.

Después de haber aprendido dos o tres idiomas, descubres que todos son bastante similares, todos tienen sentencias ejecutadas en secuencia, con pruebas de if y puntos de ramificación y bucles, funciones o subrutinas, entrada y salida, y visualización. El resto es en gran medida una diferencia en la sintaxis. Especialmente hoy en día, especialmente con Google y StackExchange, puedes cambiar a cualquier idioma nuevo y aprenderlo sobre la marcha. No es como los idiomas humanos que requieren años de estudio y práctica.

Dicho esto, Python y Javascript son nuevos lenguajes “modernos” que han aprendido de las características incómodas de los lenguajes más antiguos (como C, C ++, FORTRAN, …) y hacen las cosas de manera más fluida e intuitiva, lo que los hace más fáciles de aprender. Java es grande porque fue el primer lenguaje multiplataforma real, aunque hereda muchas características de tipo más antiguas de C / C ++. No lo recomendaría para un principiante.

Entonces, comience con Python o Javascript (dos de mis favoritos) pero no sienta que está comprometido con ninguno de ellos, puede cambiar a cualquier otro idioma en cualquier momento si es necesario.

No hay una respuesta universal, porque depende de su campo específico. Para la gran cantidad de números, FORTRAN sigue siendo el mejor por razones técnicas y de mercado. En el nivel técnico, FORTRAN tiene formas muy eficientes de transferir datos entre subrutinas, como matrices conformes y bloques comunes; uno puede aproximar estos en C con malloc y punteros, pero no es lo mismo. Además, los códigos numéricos más grandes están en FORTRAN, por lo que esos son los puntos de referencia utilizados para las supercomputadoras Top500; por lo tanto, los proveedores se esfuerzan más por optimizar sus compiladores FORTRAN para la velocidad que con cualquier otro idioma. Afortunadamente, si aprendes FORTRAN, no tendrás que hacerlo en las tarjetas perforadas de la manera que lo hice 🙂 Casi la única ventaja de las tarjetas perforadas es que Multipunch permite delimitadores fuera del conjunto de caracteres regular …

Pero muchos proyectos grandes ahora no son en su mayoría números crujientes. Por ejemplo, los mayores problemas en mi campo de la bioinformática son la MANIPULACIÓN DE CUERDAS, ¡lo que odiaría hacer en FORTRAN! Para ordenar, buscar y generalmente mezclar bases de datos grandes, prefiero lenguajes como C, Perl y Python.

Existen muchos otros idiomas potencialmente útiles, y no puede predecir cuál resultará útil en el futuro. Si eres estudiante, te sugiero que aprendas al menos tres de los siguientes: FORTRAN, C, Java, Lisp, Perl, Python, R o Erlang. Cada uno de estos se está utilizando actualmente en grandes proyectos, y son lo suficientemente diversos como para que una vez que haya aprendido tres de ellos, no tenga muchas dificultades para elegir otros cuando lo necesite.

Si está cerca del hardware C o el ensamblaje son buenos. Si está “lejos” del hardware, C ++ será bueno. Realmente depende del proyecto en el que trabajarás. Como ingeniero, deberías echar un vistazo a Matlab. Es una buena herramienta y lenguaje para el cálculo y muchas otras cosas.

No creo que haya un lenguaje único para todos los campos cuantitativos. Los físicos suelen aprender C, Fortran y ahora quizás también Python. Supongo que eso también sería cierto para muchos sabores de la ingeniería.

Para el científico: MATLAB
Para ingeniero: C, JAVA, Python

Según la demanda de la industria en la actualidad.

Matlab, Python, C ++, C.