Así es. En KeepCoding seguimos aprendiendo, pero no siempre es fácil. El trabajo en una empresa como KeepCoding exige muchas actividades distintas. Por un lado estás acompañando a un alumno en su aprendizaje, orientándole, creando material didáctico y por otro lado estás resolviendo problemas organizativos o desarrollando herramientas para ello.
No obstante, siempre hay un punto focal, un nodo que centra toda esa actividad. En mi caso es ¿cómo podemos reducir la barrera de entrada en el mundo de la programación, del desarrollo de software?
Seguimos aprendiendo
KeepCoding se caracteriza por ofrecer un conjunto de bootcamps especializados dirigidos a profesionales que quieren mejorar o reorientar sus carreras apostando por la excelencia técnica. También disponemos de una plataforma de formación online con cursos en video. Sin embargo mi punto focal no deja de ser ¿cómo hacer que gente con nula experiencia en programación pueda entrar el el grupo de candidatos a esa formación? En castellano antiguo ¿cómo enseñar a programar a quien no sabe? Sobre todo partiendo de la siguiente premisa que hice mía en cuanto descubrí.
«The difficulty with teaching programming is that it cannot be taught. The difficulty with learning programming is that it is so much work.«
Charles Wetherell – Etudes for programmers
Si yo no puedo enseñarte a programar y sólo tú puedes aprender (yo diría descubrir), ¿cabe la posibilidad de actuar como un catalizador, reducir la barrera de entrada? ¿reducir tu trabajo, hacerlo más fácil, más ameno? Ese es nuestro foco, la gota que no cesa, el martillo pilón y por el que los maestros también seguimos aprendiendo.
Y esto tiene dos puntos:
- Contenidos
- Herramientas
En las anteriores ediciones del bootcamp aprender a programar desde cero (en adelante bootZ) hemos ido afinando los contenidos para que incluyan tanto el pensamiento computacional aplicado a la resolución de problemas, como la presentación de un enfoque profesional. La idea de que nuestro programa es un producto por el que nos pagarán y requerirá calidad, despliegue y mantenimiento.
¿Y las herramientas? Algunas de ellas están perfectamente definidas: hemos elegido Python como lenguaje vehicular, sólo Python. Es una excusa para aprender a programar. Podríamos usar otro lenguaje y haríamos probablemente el mismo itinerario. Python nos gustó por su amigabilidad y su amplia utilización actual.
Hay una idea, un side project: una plataforma de aprendizaje mucho más interactiva.
No vamos a engañarnos, no estamos inventando la rueda, existen plataformas interactivas de aprendizaje. Estaría bien crear la nuestra con lo que nos interesa de ellas… y es en este punto donde me igualo a mis estudiantes, donde toca remangarse y ponerse a estudiar.
Necesitamos un núcleo que pueda ejecutar pedazos de código en multitud de lenguajes, esto nos ha llevado a investigar jupyter. Jupyter es una grandísima herramienta pero la interfaz de los notebooks se nos queda corta, rígida, sin embargo sus kernels y el módulo jupyter client que implementa el protocolo de comunicación con ellos pueden ser de una gran utilidad para crear una plataforma dinámica y flexible que permita descubrir qué es programar en tu lenguaje preferido. ¿Qué toca? estudiar, probar, cacharrear, bichear hasta dar con la tecla.
Si solventamos eso, necesitaremos un sustituto de los notebooks, algo que presentar en la pantalla al alumno, un frontend dinámico y flexible. Deberemos crear nuestra propia interfaz.
He aquí el porqué de este post, estamos en fase de investigación, de juego y descubrimiento, intentando dar con la forma que facilite a nuestros alumnos emocionarse cuando programan (disfrutar y frustrarse), a la vez que seguimos aprendiendo haciendo. Y conociendo el éxito actual de React y su relativamente cómoda curva de aprendizaje me decidí a utilizarlo.
Como en todos los enfoques nuevos (programación declarativa) necesité un tiempo para el clic, pero una vez entendido empezaron a surgir componentes y su jerarquía, parece que este juguete tiene visos de funcionar, quizá crecer y llegar a herramienta. Y mientras tanto habré aprendido sobre jupyter, python, react, javascript, html, programación declarativa,… Como siempre ha sido frustrante al principio y muy satisfactorio después.
Todavía quedará mucho por hacer, tomar el contenido y rediseñarlo para adaptarlo a una plataforma más dinámica.
Y un deseo ¿Cabe la posibilidad de profundizar en el papel del navegador en una app web moderna? ¿Es posible incluir JSX en alguno de los ejercicios del bootZ para provocar en los alumnos su curiosidad? ¿Será viable incluirlo en nuevas promociones del bootZ?
Así que así estamos, los alumnos de la actual edición bootZ con su reto de construir su primer proyecto completo y nosotros con el reto de conseguir que más gente pueda atreverse a empezar en el mundo del desarrollo profesional.
Por: Ramón Maldonado – Coordinador Bootcamp Aprende a Programar desde Cero
¿Ya conoces nuestros Bootcamps? Seguimos aprendiendo día a día. Nuestros programas están en constante evolución ya que nos centramos en identificar día a día las herramientas y tecnologías más demandadas por la industria, para poder impartirla con las últimas actualizaciones y así garantizar que en verdad formamos Full Stack Developers.