1. Aprendizaje basado en la práctica

Aprendizaje de Java basado en la práctica

Hay personas que aman CodeGym con todo su corazón y hay personas que lo odian con todo su corazón. Pero incluso el crítico más despiadado de CodeGym reconocerá fácilmente que tiene un número impresionantemente enorme de tareas. Y la razón por la que hay tantas es porque todo el entrenamiento en CodeGym se basa en la práctica.

La programación es una habilidad. Nadie dice, "Sé cómo programar". Cada programador dice, "Puedo programar". Es una habilidad práctica, como nadar o jugar al ajedrez. Y solo puedes cultivar la habilidad a través de la práctica constante.

Es por eso que todo el curso de CodeGym es una secuencia de tareas cada vez más difíciles. Empiezas con tareas muy fáciles y primitivas, y terminas con las más difíciles e interesantes. La dificultad aumenta un poco con cada nivel. Este es precisamente el camino que te llevará a tu objetivo de convertirte en programador.


2. Tipos de tareas

Te esperan muchos tipos diferentes de tareas en CodeGym. Enumeremos los principales:

Tareas en las que escribes un programa

Estas son las tareas más importantes del curso. Su nivel de dificultad varía ampliamente: desde las tareas más simples hasta aquellas en las que tendrás que pensar mucho.

El objetivo de estas tareas es escribir un programa que cumpla con las condiciones y requisitos especificados. La mayoría de las tareas entran en esta categoría. Para la comodidad de los estudiantes de CodeGym, marcamos estas tareas según su nivel de dificultad: FÁCIL, MEDIO, DIFÍCIL y ÉPICO.

Las tareas ÉPICAS a menudo se basan en material de aprendizaje futuro en lecciones que aún no has desbloqueado. Son populares entre los estudiantes de CodeGym que sienten que el curso es demasiado fácil para ellos. Otros simplemente pueden omitir estas tareas y volver a ellas más tarde, cuando ya se hayan familiarizado con la teoría relevante.

Proyectos

La desventaja de las tareas ordinarias es que son pequeñas. Realizadas y olvidadas, como se dice. Por lo tanto, rara vez es posible hacerlas muy interesantes. Pero un programa grande es difícil de probar: simplemente hay demasiadas formas de implementarlo.

Es por eso que CodeGym introdujo tareas de proyecto — tareas grandes divididas en 5-35 subtareas ordinarias. Realizas todas las subtareas secuencialmente y terminas con un programa grande.

Al final de cada nivel después del Nivel 20, hay una tarea de proyecto grande, que se divide en veinte subtareas. También hay otras 6 tareas de juego, que también son proyectos. Y hay una tarea de proyecto para ser aceptado en una pasantía en línea. En total, hay 27 tareas de proyecto en todo el curso.

Cuestionarios

Por mucho tiempo, CodeGym no tuvo pruebas ni cuestionarios. El creador de CodeGym sostiene la opinión de que las pruebas superadas crean la "ilusión de conocimiento" en las personas. La gente realmente no sabe cómo programar, pero están completamente convencidos de lo contrario, ya que pasaron las pruebas. Estas personas dejan de aprender, ya que "ya lo saben todo".

Posteriormente, se agregaron cuestionarios para permitir que los estudiantes de CodeGym identifiquen fácilmente las brechas en su aprendizaje. Es útil para los programadores conocer los matices de las cosas con las que trabajan diariamente en su profesión.


3. Estados de las tareas

Cada tarea en CodeGym tiene un estado especial. El estado puede cambiar a medida que resuelves las tareas.

Cada tarea de CodeGym está asociada con una lección. Inicialmente, no tendrás acceso a ninguna tarea, lo que significa que no podrás resolverlas.

Cuando abres la siguiente lección, todas las tareas de la lección se vuelven disponibles para resolver, es decir, su estado cambia a "Disponible".

Si has enviado una tarea para verificación al menos una vez, entonces su estado cambia de "Disponible" a "En progreso".

Finalmente, cuando hayas cumplido con éxito todos los requisitos y el validador acepte tu envío, el estado de la tarea cambiará a "Completado".

Los usuarios con una suscripción Premium Mentor tienen 3 días más para intentar escribir otras soluciones para la tarea. Después de que expire este tiempo adicional, la tarea pasa al estado "Cerrado" y este estado ya no cambiará.


4. Requisitos

