Creo firmemente que se puede hacer que la programación parezca más fácil de lo que suele ser. Creo que el desafío que la mayoría de la gente tiene con la programación es el mismo desafío que la mayoría de la gente tiene con el álgebra de aprendizaje. Ambas asignaturas se enseñan con conceptos abstractos cuando a las personas les resulta mucho más fácil pensar en cosas concretas.
Por ejemplo: en Álgebra, una forma común de enseñar es usar problemas como x + 3 = 6, averiguar x. Bueno que es x ¿Cuál es el punto de x? ¿Por qué me importa x? ¿Cómo afectará x mi vida? Todo es teoría con poca aplicación.
La programación inicial se enseña de la misma manera. Aquí hay una serie de números: [1,2,3,4,5]. ¡Podemos imprimir todos los números con bucles! De acuerdo. ¿Por qué importa esto? ¿Qué puedo hacer con esto? ¿Cómo se traduce esto al software que uso todos los días?
También es necesario enseñar TODO sobre un concepto antes de pasar al siguiente. Por ejemplo, todos los tipos de datos se enseñan a la vez. Antes de que un alumno pueda obtener una base sólida con el uso de cuerdas y cuerdas, el conocimiento sobre flotadores y booleanos se meten en sus cabezas. Escribo mucho más sobre este tema en esta publicación de blog.
- ¿Qué debo saber antes de aprender a volar?
- Cómo aprender sobre los diferentes protocolos de red como UART, I2C y cómo implementarlos en tiempo real.
- ¿Cuál es el mejor método de aprendizaje automático?
- ¿Qué pasa si un niño nunca fue sometido a un sistema escolar y aprendió todo por su propia curiosidad?
- ¿Cuáles son tus plataformas favoritas para el aprendizaje en línea o la educación continua después de la universidad?
Mi recomendación es centrarse en problemas muy aislados y pequeños que puedan proporcionarle al estudiante cierto sentido de logro. Estoy en medio de construir una aplicación que utiliza estos conceptos. Empieza por enseñar * solo * lo que alguien necesita saber para resolver el problema que tienen enfrente. Solo cuando el alumno tenga una base sólida con conceptos básicos, comenzaré a introducir conceptos más avanzados, como la abstracción y el pensamiento progresivo.