Hackathons: Transformando la educación en programación

Enseñar programación va más allá de enseñar a escribir código. La práctica de copiar y pegar tiene su papel inicial, pero debe dar paso a la resolución de problemas y la creación de algoritmos. Con hackathons y gamificación es posible involucrar a los estudiantes, reforzar conceptos esenciales y prepararlos para el mercado laboral, formando programadores más seguros y capaces.

Por: Professor Fernado Posser

Cuando comencé a aprender programación, las opciones de estudio eran limitadas. Podríamos comprar folletos impresos, adquirir CD con cursos que se venden en los quioscos o participar en clases presenciales. Con el paso de los años, especialmente desde 2018, el escenario ha cambiado drásticamente.

Ha habido un aumento en la accesibilidad del contenido en línea sobre programación. Si sabías inglés, todo lo que necesitabas era una buena conexión a Internet para acceder a YouTube y Stackoverflow. Incluso los contenidos en portugués comenzaron a ganar cada vez más espacio, lo que también abrió el camino para cursos en línea estructurados en plataformas de aprendizaje.

Hoy en día, cualquiera que tenga ganas y tiempo disponible puede aprender a programar. El material completo para empezar desde cero y llegar al nivel básico es muy fácil de encontrar, pero la experiencia inicial es la más importante. A esta experiencia la llamo “soltar la mano”. Los profesores de música crearon este término para resumir el proceso por el que cada principiante de música explora el instrumento y se siente más cómodo con él. En programación no es diferente.

El proceso es sencillo: el instructor explica la teoría; Escriba código y muéstrelo funcionando; Mientras tanto, el alumno copia y ejecuta junto con él. De esta manera el alumno se acostumbra a escribir palabras y estructuras que nunca había visto, “libera su mano” con el código.

El problema de simplemente copiar código

Hasta ahora todo parece estar en orden, sin embargo, algo empezó a cambiar en 2018 con la popularización de los cursos en línea: los estudiantes pasaban cursos y vídeos enteros copiando código la mayor parte del tiempo en lugar de escribir su propio código.

Con el tiempo, esto se convirtió en un problema tan presente y visible que el mercado incluso creó un término para denominarlo fullsterco , que es un juego de palabras para desarrolladores. fullstack, que es el profesional que (generalmente) desarrolla en el frontend y backend. Fullsterco “hace m… en el frontend y backend”. ¿Pero cómo sucedió esto?

La respuesta es muy sencilla. Al copiar código, las personas tienen la impresión de que están aprendiendo a desarrollar sus propias soluciones al problema propuesto, pero en realidad están desarrollando la capacidad de seguir una clase mientras copian código.

¿Pero no dije antes que “soltar la mano” era algo bueno? Sí, pero como dice el viejo refrán: la diferencia entre medicina y veneno es la dosis. Mientras se dan los primeros pasos, copiar es importante para acostumbrarse a escribir código.

Si una persona que está aprendiendo a programar se encuentra con errores y seguimientos de pila complicados, es posible que se dé por vencido. En esta etapa, “soltar la mano” ayuda mucho. Pero, tan pronto como se acostumbra a escribir códigos, es importante comenzar a escribir sus propios códigos y enfrentarse a problemas como: errores de lógica y sintaxis, crear estructuras más complicadas de lo que podrían ser, entre muchas otras cosas. Es como caer y aprender a levantarse.

Cuando sólo se copia, el cerebro no se estimula a pensar en la abstracción y la lógica necesarias para resolver un problema. Al no hacer esto, el estudiante no enfrenta los desafíos que surgen del proceso de enseñanza.

El resultado surgirá agresivamente cuando el estudiante intente ingresar al mercado laboral y no tenga uno bueno. Es como un ciclista que entrena únicamente con ruedas auxiliares en su bicicleta e intenta afrontar un campeonato de ciclismo de 50 kilómetros sin ruedas auxiliares, con viento, sol y temperaturas de 40ºC.

Soluciones prácticas para estimular el pensamiento computacional

Para resolver esto, el estudiante primero debe tener una base sólida en la creación de algoritmos simples. Necesitará abstraer, descomponer y reconocer patrones.

