Estoy en una posición similar: aprender Python al intentar crear lo que se está convirtiendo en un proyecto bastante grande. Comencé con Codeacademy pero me detuve cuando empecé a pensar como ‘hey, ¡puedo usar esto para hacer x !’ En realidad, hacer las cosas es el estilo de aprendizaje que más me convenga, supongo. Describo dónde quiero terminar, a ver si se puede hacer desde mi conocimiento actual. Luego, cuando, inevitablemente, me quedo corto, recorro los documentos, los tutoriales y el stackoverflow, intentando averiguar cómo lograr el objetivo. A pesar de que mi proyecto está tardando más de lo esperado, cada vez que encuentro F5 en un método recién descubierto lo encuentro inmensamente gratificante, no frustrante en absoluto. ¡Creo que subconscientemente estoy agregando complejidad solo para aprender cosas nuevas!
¿Y si sale mal? ¡Pues entonces aprendo aún más! Los errores son el mejor tutor que uno puede tener. Abrázalos, aprende de, luego implementa lo que has aprendido, sabe que acabas de mejorar un poco con la experiencia.