¿Cómo aprender a programar? Hay muchos métodos, pero de todos ellos algunos destacan sobre los demás. Hoy en Xataka vamos a hablar sobre los kits para aprender a programar, un conjunto de herramientas que nos lo ponen muy fácil para recoger todos esos conceptos básicos con los que luego continuar caminando.
Pero un momento, ¿por qué aprender a programar? ¿Qué herramientas necesito? Estas dos preguntas vamos a responderlas hoy en este especial, en el que también hablaremos de los principales kits para aprender a programar, pieza clave en este aprendizaje tan a la orden del día.
¿Por qué aprender a programar?
La programación es un conocimiento cada vez más común en nuestro día a día. Muchos países integran esta materia en los currículos de sus respectivas escuelas, e incluso en España - no vamos a negar que, generalmente, estamos por detrás de otros países en educación... - ya es una materia implantada en algunas comunidades, como Madrid o Navarra, con la tendencia de llegar a muchas otras durante los próximos años.
Era verano cuando en Xataka publicamos dos artículos sobre la didáctica de la programación:
- Niños y programación: consejos y recursos para que este verano se inicien.
- Cómo empezar a aprender programación: consejos y recursos para hacerlo de adulto
Los expertos opinan que al igual que aprendemos a escribir, a leer u operaciones matemáticas, en el siglo XXI la programación será asignatura clave en la educación
Su finalidad, sentar unas bases para aprender a programar. ¿Por qué deberíamos aprender a programar? Expertos como Jeannette M. Wing, directora del Departamento de Ciencias de la Computación de la Carnegie Mellon University de Pittsburgh (Pennsylvania, Estados Unidos) aseguran que es una materia clave para el siglo XXI por el valor de una de las principales características que promueve, el Pensamiento Computacional:
Computational thinking is a fundamental skill for everyone, not just for computer scientists. To reading, writing, and arithmetic, we should add computational thinking to every child’s analytical ability.
El pensamiento computacional es un término que empezó a ser nombrado en 1980 por Seymour Papert, quien lo nombró en una de sus primeras obras, Mindstorms - sí, está enlazado con los productos que a finales de los 90 LEGO lanzó al mercado -, definiéndolo como el método de resolución de problemas que generaliza la solución para poder aplicarla en diferentes entornos. Requiere de una serie de conceptos - descomposición, generalización de la información, abstracción, modelado del problema, étc. - que con la llegada de la computación tanto al entorno doméstico como al profesional todos deberemos manejar durante los próximos años.

Y es precisamente el contexto de la sociedad actual el que hace de la programación un elemento fundamental para cualquier trabajo. La tecnología nos rodea y debemos saber cómo tratar con ella, conocerla a fondo y aprovecharnos en la medida de lo posible. Ese aprovechamiento tiene como resultado el pensamiento computacional, aplicable a muchos ámbitos de la vida - no tecnológicos; analógicos, si se me permite al término - y, por ende, nos lleva a la programación como un elemento clave de la sociedad del s.XXI.
Comentábamos antes los dos artículos que a lo largo del verano habíamos publicado relacionados con la docencia y la formación de la programación. Proponían una serie de conceptos básicos de entrada, para introducirse en el mundo de una forma directa con la materia a través de lenguajes e interfaces adaptadas a dar los primeros pasos. Sin embargo, también existen kits que pueden ser interesantes para iniciarse en la programación.
El software
Hablar de kits de programación que sean tangibles es tratar sólo una parte del todo. Hablar de programación es hablar de software por un lado, y de una parte hardware optativa por otro. Existen algunas excepciones como Computer Science Unplugged, pero desde luego son las menos.
El software es fundamental y parte clave en la docencia y formación de la programación. Y aquí reconozco que para mi el lenguaje Scratch es un eje fundamental. Un software nacido en el MIT en el año 2002 y que desde entonces ha gestado una comunidad online que alcanza los 11.7 millones de proyectos compartidos, con millones de usuarios por todo el mundo.