La abstracción es la forma en que el estudiante comprende el problema y los recursos (lógica) que necesitará para resolverlo.La descomposición es el proceso de descomponer este gran problema en problemas más pequeños y resolverlos poco a poco para llegar a un resultado.Finalmente, el reconocimiento de patrones ayuda al estudiante a encontrar patrones no sólo en la similitud de este problema con otras cosas similares que ya ha visto, sino también a encontrar patrones en el problema mismo para reducir la complejidad del código y hacerlo todo más simple.

Estas 3 habilidades son elementos básicos que todo estudiante y profesional de tecnología/programación necesita desarrollar antes de aventurarse en problemas más complejos y utilizar herramientas más abstractas como bibliotecas y frameworks.

Nueva Generación y Resistencia en la Escritura de Códigos desde Cero

Esta nueva generación, por mucho que los animes a crear sus propios códigos y a utilizar métodos de estudio que les hagan escribir desde cero, no lo hacen.

Está claro que estas nuevas generaciones son cada vez más inmediatas. No es raro en estos días ver a los estudiantes comenzar su aprendizaje en el área con videos sobre React, Angular, HTML y CSS, VUE JS, Next y otras bibliotecas y frameworks frontend. ¿Y cuál es la consecuencia de esto? Jóvenes sin base alguna, más bibliotecas que implementan y abstraen conceptos de lógica de programación, algoritmos, estructuras de datos, orientación a objetos y patrones de diseño y la creación de interfaces complejas.

¿Qué resultado traerá esto? El ciclo interminable de copiar y pegar código. Y lamentablemente esto no se está resolviendo ni siquiera en los cursos presenciales, ya que los estudiantes utilizan cursos online y vídeos de YouTube como material de apoyo y mantienen esta conducta de copiar y pegar.

Y si el problema es el comportamiento, ¿cómo lo abordamos?

Uso de una plataforma para fomentar la escritura de código

Entre 2014 y 2023, Enter Tech Edu, una startup de tecnologia, encontró una manera de impactar a decenas de miles de estudiantes, utilizando la gamificación a través de hackathons. Tan pronto como los estudiantes tuvieron en sus manos el código, se llevaron a cabo los primeros hackathons con 3 conjuntos de problemas: fácil, medio y difícil, todos teniendo en cuenta el nivel de los estudiantes para mantener un flujo de trabajo.

Al final de cada hackathon, se llevó a cabo una conversación grupal para analizar los desafíos encontrados al resolver algunos de ellos junto con los estudiantes, demostrando la importancia de las habilidades de abstracción, descomposición y reconocimiento de patrones.

Estas actividades mostraron lo importante que es el conocimiento básico y los alentaron a desarrollar conocimientos básicos antes de dar grandes pasos.

¿Pero cómo hacer un hackathon? Hay varias formas, pero, después de mucho buscar e investigar, la mejor que encontramos fue en la plataforma beecrowd.

En beecrowd encontramos problemas de los más variados tipos, que van desde atravesar cadenas hasta cálculos complejos, pasando por gráficos, árboles y estructuras de datos. Además, implementa un entorno donde podemos crear y configurar hackathons a los que nuestros alumnos pueden acceder y podemos monitorear en tiempo real, además de evaluar sus resultados.

Esto nos dio un gran control sobre la herramienta principal que utilizamos durante la capacitación para desarrollar en los estudiantes las habilidades más esenciales para aprender lógica de programación y pensamiento computacional.

Además del hackathon inicial, con el tiempo se enfrentan a más y más hackathons que aumentan el nivel de desafío, sin embargo, ahora están mejor preparados para esta actividad ya que se han desarrollado los conocimientos esenciales para resolver cualquier problema.

Beneficios para estudiantes

A través de este enfoque que fomenta la comprensión de conocimientos básicos y esenciales, el estudiante comienza a desarrollar una serie de habilidades que lo preparan más para enfrentar los desafíos del mercado laboral.

En primer lugar, al participar en hackathons y resolver problemas solo y en grupo, mejoras tu independencia y tu capacidad de trabajo en equipo. Esto es fundamental para que tenga más confianza a la hora de afrontar tareas de programación y aumente su resiliencia ante las dificultades.

Además, practicar la resolución de problemas y la construcción de sus propios algoritmos le ayudará a internalizar conceptos como abstracción, descomposición y reconocimiento de patrones . Estas habilidades no sólo lo convierten en un programador más eficiente, sino que también forman una base sólida para que pueda aprender otros lenguajes y tecnologías más fácilmente.

