¡Bienvenidos al tutorial de karel! El objetivo de este tutorial es acompañarte en el viaje de iniciación como programador. La edad que yo recomiendo para comenzar con este curso es de los 10 años en adelante (algo equivalente al quinto año de primaria). En realidad la edad no importa tanto mientras existan las ganas de aprender. Esperamos que este curso te inicialice como un experto de la programación.

Este curso está escrito por un ex-olímpico de la Olimpiada Mexicana de Informática, así que si estás en México, mi recomendación es que te acerques a tus profesores para que te ayuden a participar, si eres un profesor entonces podrías intentar indagar un poco en el sitio oficial de la olimpiada para que ellos te ayuden a ponerte en contacto con el delegado estatal. Si no eres una persona que vive en México, entonces supongo que puedes intentar investigar un poco acerca de procesos de olimpiada en tu país, estoy seguro que existe un proceso.

Olimpiada mexicana de informatica Logotipo de la olimpiada mexicana de informática.

Para los estudiantes que buscan aprender a una edad temprana

Aprender a programar es algo complicado a esta edad, pues existen muchas distracciones en el mundo. Lo que yo hice en mi momento (tenía 16 años cuando aprendí) fue pensar que Karel era un videojuego y que cada problema que intentaba resolver era un nivel. Siempre buscaba formas de resolverlo, le dedicaba más de 3 horas al día porque de verdad me gustaba. Dejé de jugar videojuegos porque de verdad lo disfrutaba.

Aprender a programar Karel a niveles muy avanzado me ayudó a desarrollar una forma de pensar que me permitía diseñar "máquinas" que resolvían problemas. ¿Alguna vez has visto videos en internet donde colocan miles de piezas de dominó (y quizá hasta otros objetos) y que con tan sólo tirar la ficha de la orilla todo se cae en una forma ordenada? Este tipo de construcciones tienden a ser muy divertidas de ver, pero son muy difíciles de construir. El esfuerzo necesario es un precio justo por el espectáculo visual que obtienes como resultado. Karel de alguna forma es algo muy similar, pues terminas haciendo una cadena de instrucciones que resuelven un problema.

Vas a necesitar mucha paciencia, en algunos momentos vas a dudar de tus capacidades, es normal sentirte frustrado cuando llevas horas intentando resolver un problema. Otros días vas a sentir que eres el mejor y podrás resolver varios problemas de forma continua.

Lo más importante es que siempre lo disfrutes, si hacer esto no te da más felicidad que ver una serie o jugar videojuegos (aunque también está bien que te ganen otras cosas en ratos), entonces quizá programar no sea lo que te apasione, lo cual también está bien.

Para los que son estudiantes de preparatoria o universidad

Karel es un buen punto de inicio, quizá hayas escuchado que existen otros lenguajes como python que son más útiles. La verdad no voy a negar que Karel no es más que una herramienta didáctica, probablemente no puedas hacer ni la décima parte de las cosas que podrías hacer con otros lenguajes de programación que sí son diseñados para hacer cosas de verdad.

Al igual que a los más peques, te repito que si de verdad buscas desarrollarte como un desarrollador de software, debes de estar seguro de que es lo que te apasiona. Mientras estaba estudiando mi carrera universitaria, en más de una ocasión preferí quedarme en casa a programar y aprender cosas nuevas que salir con mis amigos durante un fin de semana. La felicidad que me produce poder trabajar en un escribir código es única. Es similar a cuando estas viendo una serie o leyendo un libro y estás cerca del final, quieres seguir ahí para conocer el desenlace. Si te sientes así, entonces debes estar tranquilo de que podrás dedicarte al desarrollo de software.

Por otro lado, si no te apasiona tanto esto de la programación, pero es algo que necesitas aprender (estoy seguro que en el futuro no muy lejano, todos los profesionistas van necesitar saber fundamentos de programación) intenta tomártelo con calma, pues es no es una actividad sencilla.

Para los profesores que buscan enseñar a sus alumnos a programar

Si eres un profesor que no estudió una carrera afín a la computación, ciencias exactas o de tecnologías de la información, déjame felicitarte, pues en mi experiencia, la mayoría de los profesores no suelen adentrarse en este mundo y toman otro papel (que más adelante también les daré un mensaje). De igual forma, tómatelo con calma. Intenta trabajar de la mano con tus alumnos y ayúdalos en lo que necesiten. Será normal que en algún momento un chico resuelva un problema que tenías mucho tiempo intentando resolver, no te sientas mal, los más pequeños nacieron con la tecnología a su alcance. Mejor apóyate en el para aprender, se humilde y pídele que te explique como lo resolvió.

Si lo has intentado muchas veces no te rindas, salvo que consideres que en lugar de ayudar a tus alumnos los estás retrasando. Si ese es el caso, entonces el siguiente mensaje es para ti.

Para los profesores que no necesariamente quieren aprender a programar, pero quieren apoyar a sus alumnos

Mi experiencia me ha permitido ver 2 tipos de profesores que llevan al éxito a sus alumnos. Los del grupo A son los que son muy buenos programando y logran transmitir todas sus habilidades y experiencia a sus alumnos. Por lo regular estos profesores fueron exolímpicos y conocen exactamente lo que es estar en una olimpiada de programación. Pueden ser profesionistas del software que le han invertido muchas horas de su vida a programar.

El grupo B es el más importante, y sí te consideras que eres del grupo A, también es muy importante que pertenezcas al grupo B (puedes pertenecer a ambos). Este es el grupo de los profesores que saben motivar a sus alumnos y que aunque pueden o no saber lo que es programar, son capaces de hacer que sus alumnos alcancen el éxito.

Para que tus alumnos exitosos puedan dedicarle más tiempo a la olimpiada, busca como conseguirles tiempo libre, si tienen un examen o una entrega importante, aprende a negociar con los otros profesores el tiempo de tus alumnos, demuéstrales que no está perdiendo el tiempo, muéstrales resultados.

Si tus alumnos no tienen los recursos necesarios para una computadora o incluso para asistir a los eventos, busca recursos en tu escuela. Si necesitas alguna carta para que te den el dinero, habla con los organizadores de la olimpiada, ellos deberían poder darte una carta para que la entregues a tu director y consigas el apoyo.

Tu objetivo es que tus alumnos logren su objetivo, piensa con eso como la prioridad y verás a tus alumnos triunfar.

¿Cómo utilizar este tutorial?

Aprender a programar es un camino que no tiene fin, no existe una persona en el mundo que sepa todo sobre programación, no existe un punto donde no puedas ir más allá. Lo que haré es dejarte un conjunto de "pistas", como sí de "Hansel & Gretel" se tratara para guiarte en le camino de la programación.

Te voy a intentar explicar cómo entiendo las cosas, te voy a hacer las preguntas que en su momento me hice a mi mismo para poder llegar a las respuestas que me hicieron aprenderlo. En algunos casos te voy a mostrar las implementaciones de las soluciones (código), en otras solo te voy a explicar cómo lo hice, en ocasiones te voy a dar pistas de la solución y en en otros momentos, solo te voy a dejar los problemas para que tu los resuelvas.

Contenidos

La lista de entradas que conforman el curso de Karel podrás encontrar adelante (aun está en construcción, por lo que si el enlace no existe, es porque no lo hemos agregado):