Scratch es, desde mi punto de vista, el mejor lenguaje para introducirse en el mercado. Lo utilizamos a diario en el Club de Jóvenes Programadores de la Universidad de Valladolid y los resultados están siendo excelentes. Su interfaz, basada en bloques y no en texto, ayuda entender la programación y facilita el proceso de entender cómo funcionan los ordenadores, ese proceso iterativo y secuencial de los algoritmos al que todos los informáticos y programadores estamos acostumbrados, pero que resulta raro para los más alejados de la materia.
Pero como Scratch reconozco que hay muchas opciones basadas en ese concepto de programación por bloques. Sin ir más lejos Code.org y sus excelentes tutoriales de iniciación, o la española bq con bitBloq, una especie de clon de Scratch muy enfocado a sus propios productos y con un espíritu más comercial.
También tenemos por ahí App Inventor que nos permitirá crear apps de Android con programación con bloques (y que tiene una historia bastante curiosa), Alice para crear entornos 3D o el lenguaje propio de LEGO con los Mindstorms.
Para los que crean que la era post-PC ha llegado (eso es otro debate) también hay algunas opciones para tablets, aunque suelen estar muy limitadas frente a las de las plataformas PC. Tenemos Scratch Jr. como un hermano pequeño del Scratch original, pero que también ha sido desarrollado por el Lifelong Kindergarten del MIT; o Hopscotch como propuesta interesante y nativa en iOS.
¿Podemos aprender a programar con lenguajes de texto, más 'tradicionales'? Por supuesto que sí, y elegir un lenguaje por bloques o uno textual dependerá en gran medida de nuestra edad. Es cierto que los lenguajes por bloques están orientados a un público más joven, infantil incluso (4-5 años hasta los 16-18), y que tras estas edades muchos recomiendan acudir directamente a lenguajes como Python, que para muchos ha de ser el primer paso. Ayudarán algunas webs/tutoriales como CodeCombat, que pone gran empeño en la gamificación para promover el aprendizaje.

Sin embargo, como estamos hablando de kits para aprender a programar al final hay una máxima: cada kit incorpora su rango de lenguajes compatibles, y raramente podremos salirnos de ellos. Algunos son más versátiles y otros más cerrados, y por tanto lo ideal será documentarse para ver qué podemos utilizar. Personalmente recomiendo empezar por los lenguajes con bloques y, una vez los dominemos, dar el salto a los textuales. Ahora bien, por supuesto cada uno es libre de empezar por donde quiera.
Kits para aprender a programar
A continuación exponemos cuatro kits para empezar a programar, y que te serán de gran ayuda a la hora de dar los primeros pasos en esta nueva materia.
Makey Makey

Un juguete que parece trivial de realizar, pero que ha tardado años en llegar. Con el nombre de Makey Makey: An Invention Kit for Everyone se presentó en Kickstarter un conjunto de cables, pinzas y un USB para conectar al ordenador. Permite crear productos sencillos como un piano con unos cuantos plátanos:
El funcionamiento es sencillo y se basa en la conductividad eléctrica y en tocar diferentes objetos, todos ellos conectados al ordenador a través del Makey Makey. Muy sencillo de entender y con la capacidad de dar resultados muy sorprendentes - como lo de los plátanos -, aunque con la desventaja de ser algo limitado y, por tanto, dar un relativo poco juego, aunque a veces surgan ideas geniales.
Si quieres hacerte con uno te costará 49,95 dólares en la tienda oficial, aunque podemos encontrarlo en Amazon España por 67 euros. Si te parece muy caro puedes hacerte tu propio Makey Makey, llamado Shrimpkey, siguiendo estas instrucciones de Instructables.
Arduino

Si hablamos de programación es necesario hablar de Arduino, que en los últimos años ha pasado de ser una plataforma de electrónica para geeks a ser pieza clave en la docencia de la programación.
Mientras Makey Makey es un producto diseñado para que cualquier chaval pueda usarlo, es cierto que Arduino es para perfiles de mayor edad, típicamente por encima de los 8 o 10 años. Arduino es un producto solvente y con posibilidades infinitas, y entre estas muchas posibilidades... empezar a programar es una de ellas. Por ejemplo, crear un programa que encienda luces cada cierto tiempo o cada vez que pulsamos un botón es algo trivial.
A favor de Arduino tenemos su extensa lista de lenguajes de programación compatibles, más allá del oficial basado en C/C++, y que abarca decenas de diferentes posibilidades. Entre todas ellas destaca la posibilidad de utilizarlo a través de algunos lenguajes de bloques como el bitBloq de bq o, con mayor relevancia, también con Scratch (ya sea a través de S4A, un proyecto español, o de ScratchX).
Otro de los puntos clave de aprender a programar con Arduino es la ingente comunidad que existe en Internet, desde los recursos y ejemplos oficiales hasta guías de todo tipo. Y por supuesto, como estamos hablando de kits, el Starter Kit oficial de Arduino será pieza clave, estando disponible por 85 euros en Amazon España o 79,90 en tienda oficial. Otra opción es Makeblock, que también dispone kits de iniciación sobre que hace un tiempo analizaron en Xataka Home.
LEGO Mindstorms EV3

