No recomiendo comenzar con Python. Te recomiendo que te armes con:
- Una elección de lenguaje y plataforma: C # y Windows son excelentes (en mi humilde opinión).
- 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 hacen frente los introvertidos a las oficinas de planta abierta?
- ¿Las entrevistas de trabajo fallidas (desarrollador de software) afectan negativamente a su marca personal como candidato para las oportunidades futuras?
- ¿Será suficiente un paquete salarial del Reino Unido de 45,000 por año para criar una familia (mi esposa y mi bebé de 1 año) en Londres? ¿Cuánto efectivo tendré disponible? ¿Es 45k por año un buen paquete para un desarrollador de software con más de 6 años de experiencia?
- ¿Cómo debo pasar al lado funcional / gerencial en una empresa de TI si no soy tan apasionado por la codificación aunque estoy trabajando como desarrollador de software en una empresa multinacional líder?
- ¿Cuáles son algunas de las formas de obtener una pasantía de desarrollador de software pagado en Alemania?
- 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? Es. 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.