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:
- Una elección de lenguaje y plataforma: C # y Windows son excelentes.
- Buen material de instrucción (libros, recursos en línea, video tutoriales, un curso introductorio a la universidad, etc.)
- Las herramientas que necesitará: una PC con Windows, Microsoft Visual Studio 2017 (gratis).
- Tiempo y paciencia.
- 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):
- ¿Cómo se relacionan las RPM de un motor de gasolina de cuatro tiempos con el número de ciclos termodinámicos? ¿Cuál sería su respuesta para un motor de dos tiempos?
- ¿Cómo funcionan los motores del tren?
- ¿Por qué algunos automóviles (en su mayoría, vehículos de carreras) tienen una relación de transmisión más alta en la 6ta marcha?
- ¿Cuál es el principio de los sistemas de frenos de aire en trenes?
- En el diseño de vigas, ¿por qué una sección de caja es más fuerte que una sección sólida?
- 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.