Cuando se ve obligado a pensar en los detalles de un problema y encontrar una solución, desarrolla una comprensión más profunda de los conceptos, que va mucho más allá de la simple memorización o la práctica de copiar y pegar códigos.

Este método también contribuye al desarrollo de una mentalidad de aprendizaje continuo, fundamental para el área de tecnología, donde todo el tiempo surgen cosas nuevas.

Pero lo más importante es sin duda la adquisición de conocimientos básicos, ya que con esto el alumno puede navegar entre tecnologías y frameworks de forma más natural y a su propio ritmo.

Beneficios para el curso

La deserción escolar siempre ha sido el mayor temor de los profesores y coordinadores de cursos de tecnología.

Con mi experiencia digo que rendirse, la mayoría de las veces, va ligado a tres cosas: Economía; Dificultad; Conocimiento sobre el curso elegido.

En cuanto a economía, no hay nada que hacer, al fin y al cabo, nadie se inmiscuirá en la economía familiar del estudiante. El conocimiento sobre el curso, hoy en día, es algo que no es tan serio, al fin y al cabo, las personas están más inmersas en la tecnología y saben que gustarle las redes sociales y navegar por internet no es motivo para tomar un curso de programación. Pero la dificultad a la que se enfrenta el alumno es algo completamente controlable.

La respuesta no es facilitar el contenido. Siguiendo este camino formaremos profesionales con baja cualificación. Controlar los estímulos y metodologías aplicadas a lo largo del curso es más efectivo y puede abordar directamente los motivos de la dificultad que tiene el alumno para resolver los retos que se le imponen.

Con esta metodología que aplicamos, el índice de deserción y frustración de los estudiantes disminuyó, ya que los desafíos propuestos se adaptan a su nivel de conocimientos, y el uso de la gamificación con hackathons hace que el aprendizaje sea más dinámico y motivador. Los estudiantes permanecen comprometidos y tienen un desarrollo más lineal, lo que aumenta las tasas de retención y finalización de cursos.

El curso comenzó a formar estudiantes con una base más sólida y una visión más amplia de la programación. Además, con la práctica de evaluación constante durante los hackathons, el curso pudo monitorear el progreso de los estudiantes de manera más efectiva, identificando dificultades específicas y ajustando el contenido según fuera necesario.

Este enfoque permitió una evolución constante no sólo del estudiante, sino también del curso mismo.

Si algo he aprendido en más de una década de programación y con los miles de estudiantes que he tenido en educación técnica y en mi licenciatura es que aprender programación no se trata solo de escribir código. Programar significa pensar de forma lógica y al mismo tiempo afrontar los problemas de forma creativa.

Copiar y pegar código juega un papel en el proceso de aprendizaje. Sin este paso, nuestros estudiantes no se “soltarán” y se familiarizarán con los fundamentos de la programación. Sin embargo, prolongar esta metodología no traerá buenos resultados, ya que los estudiantes no podrán afrontar desafíos reales y desarrollar habilidades esenciales para competir en el mercado laboral.

Te garantizo que el uso de hackatons y gamificación con una audiencia nueva en la programación resultará muy eficaz para combatir el comportamiento de copiar y pegar. Las habilidades que esto desarrolle, con el tiempo, traerán beneficios no sólo al estudiante, sino también al curso.

Tal como lo hicimos en Enter Tech Edu, cuenta con la plataforma beecrowd para ayudarte con esta tarea. Después de todo, formar programadores competentes significa formar personas capaces de pensar, crear y transformar, y este es el verdadero valor de la educación tecnológica.

Profesor Fernado Posser ingresó al campo de la tecnología en 2008. Se graduó como maestro en computación aplicada, impartiendo docencia a partir de 2015. Actualmente tiene su estudio de desarrollo de juegos (POPI Games Studio) y es docente en Atitus Educação.

CONTENIDO

Nuestros artículos más recientes
Lea sobre las últimas tendencias en tecnología
blog algo
Descubre cómo el análisis de algoritmos en la programación competitiva puede mejorar...

Extra, extra!

Assine nossa newsletter

Fique sempre atualizado com as novidades em tecnologia, transformação digital, mercado de trabalho e oportunidades de carreira

¿Le gustaría hablar con un representante de ventas?

Interesado en: