En mi opinión, dividiría el desafío en los siguientes temas: 1. Aprender la lógica. 2. Realizar un diagrama sobre el problema o la necesidad establecida. 3. Validar las posibles soluciones y cual es la mas eficiente. 4. Escoger un lenguaje de programación. 5. Documentarse sobre el lenguaje, aprender su sintaxis. 6. Poner en practica la teoría en el código. 7. Validar otras posibles soluciones, aprendiendo de la prueba y error. 8. Compartir el código con otras personas que conozcan y te den un feedback.