Comenzando con Python, ¿cuál sería un buen plan de estudios a seguir para convertirse en un desarrollador de software autodidacta?

No recomiendo comenzar con Python. Te recomiendo que te armes con:

  1. Una elección de lenguaje y plataforma: C # y Windows son excelentes (en mi humilde opinión).
  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? 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.

En primer lugar, no comenzaría con Python, ni con ningún idioma.

El desarrollo se trata de aplicaciones. Comience con un dominio problemático que le interese, ya sea finanzas, juegos, análisis estadístico, música, lo que sea.

Entonces aprende algo sobre ese dominio problemático. Si no puede resolver problemas o diseñar cosas, entonces la programación no será de ninguna ayuda. (Por ejemplo, si quieres desarrollar juegos, comienza con papel y lápiz, juegos de mesa, juegos de rol, aprende a ser un maestro de mazmorras. Luego piensa en convertir las cosas en software).

Luego, aprenda a usar herramientas comunes en su dominio. Si te gusta la música o el sonido, aprende a usar Audacity. Si te gustan las finanzas, aprende a usar Excel. Si te gustan las estadísticas, aprende a usar MATLAB.

Luego, aprenda a extenderlos y, en el proceso, aprenda el idioma que necesite para hacerlo. Por ejemplo, para Excel, aprenda a escribir macros de Excel y vBasic.

Olvídate de las serpientes encantadoras.

No pensamos en términos de idiomas: miramos el mundo, identificamos problemas que podemos resolver con código y luego elegimos la mejor herramienta para el trabajo.

Aplicación de Android para hacer XYZ? Java.

Aplicación de Windows para hacer ABC? C # primero, luego quizás Java, luego quizás los otros. Realmente nunca necesitas C ++.

Aplicación web para hacer QBR? Difícil. Le diré que si tiene que preguntar, la respuesta es PHP, es barato comenzar, configurar y ejecutar.

No aprendas a codificar solo porque hace calor y está en tendencia. Es un reto. Hazlo porque tienes un uso real para ello.

Si quieres aprender solo porque, adelante, elige cualquier idioma y crea aplicaciones de juguete.

Comience con la mentalidad correcta.

Lista multimedia de Mmulti para programadores nuevos y antiguos y otros solucionadores de problemas

Internet victoriano

El alma de una nueva máquina

El mes del hombre mítico

Longitud

Parpadeo por Malcolm Gladwell

La breve historia de casi todo – Bryson

Y algunas peliculas

El juego de imitación,

Apolo 13

Figuras ocultas

Algunos episodios de TV disponibles en You Tube

El viejo programa de noticias – Nightline – El episodio del carrito de compras donde desafían a una compañía llamada Ideo a rediseñar y repensar el humilde carrito de compras.

Un par de artículos de revistas:

Escriben las cosas correctas: una pieza de 1990 en el software del transbordador espacial

Código como diseño: tres ensayos de Jack W Reeves.

E incluso algo de ficción

El sabueso de los Baskerville – Arthur Conan Doyle

La luna es una amante dura – Robert Heinlein.

Algunas luminarias para estudiar

Ada Lovelace

Alan Turing

Grace Hopper

Margaret Hoover

—- El código fuente del Sistema de Orientación del Lunar Lander que está disponible de forma gratuita y pública en Internet como un proyecto conjunto de la NASA y Google para el 50 aniversario del aterrizaje lunar de Armstrong y Aldrin.

More Interesting

¿Puede un recién graduado de ingeniería mecánica administrar un rol de desarrollador de software?

¿Cómo desarrollan un producto los ingenieros de software?

¿Por qué las personas solicitan el desarrollo de software personalizado teniendo en cuenta que siempre es tan costoso?

¿Con qué frecuencia los desarrolladores de software buscan en Google para ayudar a arreglar un código?

¿Cómo es ser un desarrollador / ingeniero de software en Bloomberg?

¿Cómo se convierten las personas en desarrolladores de software productivos?

¿Qué puede esperar un nuevo desarrollador de software contratar en Epic Systems en su primer día en el campus?

Cómo convertirse en programador de computadoras o desarrollador de software

Dado que la tecnología informática evoluciona tan rápidamente, ¿importa si tiene 5 o 15 años de experiencia como, por ejemplo, desarrollador de software?

¿Cómo es el día normal de trabajo para un desarrollador de software?

Estoy trabajando en una empresa de TI como desarrollador de software y necesito cambiar a roles de administración. ¿Hay alguna salida sin hacer MBA?

Como desarrollador de software, ¿alguna vez te has sentido desesperado y frustrado porque hay innumerables habilidades técnicas que no conoces?

¿Qué tan viable es ser algo así como un gato de todos los oficios de desarrolladores web y de software en lugar de especializarse?

Estoy haciendo B.tech en biotecnología. Quiero ir a los campos de desarrollador de software. ¿Cuál debería ser mi estrategia?

Como desarrollador de software / web para principiantes, ¿debería centrarme en aprender nuevos idiomas o crear proyectos?