Con amor de Stepik: plataforma educativa Hyperskill

Quiero hablarte sobre por qué reparamos más fontanería de lo que escribimos disertaciones sobre ella, sobre los diferentes enfoques para aprender a programar y sobre cómo intentamos aplicar uno de ellos en nuestro nuevo producto Hyperskill.

Si no te gustan las introducciones largas, puedes ir directamente al párrafo sobre programación. Pero será menos divertido.

Con amor de Stepik: plataforma educativa Hyperskill

Un desvío lírico

Imaginemos a una joven llamada Masha. Hoy Masha planeaba lavarse algunas frutas y ver una película tranquilamente, pero, por desgracia, descubrió que el fregadero de la cocina estaba atascado. No sabía qué hacer al respecto. Se podría dejar ese problema para más adelante, pero como tiene tiempo libre ahora, Masha decide solucionarlo de inmediato. El sentido común le sugiere dos opciones: a) llamar a un fontanero b) solucionar el problema por sí misma. La joven elige la segunda opción y comienza a estudiar instrucciones en YouTube. Siguiendo el consejo del usuario Vasya_the_plumber, Masha mira debajo del fregadero y ve una tubería de plástico retorcida formada por varias piezas. Con cuidado, desenrosca una parte en la base del fregadero y no encuentra nada. Un trozo de tubo más abajo resulta estar completamente obstruido por una sustancia desconocida, y ni siquiera un tenedor que encontró en la mesa logra despejarlo. Los expertos en internet dan pronósticos desalentadores: la pieza tendrá que ser reemplazada. En el mapa, Masha encuentra la ferretería más cercana, se lleva consigo el problemático trozo de tubería y compra uno igual, pero nuevo. Siguiendo el consejo del vendedor, Masha también lleva un nuevo colador para precaución. La misión está cumplida: el fregadero funciona de nuevo como debe, y su protagonista ha aprendido lo siguiente:

  • Las tuberías bajo el fregadero se pueden desenroscar y enroscar por sí solas;
  • La ferretería más cercana está a una milla y media del apartamento de Masha.

Probablemente, Masha ni siquiera se dio cuenta de cuánto aprendió y qué habilidades adquirió, porque estaba preocupada por su comodidad futura, así como por ver la película y comerse una manzana limpia. La próxima vez que surja un problema similar, la joven lo resolverá mucho más rápido. En realidad, Masha no solo estaba devolviendo el mundo a su estado habitual; estaba aprendiendo inductivamente, es decir, a partir de casos específicos, y de manera práctica, es decir, haciendo cosas, en lugar de estudiarlas en detalle y de antemano.

Todo podría haber sido diferente. Supongamos que Masha se sienta por la noche en un sillón y de repente se da cuenta de que no está mental ni físicamente preparada para un atasco en el fregadero. Se apresura a inscribirse en una academia de fontanería, aprendiendo sobre tipos de fregaderos, tuberías y conexiones posibles, la clasificación de problemas de fontanería y opciones para resolverlos. Masha pasa noches sin dormir, memorizando términos y nombres. Quizás incluso esté escribiendo una tesis sobre teoría de tuberías, reflexionando sobre las juntas de goma. Finalmente, tras obtener su certificado, Masha mira orgullosamente la cocina, convencida de que ahora incluso el problema menor con el fregadero se resolverá con un chasquido de dedos. En este escenario, la chica se educó deductivamente, pasando de lo general a lo específico, y se orientó más bien hacia la teoría..

Entonces, ¿cuál de los enfoques es el mejor? En el caso del fregadero y el atasco, el primero, y aquí están las razones:

  1. Si solo importa que el fregadero funcione, entonces es suficiente saber solo lo que concierne a esa área. Cuando Masha se dé cuenta de que le falta conocimiento, encontrará una forma de aprender más.
  2. El conocimiento enciclopédico puede no activarse en una situación real, porque no se ha desarrollado el hábito. Para aprender la secuencia de acciones, tiene sentido no leer sobre ellas, sino ejecutarlas.

Dejemos ya en paz a la pobre Masha y pasemos al proceso de aprendizaje en sí.

Programación: ¿aprender o hacer?

