Tengo 18 años y no tengo experiencia en computadoras. Quiero aprender programación ¿Cuál es la mejor manera de aprender programación por mí mismo? ¿Cuál es el lenguaje más útil para aprender para ingenieros mecánicos?

En primer lugar, me gustaría señalar que por “programación” probablemente se refiera a “ingeniería de software”, es decir, la ciencia de la creación de aplicaciones de software. Las personas nuevas en el campo a menudo confunden el conocimiento de un lenguaje de programación específico (por ejemplo, Java, C ++, PHP, Python) con la habilidad de la ingeniería de software. Un lenguaje de programación es simplemente un medio para lograr el objetivo de construir una aplicación.

Dicho esto, si desea aprender ingeniería de software, le recomiendo que se arme con:

  1. Una elección de lenguaje y plataforma: C # y Windows son excelentes.
  2. Buen material de instrucción (libros, recursos en línea, video tutoriales, un curso introductorio a la universidad, etc.)
  3. Las herramientas que necesitará: una PC con Windows, Microsoft Visual Studio 2017 (gratis).
  4. Tiempo y paciencia.
  5. Pizza y refrescos con cafeína (para darle energía para alimentar su entusiasmo).

En cuanto al material de instrucción, su mejor opción es inscribirse en un curso (gratuito o de otro tipo). Ya sea un instructor dirigido o un video de capacitación a su propio ritmo, no hay nada como un curso formal para ayudarlo a comenzar con lo básico. Si elige aprender por su cuenta comprando uno o más libros, encuentre aquellos que cubran el siguiente programa de estudios:

Los conceptos básicos (cómo funcionan las balas):

  • Representación numérica
  • álgebra de Boole
  • Construcciones de programación (ejecución secuencial, if-then-else, bucles, declaración de cambio / caso)
  • Entrada y salida básica.
  • Programación modular (funciones, paso de parámetros)
  • Estructuras de datos (matrices, listas, listas vinculadas, colas, árboles, tablas hash, conjuntos)
  • Algoritmos: algoritmos numéricos, búsqueda, clasificación, recursividad, etc.
  • Excepciones y manejo de errores

Programación orientada a objetos (cómo funcionan las armas):

  • Objetos y clases
  • Encapsulamiento
  • Composición y herencia.
  • Polimorfismo

Patrones de diseño (cómo funcionan las ametralladoras):

  • Fábrica, patrón único, constructor, prototipo
  • Adaptador, fachada
  • Iterador, comando, mediador
  • Editor, suscriptor
  • etc.

Programación GUI (cómo pelear una guerra):

  • Conceptos básicos impulsados ​​por eventos
  • Formas y controles
  • Arrastrar y soltar
  • Portapapeles de Windows
  • Muchos otros temas demasiado numerosos para nombrar

Programación de Windows (cómo pelear una batalla):

  • E / S de archivo
  • Programación de red
  • Regex
  • Multimedia
  • Habla
  • Cifrado
  • Muchos otros temas demasiado numerosos para nombrar

¿Suena mucho? Está. Pero recuerde esto: cada océano comienza con una gota de agua.

Le deseo suerte y lo aliento a embarcarse en este maravilloso viaje de ingeniería de software. Espero que te traiga tanta alegría como me ha traído a mí. No hay nada más en la vida que quiera hacer que crear software útil, robusto y utilizable.

Soy ingeniero mecánico y no programador. Mi compañía tiene mucha gente de software. Los lenguajes de los que más hablo son C ++ y Python. Muchos prefieren trabajar en un entorno Linux. Sigue preguntando para tener un sentido equilibrado de esto. Obtenga un sistema de bajo costo para jugar (por ejemplo, Arduino, Raspberry Pi o Intel Edison) y haga algo simple con él. Enciende y apaga tu linterna LED con ella. No te preocupes si parece trivial. Avanzarás hacia ideas más complejas a medida que lo entiendas. Mucha suerte y que lo disfrutes!

Los ingenieros mecánicos no necesitan aprender programación de computadoras. ¿Cómo sabes que quieres aprender programación si no sabes nada al respecto? No es para todos (de lo contrario, mucha más gente lo estaría haciendo).