Antes de eso, trabaje con diagramas de flujo, algoritmos, pseudocódigo e intente comprender cómo se ejecutan los comandos de la computadora. Algunos libros introductorios o MOOC deberían ser suficientes para esta etapa.
A continuación, obtenga un lenguaje de procedimiento simple y escriba algunos de los algoritmos que ya comprende desde el primer paso. Solicite comentarios sobre su código en sitios web que permitan tal cosa (como codereview.stackexchange.com) o pídale a un buen amigo programador que busque en su código y le brinde pautas (o ambas).
Cuando llega a este paso, apenas puede saber cómo poner algunas líneas juntas, pero su comprensión es aún superficial. Debería tomar algunos meses para llegar a esta etapa.
Ahora está listo para abordar problemas más complicados, como un juego pequeño (tetris, match 3) o una aplicación simple (lista de tareas pendientes, lanzador de aplicaciones personalizado, etc.). Trate de resolver 2-3 problemas de este tipo antes de seguir adelante.
- ¿Es posible aprender a tocar el piano desde cero a través de tutoriales en línea?
- ¿Qué lenguaje de programación aprendo si no tengo ningún conocimiento previo sobre programación?
- ¿Qué habilidades debo aprender para ganar dinero desde cero? Recibo $ 1 de mi madre diariamente por cortarme el cabello y pagar mi paquete de Internet.
- ¿Cuáles son algunos hacks de fotografía que todos deberían saber?
- ¿Existe un buen sitio o un sitio web recomendado para aprender cómo convertirse en un mejor administrador en los Estados Unidos?
Ya que ahora entiende los conceptos básicos de programación, está listo para manejar problemas en pequeños equipos de 2 o como máximo 3 personas. Si es posible trabajar con alguien a partir de este punto.
Pero antes de resolver más problemas, tómese un tiempo para aprender acerca de la programación orientada a objetos y algunos patrones arquitectónicos básicos (como la composición). Estudie los conceptos teóricos y discútalos con amigos o en la sala de chat a través de Internet. Siéntase libre de usar Quora o StackExchange (chat) para tales discusiones y preguntas.
Ahora trabaja con uno de tus amigos en una aplicación más complicada usando OOP. Mientras tanto, puedes seguir resolviendo problemas básicos para mejorar tus habilidades. Implemente un árbol binario, escriba algunos contenedores agradables, cree diagramas UML y trate de entender por qué es bueno hacerlo de una manera u otra.
Cuando entienda la POO y ya sea capaz de responder preguntas como esta, tómese un descanso y aborde algunos problemas matemáticos. Tal vez un solucionador o alguna aplicación de análisis estadístico. Y esta es una buena oportunidad para que conozcas la programación funcional. Haskel o algo similar.
Mientras tanto, siéntete libre de jugar un poco con lenguajes de script como python, perl, ruby o lua.
No es simple. No es facil. Es un largo viaje. Buena suerte.