En los primeros años de CodeGym, cuando verificabas cada tarea, obtenías un resultado simple: sí o no. El programa pasaba todas las pruebas o no lo hacía. Super simple, pero no super útil.

A medida que las personas aprenden, es muy importante que entiendan qué están haciendo mal y cómo comenzar a hacerlo bien. En consecuencia, tiene mucho sentido que, si el servidor no acepta tu solución, te preguntarías, bueno, ¿qué está mal con ella?

Para obtener una respuesta a esta pregunta, necesitas que alguien se sumerja en tu solución, la analice y te diga qué está mal en ella. Esto llevaría mucho tiempo y sería costoso. La belleza de la verificación instantánea de tareas es que puedes sentarte a estudiar a las 2 AM y todo funcionará como en cualquier otro momento.

Es por eso que reescribimos todas las tareas en CodeGym. Ahora cada tarea tiene no solo condiciones de tarea, sino también una lista de 5-10 requisitos que detallan las condiciones. Lo más importante es que cada requisito se verifica por separado.

Esto significa que cuando envías una tarea para su verificación hoy, obtendrás una respuesta extendida: junto a cada requisito de tarea, verás un icono especial que indica si tu programa satisface este requisito o no. Ejemplo:

Requisitos

Este enfoque simplifica enormemente la vida mientras trabajas en tareas que requieren escribir varias clases o métodos. Siempre podrás ver qué métodos o clases escribiste correctamente y cuáles no.


5. Recomendaciones

¿Es posible mejorar las tareas de alguna manera? ¿No sería genial si, después de cada verificación, te dijeran qué está exactamente mal en tu programa y te dieran sugerencias sobre cómo solucionarlo? Sí, ¡eso sería genial! Bueno, ¿adivina qué? Hacemos exactamente eso en CodeGym 🙂

Capturamos docenas de errores comunes al verificar cada requisito de tarea. Si tu programa comete un error que el validador conoce, entonces hace una recomendación, una sugerencia sobre cómo puedes solucionar tu solución para que cumpla con todos los requisitos.

Piensa en esto. Ahora hay aproximadamente 1200 tareas en CodeGym, con un total de aproximadamente 10,000 requisitos. Y hay varias recomendaciones asociadas con cada requisito. Algunos requisitos tienen docenas de ellos. El validador de CodeGym está listo para hacer más de 50,000 recomendaciones para soluciones de usuarios.

Además, todo esto sucede mientras se valida tu solución, lo que en la mayoria de casos toma menos de un segundo. Un humano no podria hacerlo tan rapido. Esto es un verdadero mentor virtual.

Recommendations

6. Comunidad

CodeGym se centra en una gran cantidad de práctica, que representa más del 80% de todo el proceso de aprendizaje. Hemos convertido el aprendizaje en una gran y atractiva búsqueda (en realidad, una serie de búsquedas).

Pero todos somos diferentes: algunas personas aprenden rápidamente y otras aprenden más lentamente. Algunas personas encuentran fácil el nuevo material, mientras que otras lo encuentran más difícil. Pero nuestro trabajo es que cada uno de nuestros estudiantes llegue a la meta. Al menos eso es lo que estamos tratando de lograr.

En este mundo, los programadores no son solo unos pocos millones de personas que escriben código en varios idiomas y crean startups en su tiempo libre. Forman una red global, compartiendo constantemente sus conocimientos con otros, dispuestos a responder preguntas y ayudarte a comprender temas complejos.

La comunidad de desarrolladores más grande del mundo, el sitio web StackOverflow, nació de la necesidad de que los programadores aprendieran unos de otros. Su concepto es simple: haces una pregunta y cualquier programador del mundo puede responderla. ¿Conveniente, verdad? 🙂

En CodeGym, creemos que el intercambio de conocimientos entre estudiantes es extremadamente valioso. A medida que los programadores ayudan a otros, ellos mismos crecen. Y no hay mejor manera de entender algo tú mismo que explicárselo a otra persona. Es por eso que hemos creado secciones especiales en nuestro sitio web que están diseñadas para brindar a todos nuestros estudiantes la oportunidad de compartir sus conocimientos y ayudarse mutuamente a aprender.

Entonces, ¿qué haces si te quedas atascado en la última tarea? Buscar una solución ya hecha en Internet es una mala idea. Claro, obtendrás crédito por la tarea si simplemente copias la solución de otra persona o utilizas nuestra solución correcta. Pero no cerrarás tu brecha de conocimiento y eso ciertamente te causará problemas en el futuro.


