Para la mayoría de las personas aprender a programar no parece inicialmente ni sencillo, ni mucho menos atractivo. Cuando alguien mira por primera vez el código escrito de un programa sólo ve un montón de números y signos que parece imposible entender.

El problema de la sintaxis es el escollo más importante cuando aprendemos un nuevo lenguaje de programación, porque hasta que la dominamos cometemos continuos errores de escritura, a pesar de que tengamos bien claro y definido en la mente el programa que vamos a escribir.

Programar los ordenadores de mediados del siglo pasado era algo realmente complejo, porque se daba lógicamente más importancia a que los “torpes” ordenadores entendieran las instrucciones que a que a los humanos nos resultara fácil escribírselas.  Cuanto más parecido al lenguaje de ceros y unos que utilizan internamente los ordenadores fuera el lenguaje que se utilizaba para darle las instrucciones, más trabajo le ahorraríamos al ordenador.

Con el paso del tiempo los fundamentos y la lógica de la programación en líneas generales se han mantenido , pero los lenguajes se han ido acercando más a la comprensión humana, para hacer más fácil su utilización, y mejorar nuestra productividad. Así pues los ordenadores siguen “pensando y hablando” entre ellos en el lenguaje de antaño, pero además saben interpretar en tiempo real lo que les queremos decir cuando utilizamos estos nuevos lenguajes de alto nivel, “más humanos”.

imagen scratch

Para evitar esta complicación inicial y atraer así al mundo de la programación a los más pequeños, y a los que no lo son tanto,  el MIT Media Lab viene desarrollando desde 2003 la herramienta de programación Scratch, que seguramente ya conoces si estás leyendo este blog.  Scratch permite a cualquiera iniciarse en el mundo de la programación, sólo hay que conectarse con un navegador de internet a la página de Scratch, darse de alta como usuario, y comenzar a probar y a experimentar. Y es gratis.

En lugar de tener que escribir en un lenguaje complejo, en Scratch utilizaremos bloques de instrucciones que uniremos entre sí, y que están agrupados en diferentes colores, dependiendo de su función.

Scratch es un proyecto muy serio y muy elaborado, diseñado especialmente para niños a partir de seis o siete años, y que tiene en cuenta las necesidades pedagógicas de esas edades. Su estética recuerda al famoso lenguaje LOGO que el visionario Seymour Papert creara con el mismo propósito a finales de los setenta, pero Scratch incorpora además otros muchos recursos que lo hacen más atractivo, y que Papert no podía permitirse utilizar en los limitados ordenadores de aquellos años.

Hay muchísimos recursos gratuitos en internet, preparados por los propios usuarios de la comunidad Scratch, que enseñan a utilizar esta herramienta, y que proponen ejercicios y experimentos interesantes para diferentes niveles de experiencia. Nosotros también podremos compartir nuestras creaciones en Scratch con el resto del mundo a través de la página del MIT Media Lab.

Puede parecer que no haya mucha relación entre los proyectos hechos con Scratch y el código de los programas que utilizamos en la oficina, pero la lógica que se aplica en ambos casos es muy parecida. Es cierto que Scratch no es un lenguaje de programación, y que tiene limitaciones obvias para hacer aplicaciones profesionales, pero debemos saber que incluso en Harvard o en Berkeley utilizan herramientas de bloques en los cursos de iniciación a la programación pensados para adultos.

 

A pesar de que cada vez es más evidente que va a haber a muy corto plazo una carencia importante de trabajadores en el mercado laboral relacionado con el desarrollo de aplicaciones, el número de personas que inician estudios de programación sigue en descenso, como ocurre en general con todos los estudios STEM.

El hecho de que la demanda de trabajadores sea mayor que la oferta implica que los sueldos serán más atractivos que la media del mercado. Sin embargo, los estudiantes no se sienten atraídos por este anzuelo. Y parece que la causa hay que buscarla en la manera de plantear el asunto desde la infancia en el sistema educativo.

Todos en algún momento, durante nuestra época de estudiantes de primaria y secundaria, nos hemos planteado: “¿Para qué me va a servir esto en la vida?”, refiriéndonos primero a las fracciones, luego a los polinomios, las ecuaciones o finalmente los logaritmos y las integrales.

Desde luego es fácil decirlo, pero hay que enfocar desde el colegio el aprendizaje matemático desde un punto de vista más práctico, intentando partir de una necesidad práctica de la vida diaria del alumno, intentando que el alumno se interese por un concepto que en principio es demasiado abstracto y ajeno a sus intereses.

Una vez que el alumno entienda los primeros conceptos y su aplicación, y se ilusione con ello, aceptará mejor el esfuerzo que le supondrá la práctica necesaria para alcanzar el dominio de cada concepto. Y después, podrá comprender lo interesante que puede resultarle un ordenador para ayudarle a enfocar y resolver dichos problemas a través de la programación.

No se trata de que aprenda a programar sin un objetivo claro, sino de que aprenda a enfocar los problemas, a aplicar el razonamiento computacional para resolverlos, a definir un modelo que pueda plasmar en un programa de ordenador. A partir de ese momento no sólo no olvidará el concepto que ha aprendido, sino que su cajón de recursos irá aumentando sobre una base cada vez más sólida. Y esta capacidad le permitirá aplicar este razonamiento estructurado para resolver los problemas y afrontar retos de mayor complejidad, lo cual hará que pierda el miedo y pueda llegar a sentir una atracción más profunda por las disciplinas de ciencias, y también por la programación, que no tiene por qué ser en absoluto considerada una materia asociada exclusivamente a las ciencias.

