¿Cuál es la mejor manera de aprender a codificar?

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.

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.

El algoritmo de Yossi es una buena manera de aprender. Sin embargo, no puedo señalar suficientemente la importancia de los libros. De lo contrario, si solo depende de Google / StackOverflow, si se le pide que resuelva un problema inesperado en condiciones ligeramente diferentes, es posible que tenga dificultades.

Buen algoritmo es leer 50 páginas sin una computadora. Asegúrate de que lo entiendes completamente. Luego, en la computadora, prueba todos los fragmentos / ejercicios. Y luego repetir.

Cualquiera que sea su código, necesita práctica para ello. Cuanto más practiques, más lo dominarás.
Si está dispuesto a desarrollar sitios web, le sugiero que vaya Aprenda a codificar para practicar.
Si quieres hacer algo más, debes practicarlo lo más que puedas. Aprende de tus propios errores. También únete a los foros en línea relacionados con un idioma específico. Stack Overflow es muy bueno para las discusiones tecnológicas.

Codificación.

Es como aprender a hablar un nuevo idioma, de muchas maneras. Puedes aprender toda la gramática de fantasía y tomar todos los MOOC y memorizar todos los diccionarios, pero realmente no hay sustituto para salir y hablar con la gente.

Entonces, una vez que tenga sus conceptos básicos (si sabe lo que es un bucle for, ya está ahí), el siguiente paso es comenzar a trabajar, a poner en práctica sus habilidades. Google y stackoverflow son tus amigos para cuando te encuentres en un aprieto.

def learn_to_program ():
learn_programmimg_language_simple_syntax ()
nivel = 1
while (nivel_de_programación problema = pick_problem (nivel)
resultado = write_solution (problema)
si (resultado! = correcto):
google_for_more_knowledge (problema)
read_books (problema)
discutir (problema)
más:
if (feel_knowlage_satisfactory (nivel)):
nivel + = 1
descanso

¿Harías la misma pregunta si el tema fuera alguna otra herramienta? Como, ¿cuál es la mejor manera de aprender a usar un destornillador?

El código es una herramienta. Es una herramienta para resolver problemas. La mejor manera de aprender a codificar es encontrar problemas interesantes y desafiantes que pueda resolver con el código y luego resolverlos. El enfoque debe estar en el resultado deseado, no en la herramienta utilizada para lograr ese resultado.

Comenzaría con C ++ básico y saltaría directamente a la resolución de problemas utilizando sitios como TopCoder, CodeChef y otros. Al menos, así es como lo usé.