Hablábamos en el primer apartado de esta entrada de Papert y su obra Mindstorms, que tras unos cuantos años - y muchas colaboraciones entre el propio Papert, su pupilo Resnick, el MIT y los daneses LEGO - dieron lugar, en 1998, al primer LEGO Mindstorms, el denominado RCX.
Éste evolucionó en una segunda generación en 2006 llamada NXT, y más reciente (año 2013) en la tercera y actual Mindstorms EV3: robots programables para los que LEGO tiene su propio lenguaje - también basado en, sí, en bloques - y que son tremendamente atractivos tanto por la introducción en el mundo de la robótica, como por algunas competiciones a nivel local y nacional como las First Lego League.
Si compramos un Mindstorms EV3 lo tendremos todo, desde el hardware (el bloque principal, los sensores, otras piezas) hasta el software (originalmente se programan con su propio lenguaje, aunque también permiten muchos otros). Lo malo es el precio: LEGO Mindstorms EV3 es un juguete 'caro' que sale a la nada desdeñable cifra de 340 euros en Amazon España, sin duda un producto alejado de muchos bolsillos.
LittleBits

Reconozco que me enamoré de Littlebits cuando lo vi por primera vez, y me sigue enamorando. Una serie de kits que se definen como "The ultimate invention toolbox", y que proponen una plataforma de electrónica que permite utilizar diferentes bloques físicos para crear inventos de lo más dispar. Por ejemplo, una lámpara que se enciende desde le móvil:
LittleBits es tremendamente sencillo de utilizar, pues las piezas se conectan a través de imanes de una forma tremendamente sencilla e intuitiva, con un código de colores que será de gran ayuda para entender el conjunto. La infinidad de posibilidades y la comunidad son sus puntos a favor, con extensos tutoriales y guías que promueven desde la página oficial.
Luego tenemos la amplia variedad existente de LittleBits, con kits para todo tipo de usos y que pueden adaptarse a múltiples precios. En la tienda oficial están todas las opciones con kits entre 99 y 1.599 dólares y diferentes objetivos: Makey Makey, Arduino, Smart Home, música o Gizmos&Gadgets. En Amazon España también hay algunos disponibles (el básico por 91 euros o el súper por 137) aunque desde luego la oferta es mejor a la propuesta por la web oficial.
Y si necesitas algo más de ayuda...
... en Internet encontrarás absolutamente todo lo que necesitas para prosperar en lo referente a la programación. Se dice que cualquier duda ha sido ya resuelta en comunidades generalistas como la de Stack Overflown, o en las decenas de páginas y foros especializados en los diferentes lenguajes o entornos.
Cada uno de los kits de los que hemos hablado aquí tiene su respectiva comunidad de usuarios que incluyen foros y preguntas y respuestas. Si con los tutoriales de iniciación no has tenido suficiente, o si te has atragantado en algún paso, busca en Internet o pregunta por ahí. En Internet están las respuestas a (casi) todas tus dudas.
Ver 22 comentarios
22 comentarios
luis_yomismo
Aplausos!!!!!
Sólo os habéis dejado una empresa que incluso tiene una división de informática/robótica educativa, y juguetes también para montar y programar, y es española, y se llama BQ.
No hay que irse muy lejos, lo tenemos aquí en casa, pasaos por la web de BQ y le echáis un vistazo que tienen cosas muy muy interesantes.
robertocaballero1
Jajaja, a mi me regalaron, hace vasi 30 años un dinclair espectrum de 128k. Y este minipc de la era de los dinosaurios venia con un libro de 7 kilos de programacion de basic, con 8 años me leí 7 veves y termime haciendo mis propios juegos antes de los 10, arcanoid, aventuras gráficas, imitaciones del target renegada..... Y todo para nada
.. Entomces sin internet no se podia compartir nada y con los soportes en cinta magnetica, todo se perdia en pocos años o antes....
el-henry
Mi primer "lenguaje" de programación fue excel. Supongo que sera mas parecido a la programación por bloques que a la tradicional, pero se acerca mucho a la tradicional cuando intentas hacer una hoja que haga todo el trabajo por si misma al ingresar unos pocos datos.
Para aprender excel me propuse un proyecto, crear una hoja de gestión para una PTC. Comencé con lo mas básico y una vez que lo complete me propuse ampliarlo. Después de ampliarlo me propuse simplificarlo, después ampliar, simplificar y todo de vuelta hasta que ya no podía simplificar mas. Entonces comencé a investigar los macros
Todo el proceso fue apoyado con algun que otro videotutorial, pero mas que nada con exceltotal y muchos foros.
Mi 2do fue fue VBA para los macros de excel. No se si sera el mas sencillo, pero el hecho de poder ver los elementos que seleccionas y lo que haces con ellos sin tener que abstraer el concepto me pareció simple. Me resulta mas fácil hacer un range('a2:b5') mientras miro la hoja a un lado, que buscar entre los elementos de un array que no puedo ver a la vez que escribo el codigo.
Ya no quedaba mucho que ampliar en la hoja, asi que con los macros solo simplifique hasta el punto que los registros diarios se hacian con un par de botones. De nuevo el aprendizaje se apoyo mucho en foros
Mi 3er lenguaje fue javascript. Para conseguir los datos de la hoja excel habia usado un codigo javascript de otro usuario de la PTC. Me propuse crear uno propio y que ademas extrajera aun mas datos que el primero.
El primer obstáculo fue comprender como navegar por el DOM ya que ningun videotutorial lo explicaba. Fue con ayuda de w3schools que finalmente lo entendi. No hubo tanto foro para aprender javascript porque w3schools es bastante completo. Comenze con los videotutoriales y w3schools me ayudo con las partes puntuales
Ahora estoy aprendiendo c#, con la intención de recrear la hoja excel en un programa propiamente dicho. Estoy con con los videos de codigofacilito (reconozco que el tutor sabe, pero tiene una voz completamente soporifera) y una vez que comprenda la base me centrare en foros o similares para las cosas puntuales.
thepilot
¡Wow! En la academia de programación donde doy clase utilizamos absolutamente todas estas herramientas. Es como si Pablo hubiese venido esta mañana a hacer inventario jajaja
Aprender a programar es un proceso que se desarrolla de manera diferente en cada persona, más aún en un niño. Yo intento siempre adaptar las clases a las capacidades de los alumnos, evitando que caigan en la frustración que puede suponer, por ejemplo, no ser capaz de entender un algoritmo. De hecho, las primeras clases deben ser muy lúdicas puesto que no solo tienen que aprender a pensar como lo haría una maquina sino también descubrir la interfaz del programa que se esté utilizando. Scratch es un programa que pueden pasar semanas o meses hasta que le sacas todo el partido.
Os dejo el enlace a nuestra web por si alguien está interesado en el proyecto: http://www.kidcode.es/
pedro98pedro
Me parece que la raspberry pi brilla por su ausencia. Considerando que es totalmente compatible con scratch y se pueden utilizar con múltiples lenguajes. Todo esto mas una gran comunidad de makers por detrás que suben nuevos proyectos todos los días.
nathaliabalderas
Falto un kit además latino que promete fuertes cosas en el aprendizaje de robótica y programación: briko.
Chequen es un kit100% mexicano que promete :)
175719
Raspberry PI entraría en esta lista?
Horus Lugo
Desde mi punto de vista y mi experiencia personal creo que a partir de los 10 - 12 años de edad ya se podría tratar con lenguajes reales como Python (en mi caso empece con PHP a los 13 y ahora con 16 estoy trabajando con NodeJS).
Quizá esto no se pueda aplicar para todos los casos, ya que según la persona, puede tener mas curiosidad o interesarse mas por la programación, que desde fuera se ve como las matemáticas, difíciles, pero en realidad no es mas que una herramienta que con un poco de practica es fácil de comprender y de utilizar.
Lo fascinante son los "juguetes" para aprender a programar, me hubiera encantado tener de pequeño algo como el Makey Makey, lo mismo me planteo la compra de un Arduino para aprender cosas mas cercanas a la programación de hardware.
enteropositivo
En nuestro centro también hemos optado por Scratch junto con los robots educativos de mBot de Makeblock y el printbot de BQ
Dos alternativas estupendas que no tienen nada que envidiar a LEGO
dago.pa1
Para realmente aprender a programar, hacen falta un lápiz y una libreta. Comenzar con algoritmos y pseudo códigos para comprender las estructuras básicas y desarrollar la lógica es lo mejor