Vitaly es el Gerente de Marketing Digital en CodeMonkey. Su maestría en Informática, combinada con su experiencia como padre de dos hijos, le permite crear contenido enfocado en la formación en programación.
Una guía para niños: cómo encontrar errores comunes en el lenguaje de codificación
Cuando sus hijos están aprendiendo a codificar por primera vez, sin importar el idioma que escriban, por supuesto que van a cometer errores. Esto es solo una parte natural del aprendizaje y es esencial experimentarlo para que su hijo mejore. Sin embargo, si bien puede ser fácil detectar errores en los lenguajes verbales, en la codificación no lo es porque pueden ser un poco más complicados.
Cuando estás con tus hijos y estás tratando de ayudarlos a descubrir qué está mal, obviamente esto es un trabajo muy duro. Si no sabe codificar por sí mismo, entonces puede ser aún más complicado porque ¿qué es lo que está buscando?
No se preocupe, no necesita desanimarse por lo complicado que es la codificación y la sensación, y no necesita sentir que no puede ayudar a sus hijos a ser los mejores programadores que puedan ser. Hay algunos trucos y consejos que pueden ayudar.
En la guía de hoy, te explicaré algunas de las formas clave de encontrar errores comunes en la codificación de tu hijo, ayudándolos a identificar fácilmente dónde se equivocaron y qué necesitan mejorar. En última instancia, ¡esto ayudará a su hijo a convertirse en un codificador exitoso!
Trabajando en rangos
Entonces, sus hijos han escrito un código, pero algo no funciona. Aparecen errores, el código sigue ejecutándose infinitamente y termina con un resultado final como debería ser, y pequeños errores como este. Una de las primeras cosas que querrá buscar es un error conocido como 'bucle infinito'.
Los bucles infinitos son quizás el error más común que ocurre porque literalmente solo significa que el programa o script seguirá ejecutándose para siempre, de ahí el nombre. Cuando un programa no termina, nunca terminará, y aquí es donde ocurren los errores.
Veamos esto con un poco más de detalle.
Bucles infinitos al codificar con Java
Digamos que su hijo escribe un pequeño fragmento de código donde puede ejecutar el programa para imprimir los números del uno al nueve. Un ejemplo de codificación realmente simple de esto puede parecer;
Para (int índice = 0; índice <10; índice–)
{
System.out.println (índice);
}
De buenas a primeras, tenemos un error. ¿Puede hacer que su hijo lo detecte? Déjame darte una pista. La salida del código una vez que se ejecute se verá así;
índice = 0
¿El índice es <10? sí
Imprimir índice 0
índice = índice - 1 índice = -1
¿El índice es <10? sí
Índice de impresión -1
índice = índice - 1 índice = -2
¿El índice es <10? sí
Índice de impresión -2
índice = índice - 1 índice = -3
Etcétera.
Mira el resultado final. Dice el índice = -1, -2, etc. Este es un ciclo infinito porque el código nunca será mayor o igual a diez. También estará en la cifra menos, por lo que seguirá imprimiendo números hasta que desactive el código usted mismo porque nunca llegará al punto de ser +10, solo -10.
Para arreglar algo como esto en JavaScript, su código original deberá verse así;
Para (int índice = 0; índice <10; índice ++)
{
System.out.println (índice);
}
Cuando revise el código de su hijo, busque siempre pequeños detalles como los signos más y menos en el lugar equivocado. La mejor forma de comprobarlo es ejecutar el programa y ver qué sucede. Si hay números y matemáticas involucradas en el código, entonces asegúrese de que el código esté usando el rango correcto, como en el ejemplo anterior.
Codificar en un lenguaje complejo como JavaScript puede ser difícil porque los detalles, como tener un signo más o menos, pueden marcar una gran diferencia. Si se siente cómodo resolviendo estos errores, continúe y lo detectará a tiempo. Sin embargo, puede resultar útil comenzar con un lenguaje de codificación más simple, como Scratch.
Cómo se resuelve el error de bucle infinito en Scratch
Si bien los bucles infinitos son en su mayoría problemáticos en lenguajes como JavaScript, donde necesitas estar muy concentrado con tu precisión, te sorprenderá saber que en realidad pueden ser beneficiosos en algunos casos. Mira el lenguaje Scratch, por ejemplo.
Hay una función dentro del lenguaje Scratch conocida como 'off by one'.
Por ejemplo, digamos que tiene un pequeño personaje de dibujos animados en pantalla que saluda a los miembros de la familia. La codificación es 'Hola FamilyName', en la que 'FamilyName' se reemplaza con texto de una lista de apellidos que ha escrito antes. Ejecuta el código y la caricatura dice 'Hola mamá', 'Hola papá', etc.
Si falta un apellido en la lista, lo inteligente de Scratch es que automáticamente manejará este error.
Entonces, digamos que ejecuta el programa cuatro veces, pero su lista de apellidos solo tiene tres entradas (digamos mamá, papá y Ben), la cuarta vez que se ejecuta el código, omitirá el FamilyName porque no hay ninguna entrada, y simplemente Di hola'!
Aprender un idioma como Scratch es fantástico porque omite estos errores y permite que sus hijos se centren en los aspectos fundamentales de la codificación, en lugar de en los detalles precisos que se pueden enseñar más adelante.
Haciendo las cosas un poco más intensas con Python
Python es quizás el lenguaje más complicado de los lenguajes de codificación de los que hemos hablado anteriormente y sería mucho más fácil si usara la regla 'off by one' como lo hace Scratch, pero no lo hace.
Digamos que escribe un código similar al de Scratch, pero en Python, se parece un poco a esto;
family = ['Papá', 'Mamá', 'Ben']
para x en el rango (1, 3):
print ('Hola' + familia [x])
Tenga en cuenta que tiene un error. La entrada 'Papá' en este código no se imprimirá porque está comenzando el rango en '1', en lugar de '0', por lo que aquí es donde ocurrirá su error. Debería escribir lo siguiente para que el código se ejecute correctamente.
family = ['Papá', 'Mamá', 'Ben']
para x en el rango (0, 3):
print ('Hola' + familia [x])
Cuando escribe código, ya sea en Scratch, JavaScript o Python, quizás lo más importante en lo que debe pensar son los rangos que usa ese lenguaje de codificación. Si su hijo está aprendiendo varios idiomas, los rangos serán diferentes, como ya hemos hablado.
Scratch se cubrirá automáticamente al omitir el código que no funciona, Python inicia su rango en 0 y Javascript usará múltiples rangos, dependiendo de lo que establezca.
Entonces, ¿qué crees que pasaría si escribieras un código Python como este?
family = ['Papá', 'Mamá', 'Ben']
para x en el rango (0, 4):
print ('Hola' + familia [x])
Bueno, obtendrías algo como esto;
Hola papá
Hola mamá
hola Ben
Rastreo (llamadas recientes más última):
Archivo "filename.py", línea 4, en
print ('Hola') + familia [x]
IndexError: índice de lista fuera de rango
Python no usa una función 'off by one', porque family4 no existe.
Conclusión
Cuando enseñe a sus hijos a codificar, no se deje intimidar por lo desafiante que puede ser el error de uno solo, especialmente porque los rangos cambiarán según el idioma en el que estén escribiendo. Solo tómese su tiempo para aprender las diferencias y se convertirá en una segunda naturaleza en muy poco tiempo.
SOBRE EL AUTOR
Kristin Herman es gerente de proyectos tecnológicos en Académico. Le gusta enseñar a los niños a codificar y ayudar a más personas a ingresar en los campos de aprendizaje STEM.
Building a K-12 computer science curriculum is no longer a visionary initiative that should be done by a few innovative districts – it has become essential.
Manténgase al día sobre las últimas noticias Y MÁS INFORMACIÓN SOBRE CODIFICACIÓN PARA NIÑOS.
Usamos cookies en nuestro sitio web para brindarle la experiencia más relevante recordando sus preferencias y visitas. Al hacer clic en "Aceptar", acepta el uso de TODAS las cookies. Sin embargo, puede visitar la Configuración de cookies para proporcionar un consentimiento controlado.
Política de privacidad y cookies
Resumen de privacidad
Este sitio web utiliza cookies para mejorar su experiencia mientras navega por el sitio web. Fuera de estas cookies, las cookies que se clasifican como necesarias se almacenan en su navegador, ya que son esenciales para el funcionamiento de las funcionalidades básicas del sitio web. También utilizamos cookies de terceros que nos ayudan a analizar y comprender cómo utiliza este sitio web. Estas cookies se almacenarán en su navegador solo con su consentimiento. También tiene la opción de optar por no recibir estas cookies. Pero la exclusión voluntaria de algunas de estas cookies puede afectar su experiencia de navegación.
Las cookies necesarias son absolutamente esenciales para que el sitio web funcione correctamente. Esta categoría solo incluye cookies que garantizan funcionalidades básicas y características de seguridad del sitio web. Estas cookies no almacenan ninguna información personal.
Galleta
Tipo
Duración
Descripción
_codemonkey_session_rails_4
1
1 año
_Georgia
persistente
2 años
Esta cookie es instalada por Google Analytics. La cookie se utiliza para calcular los datos de visitantes, sesiones y campañas y realizar un seguimiento del uso del sitio para el informe de análisis del sitio. Las cookies almacenan información de forma anónima y asignan un número generado aleatoriamente para identificar visitantes únicos.
cookielawinfo-checkbox-publicidad
persistente
11 meses
La cookie se establece mediante el consentimiento de cookies del RGPD para registrar el consentimiento del usuario para las cookies en la categoría "Publicidad".
cookielawinfo-checkbox-analytics
persistente
11 meses
Estas cookies están establecidas por el complemento de WordPress de consentimiento de cookies de GDPR. La cookie se utiliza para recordar el consentimiento del usuario para las cookies en la categoría "Análisis".
cookielawinfo-checkbox-funcional
persistente
11 meses
cookielawinfo-checkbox-required
persistente
11 meses
Esta cookie está configurada por el complemento de consentimiento de cookies de GDPR. Las cookies se utilizan para almacenar el consentimiento del usuario para las cookies en la categoría "Necesarias".
cookielawinfo-checkbox-no necesario
0
11 meses
Esta cookie está configurada por el complemento de consentimiento de cookies de GDPR. Las cookies se utilizan para almacenar el consentimiento del usuario para las cookies en la categoría "No necesarias".
cookielawinfo-checkbox-otro
persistente
11 meses
cookielawinfo-checkbox-performance
persistente
11 meses
Esta cookie se utiliza para realizar un seguimiento de las cookies que el usuario ha aprobado para este sitio.
JSESSIONID
1
1 año
Utilizado por sitios escritos en JSP. Cookies de sesión de plataforma de propósito general que se utilizan para mantener el estado de los usuarios en las solicitudes de página.
view_cookie_policy
persistente
1 hora
La cookie está configurada por el complemento de consentimiento de cookies de GDPR y se utiliza para almacenar si el usuario ha dado su consentimiento o no para el uso de cookies. No almacena ningún dato personal.
XSRF-TOKEN
persistente
1 año
La cookie la establece la plataforma de creación de sitios web de Wix en el sitio web de Wix. La cookie se utiliza con fines de seguridad.
Las cookies que pueden no ser particularmente necesarias para que el sitio web funcione y se utilizan específicamente para recopilar datos personales del usuario a través de análisis, anuncios y otros contenidos integrados se denominan cookies no necesarias. Es obligatorio obtener el consentimiento del usuario antes de ejecutar estas cookies en su sitio web.
Galleta
Tipo
Duración
Descripción
rlas3
persistente
11 meses
La cookie la establece rlcdn.com. La cookie se utiliza para mostrar anuncios relevantes al visitante, así como para limitar el tiempo que el visitante ve una y también para medir la efectividad de la campaña.
UserMatchHistory
persistente
1 mes
Linkedin: se utiliza para rastrear a los visitantes en múltiples sitios web, con el fin de presentar anuncios relevantes según las preferencias del visitante.
Google Analytics establece esta cookie y se utiliza para distinguir usuarios y sesiones. La cookie se crea cuando se ejecuta la biblioteca JavaScript y no existen cookies __utma. La cookie se actualiza cada vez que se envían datos a Google Analytics.
__utmb
persistente
30 minutos
Google Analytics establece la cookie. La cookie se utiliza para determinar nuevas sesiones / visitas. La cookie se crea cuando se ejecuta la biblioteca JavaScript y no existen cookies __utma. La cookie se actualiza cada vez que se envían datos a Google Analytics.
__utmc
persistente
1 año
Google Analytics establece la cookie y se elimina cuando el usuario cierra el navegador. La cookie no es utilizada por ga.js. La cookie se utiliza para permitir la interoperabilidad con urchin.js, que es una versión anterior de Google Analytics y se utiliza junto con la cookie __utmb para determinar nuevas sesiones / visitas.
__utmt
persistente
10 minutos
Google Analytics establece la cookie y se utiliza para acelerar la tasa de solicitud.
__utmz
persistente
6 meses
Google Analytics establece esta cookie y se utiliza para almacenar la fuente de tráfico o la campaña a través de la cual el visitante llegó a su sitio.
_revólver
persistente
1 minuto
Google Universal Analytics instala estas cookies para acelerar la tasa de solicitud y limitar la recopilación de datos en sitios de alto tráfico.
YSC
1
1 año
Estas cookies son establecidas por Youtube y se utilizan para rastrear las vistas de videos incrustados.
Google Analytics utiliza esta cookie para comprender la interacción del usuario con el sitio web.
_gid
persistente
1 día
Esta cookie es instalada por Google Analytics. La cookie se utiliza para almacenar información sobre cómo los visitantes usan un sitio web y ayuda a crear un informe analítico de cómo está funcionando el sitio web. Los datos recopilados, incluido el número de visitantes, la fuente de donde provienen y las páginas, se muestran de forma anónima.
GPS
persistente
30 minutos
Esta cookie la establece Youtube y registra una identificación única para rastrear a los usuarios según su ubicación geográfica.
SEÑOR
persistente
5 meses
Esta cookie se utiliza para medir el uso del sitio web con fines analíticos.
MUIDB
1
1 año
MicroSoft utiliza esta cookie y recopila datos sobre los usuarios que visitan varios sitios web. Estos datos se utilizan para analizar la eficacia de los anuncios en sitios web.
Facebook establece esta cookie para entregar publicidad cuando están en Facebook o en una plataforma digital impulsada por publicidad de Facebook después de visitar este sitio web.
bscookie
1
2 años
Esta cookie es una cookie de identificación del navegador establecida por los botones de compartir vinculados y las etiquetas publicitarias.
fr
1
3 meses
Facebook configura la cookie para mostrar anuncios relevantes a los usuarios y medir y mejorar los anuncios. La cookie también rastrea el comportamiento del usuario en la web en sitios que tienen píxeles de Facebook o complementos sociales de Facebook.
IDE
1
2 años
Utilizado por Google DoubleClick y almacena información sobre cómo el usuario utiliza el sitio web y cualquier otro anuncio antes de visitar el sitio web. Se utiliza para presentar a los usuarios anuncios que son relevantes para ellos de acuerdo con el perfil del usuario.
MUID
persistente
1 año
Usado por Microsoft como identificador único. La cookie se establece mediante scripts integrados de Microsoft. El propósito de esta cookie es sincronizar la identificación en muchos dominios de Microsoft diferentes para permitir el seguimiento de usuarios.
pxrc
persistente
2 meses
El propósito de la cookie es identificar a un visitante para ofrecer publicidad relevante.
rlas3
persistente
11 meses
La cookie la establece rlcdn.com. La cookie se utiliza para mostrar anuncios relevantes al visitante, así como para limitar el tiempo que el visitante ve una y también para medir la efectividad de la campaña.
skimCSP
persistente
11 meses
SkimResources establece esta cookie. La cookie se utiliza para registrar datos sobre el visitante con el fin de optimizar la relevancia de las ventajas que se ofrecen a los usuarios.
TapAd_DID
persistente
2 meses
La cookie la coloca tapad.com. El propósito de la cookie es rastrear a los usuarios en todos los dispositivos para permitir publicidad dirigida
TapAd_TS
persistente
2 meses
Tapad.com establece la cookie. El propósito de la cookie es rastrear a los usuarios en todos los dispositivos para permitir publicidad dirigida.
TDCPM
persistente
1 año
El servicio CloudFare configura la cookie para almacenar una identificación única para identificar un dispositivo de usuarios recurrentes que luego se utiliza para publicidad dirigida.
TDID
persistente
1 año
El servicio CloudFare configura la cookie para almacenar una identificación única para identificar un dispositivo de usuarios recurrentes que luego se utiliza para publicidad dirigida.
test_cookie
persistente
15 minutos
Esta cookie la establece doubleclick.net. El propósito de la cookie es determinar si el navegador de los usuarios admite cookies.
VISITOR_INFO1_LIVE
1
5 meses
Youtube establece esta cookie. Se utiliza para rastrear la información de los videos de YouTube incrustados en un sitio web.
Esta cookie está configurada por linkedIn. El propósito de la cookie es habilitar las funcionalidades de LinkedIn en la página.
lang
persistente
1 año
Esta cookie se utiliza para almacenar las preferencias de idioma de un usuario para ofrecer contenido en ese idioma almacenado la próxima vez que el usuario visite el sitio web.
lidc
persistente
1 día
LinkedIn establece esta cookie y la utiliza para el enrutamiento.