Nosotros tendemos a pensar que, para desarrollarse y convertirse en un experto en un área desconocida, primero hay que ingresar a la universidad o al menos inscribirse en cursos. Escuchamos atentamente lo que nos dicen, realizamos las tareas. Pero cuando finalmente tenemos el codiciado diploma o certificado, nos perdemos instantáneamente, porque no entendimos realmente para qué necesitamos tanta información y cómo aplicarla concretamente. No hay problema si los planes futuros son escribir trabajos académicos y presentarlos en conferencias. De lo contrario, debemos aspirar también a adquirir habilidades, es decir, hacer y seguir haciendo cosas concretas, probar y cometer errores, para recordar durante mucho tiempo cómo no actuar.

Una de las áreas donde la "experiencia" o "ojo de lince" va de la mano con la amplitud de miras es la programación. Si conversas con programadores experimentados, escucharás historias valientes en las que una persona ha estado involucrada en matemáticas/ física/ enseñanza desde joven, y luego se cansó y pasó al backend. ¡También hay programadores sin educación superior! En primer lugar, lo que se valora en un desarrollador no es un certificado o un diploma, sino la cantidad y calidad de programas, scripts y sitios web que ha escrito.

¡"Pero espera!", dirás, "Suena bien, ¡hazlo! No puedo simplemente escribir un programa si no he programado antes! Es importante para mí saber dónde escribir, cómo hablar en general con el compilador en el lenguaje de programación. No es fácil encontrar el teléfono del fontanero en Google."

La amarga verdad también radica en esto. Un aspecto desconocido arrastra a otro, ese a su vez a un tercero, y pronto este proceso se convierte en un espectáculo de ilusionista que sigue sacando pañuelos enlazados y no puede sacar ninguno del cilindro. El proceso, debo decirlo, es desagradable; con el 5.º "pañuelo", ya parece que la profundidad de la ignorancia se asemeja a la Fosa de las Marianas. La alternativa a esto son las mismas conferencias sobre 10 tipos de variables, 3 tipos de ciclos y 150 bibliotecas potencialmente útiles. Triste.

Hyperskill: construimos, construimos y finalmente construimos.

Hemos pensado mucho sobre este problema. Lo que indica claramente cuánto tiempo hemos pensado es la fecha de la última publicación en nuestro blog. Después de muchas discusiones e intentos de integrar un nuevo enfoque en Stepik, terminamos con... otro sitio. Posiblemente ya hayas oído hablar de él como parte de JetBrains Academy. Lo llamamos Hyperskill, lo integramos con aprendizaje basado en proyectos, vinculamos una base de conocimientos sobre Java y contamos con el apoyo del equipo de EduTools. Ahora, más detalles.

Con amor de Stepik: plataforma educativa Hyperskill

Un objetivo específico. Ofrecemos un "menú" de proyectos, es decir, programas que puedes escribir con nuestra ayuda. Entre ellos se encuentran el tres en raya, un asistente personal, blockchain, un motor de búsqueda, etc. Los proyectos constan de 5-6 etapas; el resultado de cada etapa es un programa terminado. "¿Por qué entonces las etapas restantes, si ya lograste todo en la primera?" Gracias por la pregunta. Con cada paso, el programa se vuelve más funcional o rápido. Al principio, el código ocupa 10 líneas, al final puede que no quepa ni en 500.

Un poco de teoría. No es posible sentarse y, sin saber una palabra sobre programación, escribir incluso Hello World. Por eso, en cada etapa del proyecto verás qué fundamentos teóricos necesitas dominar y, lo más importante, dónde encontrarlos. Los fundamentos están también en Hyperskill en la sección 'Mapa del conocimiento' (Knowledge Map). Para la primera fase del proyecto, los estudiantes no están obligados a leer datos de un archivo, y aún así no lo saben. Aprenderán más adelante por su propio desarrollo, o será necesario en la siguiente etapa.

Con amor de Stepik: plataforma educativa Hyperskill