En todo caso, la aplicación del razonamiento computacional sin duda le será muy útil en el futuro, sea cual sea el entorno laboral en el que quiera desarrollar su carrera.

Llevará un tiempo conseguir que el sistema educativo en general asuma la importancia de estas ideas, pero cada vez son más los docentes que comprenden el interés de este nuevo enfoque. Y de cada uno de ellos más que de nadie depende que se vaya abriendo este camino.

 

Cómo parte de la iniciativa “This Works”  impulsada por Ashoka España, el día 17 de marzo se presentó en el programa “Para Todos La 2” de RTVE la iniciativa CoderDojo. Se explicó la importancia de este movimiento libre y gratuito para impulsar las vocaciones tecnológicas entre los más jóvenes,  con objeto de que estén preparados para un futuro profesional en el que la capacidad para crear y trabajar con la tecnología será una competencia tan fundamental como lo es ahora el idioma inglés.

Pulsa en el enlace para acceder a la página del programa.

Enlace al vídeo del programa

 

¡Queridos mentores y ninjas de CoderDojo, y seguidores de esta iniciativa!

Después de hablar con CoderDojo Irlanda para saber con qué apoyo contábamos de su parte, y de muchas horas verificando qué Dojos había activos en España, de contactar con ellos, de recoger sus inquietudes, de pensar, repensar, y elaborar una introducción que no se alargara más de tres minutos y mostrara las ideas y la filosofía de CoderDojo, al final salió esto que os dejo como enlaces a Youtube. Espero que se vean representadas las ideas de todos los que dedicamos horas de nuestros fines de semana en algo en lo que creemos.

Me permito agradecer a Ashoka España en nombre de la comunidad CoderDojo por la oportunidad de mostrar la iniciativa en un lugar tan interesante, y ante tanta gente. Y también a Antonella Broglia y a cada uno del resto de miembros de la Fundación, por su  apoyo durante el evento, que fue un completo éxito de organización y de asistencia.

No quería dejar pasar más tiempo sin poner esta entrada en el blog, pero creo que era interesante esperar a que estuviera disponible el vídeo, para poder adjuntarlo.

 

¡Saludos a todos!

Los ordenadores están por todas partes y los utilizamos continuamente, a pesar de que no los identifiquemos como tal. En poco tiempo los llevaremos en la ropa, en el cuerpo, y estarán conectados entre sí. Cada vez más la tecnología formará parte de nuestras vidas, tanto individual, como social, y profesionalmente. La programación, la robótica y la inteligencia artificial serán una extensión de las personas. Por este motivo la industria del desarrollo de aplicaciones jugará un papel cada vez más importante en la economía a nivel global.

Harán falta muchos programadores e ingenieros de software para afrontar este nuevo escenario. Sin embargo, se prevé que en 2020 habrá personal formado para cubrir solamente el treinta por ciento de los puestos de trabajo ofertados para cubrir las necesidades de la industria del desarrollo de software. Actualmente en Silicon Valley, al sur de San Francisco, el noventa y cinco por ciento de los trabajadores de las grandes empresas tecnológicas son reclutados más allá del área de San Francisco. La mayoría de ellos provienen de fuera de los Estados Unidos.

Por otra parte, muchos de los trabajos repetitivos, mecánicos y rutinarios serán con el paso del tiempo desempeñados por máquinas. Quedarán reservados para las personas aquellos trabajos que requieran de pensamiento crítico y analítico, para tomar decisiones más trascendentales. Es difícil programar este tipo de comportamiento en un ordenador, al menos de momento. 😉

Es necesario fomentar entre los niños y adolescentes el interés por la programación y por los estudios de ciencias en general. No se trata de que en el futuro todos tengan que ser programadores, pero será muy conveniente que dispongan de una cultura general de lo que se conoce como “Computational Thinking”, que no es otra cosa que el método que los programadores emplean para instruir a los ordenadores para que hagan una tarea de una forma determinada. Una forma específica de aplicar la lógica para la resolución de problemas.

Pensamos que los niños y adolescentes están preparados para este nuevo entorno porque utilizan con soltura la tablet y el móvil, o navegan por internet, pero eso sólo les convierte en usuarios de una tecnología que unos pocos diseñan para el resto, como sucedió con la Televisión en las generaciones anteriores. Si queremos que sean usuarios libres con respecto a la tecnología, y profesionales preparados para el futuro ya cercano, debemos ponernos manos a la obra, de forma ordenada, pero decidida.

Se publican continuamente en internet recursos para que niños y niñas, chicos y chicas, se acerquen de forma entretenida al mundo de la programación. En esta página intentaremos mostrar dichos recursos, para que cualquiera pueda utilizarlos para aprender, ya sea en el colegio, en el instituto, en las cada vez más numerosas academias, o de forma autodidacta.

Los ordenadores y los lenguajes de programación son como la arcilla para un artesano, o la pintura y los pinceles para un pintor. Utilizando las herramientas y recursos existentes actualmente, y con un poco de esfuerzo, sólo nuestra imaginación es el límite para crear cualquier aplicación que podamos imaginar.

¡Feliz programación!