7. Preguntas sobre tareas

Los requisitos, recomendaciones y el mentor virtual son súper geniales. Pero, ¿qué pasa si el validador todavía no acepta tu solución y no estás seguro de cuál es el problema?

Incluso en este caso, todavía hay una salida. Conoce la sección de Ayuda. En esta sección del sitio web, los estudiantes de CodeGym pueden hacer preguntas sobre tareas, explorar las soluciones de otros y también dar consejos y sugerencias. ¡No está permitido publicar soluciones completas!

Parece muy simple y básico, pero en realidad es bastante sofisticado.

Primero, cada pregunta puede tener una tarea asociada. Esto significa que no tiene sentido revisar todas las preguntas si estás interesado en preguntas sobre una tarea específica. Siempre puedes usar un filtro para ver fácilmente solo las preguntas relacionadas con la tarea que te interesa. Simplemente ingresa el nombre de la tarea en la barra de búsqueda:

Preguntas sobre tareas

En segundo lugar, si haces clic en el botón "Ayuda de la comunidad" mientras resuelves una tarea, serás llevado de inmediato a la sección de Ayuda, donde verás solo preguntas sobre la tarea en la que estás trabajando. Si tu solución no pasa la verificación de la tarea, las preguntas se ordenan de manera útil: las principales preguntas serán sobre los requisitos insatisfechos que hicieron que tu solución fallara.

Botón de ayuda

Tercero, el complemento IntelliJ IDEA ofrece una funcionalidad similar. Puedes hacer clic en el botón "Ayuda" o presionar la combinación de teclas Ctrl+Alt+W, lo que abrirá de inmediato la sección de Ayuda en tu navegador. Y, por supuesto, el filtro mostrará solo preguntas sobre la tarea que estás resolviendo en IntelliJ IDEA.

IntelliJ IDEA help

8. Crear una pregunta

Si no encuentras un buen análisis de tu error en la sección de Ayuda, siempre puedes crear tu propia pregunta. Hacerlo es bastante fácil: solo necesitas hacer clic en el botón "Hacer una pregunta" y completar los campos requeridos:

Crear una pregunta

A diferencia de muchos otros servicios, como StackOverflow, Code Ranch, etc., CodeGym no requiere que incluyas toda la información importante en el título de la pregunta. Escribe tu pregunta como quieras.

Por cierto, no necesitas copiar tu código de WebIDE o IntelliJ IDEA y agregarlo a tu pregunta. Cuando creas una pregunta sobre una tarea, el código de tu solución junto con los estados de los diversos requisitos de la tarea se agregan automáticamente a ella, es decir, qué requisitos cumple tu solución actualmente y cuáles no.

Crear una pregunta 2

Esto significa que otros estudiantes de CodeGym ven de inmediato toda la información relevante sobre la solución del autor de la pregunta, lo que facilita mucho brindar buenos consejos.


9. Código de la solución

En muchos sitios, al crear una pregunta sobre código, necesitas adjuntar un archivo con los archivos del programa a la pregunta o agregar todos estos archivos al texto de la pregunta en sí. El resultado es un gran desorden en el que la gente no está dispuesta o no puede profundizar.

Hacer una pregunta de manera rápida y eficiente es todo un arte. En sitios web regulares, tendrás que pasar media hora formulando tu pregunta o aceptar el hecho de que nadie te va a responder. Una buena pregunta sobre una tarea debe contener la siguiente información:

  • Enlace a la tarea que el autor está resolviendo
  • Las condiciones de la tarea para que otros no necesiten buscarlas en otro lugar
  • Código de la solución, que podría incluir muchos archivos
  • Estado de cada requisito de la tarea, es decir, qué funciona actualmente y qué no.
  • Texto de la pregunta: esto suele ser bastante claro: mi solución no funciona y no estoy seguro de por qué.

CodeGym muestra esta información utilizando un widget especial que es muy similar al widget WebIDE. Después de todo, ya está diseñado para mostrar toda esa información. Bueno, tal vez con la excepción de la pregunta en sí.

Código de la solución

De hecho, escribimos un widget especial solo para hacer que sea conveniente para ti estudiar las soluciones de otros usuarios. Y para que sea fácil y agradable para otros usuarios examinar tus soluciones en las preguntas que hagas.