Mapa del conocimiento. En él se puede ver qué temas ya has estudiado y cómo están relacionados entre sí. Abre cualquier tema atractivo. Puedes leerlo rápidamente, pero recomendamos realizar algunas tareas para asegurarte de que la información se ha asentado en tu mente. Al principio, la plataforma te lanzará pruebas, y luego un par de tareas de programación. Si el código compila y pasa las pruebas, compáralo con la solución de referencia (reference solution), a veces esto ayuda a descubrir un método más óptimo de implementación. O simplemente para asegurarte de que tu solución ya es excelente.

Nada superfluo. Esperamos tanto a usuarios 'verdes' como a desarrolladores experimentados. Si ya has escrito programas, no hay problema, no te haremos volver a sumar 2+2 o invertir una línea. Para entrar directamente al nivel adecuado, al registrarte indica con qué ya estás familiarizado y elige un proyecto más desafiante. No temas sobrestimar tus habilidades: siempre puedes volver a un tema olvidado en el mapa del conocimiento.

Con amor de Stepik: plataforma educativa Hyperskill

Herramientas. Es genial escribir pequeños fragmentos de código en una ventana especial en el sitio, pero la verdadera programación comienza trabajando en un entorno de desarrollo (Integrado ataquese desarrollo EAmbiente). Los programadores experimentados no solo saben cómo escribir código, sino también cómo construir interfaces gráficas, ensamblar diferentes archivos en un proyecto, utilizar herramientas de desarrollo adicionales, y parte de estos procesos los asume la IDE. ¿Por qué no aprender también estas habilidades mientras te adentras en la programación? Aquí es donde JetBrains entra en juego con una versión especial de IntelliJ IDEA Community Educational que viene con el complemento EduTools preinstalado. En esta IDE, puedes seguir cursos educativos, verificar los ejercicios resueltos y consultar las sugerencias del proyecto si olvidas algo. No te preocupes si escuchas por primera vez la palabra “complemento” o “IDE”: te contaremos qué es y cómo instalarlo en tu computadora o portátil con el mínimo de dificultades. Entiende la teoría, y luego ve a la IDE y completa la siguiente etapa del proyecto directamente allí.

Plazos. ¡No hay! ¿Quiénes somos nosotros para darte golpes en la cabeza y decirte a qué ritmo debes escribir tu programa? Cuando disfrutas escribir código y quieres completarlo, lo haces hoy o mañana. Dedícate al desarrollo por placer.

Errores. Todos cometen errores, comete uno también tú en alguna etapa del proyecto, y entonces esa etapa no pasará las pruebas automáticas. Bueno, tendrás que averiguar por tu cuenta qué salió mal. Podríamos decirte dónde se encuentra el error, pero ¿acaso eso te enseñaría a escribir código con atención? Lee las sugerencias de la IDEA o el tema teórico sobre Bugs, y cuando el programa finalmente funcione, la oleada de dopamina seguramente no tardará en llegar.

Un resultado visual. Entonces, has completado tu primer proyecto, ¿y ahora qué? ¡Disfruta de los frutos de tu trabajo! Juega al tres en raya con amigos, mientras presumes de tus logros. Sube el proyecto a GitHub para mostrarlo a futuros empleadores, escribe una descripción por ti mismo y menciona allí los conocimientos que aplicaste. Con 4-5 proyectos complejos, tendrás un modesto portafolio listo para un desarrollador principiante.

Oportunidad de crecimiento. Supongamos que miras Hyperskill y no ves un tema importante o un proyecto útil allí. ¡Háznoslo saber! Si tu experiencia es más amplia y rica que el mapa de conocimientos, escríbenos en el formulario. ContribuirNuestro equipo compartirá contigo nuestros propios tips y trucos, así que estaremos encantados de ayudarte a transformar tus conocimientos en contenido útil, comprensible para usuarios de diversas edades y niveles. Quizás incluso te paguemos, pero no es seguro.

Bienvenido: hi.hyperskill.org Ven, mira, prueba, sugiere, elogia y critica. También nosotros estamos aprendiendo a enseñarte.

Fuente: habr.com

Compra un hosting fiable para sitios web con protección contra DDoS, servidores VPS VDS 🔥 Compra un hosting fiable para sitios web con protección contra DDoS, servidores VPS VDS | ProHoster