6 proyectos para enseñar a tus hijos a computar con Linux este verano

¿Cómo mantienes a tu hijo ocupado y entretenido mientras le enseñas una destreza profesional importante durante esos largos meses de verano? Estos seis proyectos enseñarán los conceptos básicos de la informática, con Linux en el corazón.

¿Cómo mantienes a tu hijo ocupado y entretenido mientras le enseñas una destreza profesional importante durante esos largos meses de verano?  Estos seis proyectos enseñarán los conceptos básicos de la informática, con Linux en el corazón.
Anuncio

Es oficial. En palabras de la leyenda del glam rock Alice Cooper, la escuela está fuera del verano .

No hay más clase. No más carreras escolares. No más deberes. Solo largos e interminables días de verano que aparentemente se prolongan para siempre. Pero, ¿cómo mantener a su hijo ocupado durante esos largos meses de verano? Quizás lo más importante es cómo mantener a su hijo ocupado y entretenido mientras le enseña una importante habilidad profesional, como la informática.

Si buscas inspiración, no te preocupes. Te tengo cubierto. Vea estos seis proyectos que le enseñarán a su hijo los conceptos básicos de la informática, con Linux en el centro de todos ellos.

Construye una aplicación de juego o teléfono con Kivy

El lenguaje de programación Python es un lenguaje de programación introductorio favorecido que se enseña en las clases de informática en los Estados Unidos y el Reino Unido, gracias a su sintaxis sencilla y la facilidad con la que se puede aprender. Una de las ventajas de Python sobre otros lenguajes, como MIT's Scratch (lo abordaremos más adelante), es su amplio suministro de complementos y bibliotecas.

Las bibliotecas se utilizan para ampliar la funcionalidad de un programa. Hay cientos de miles de ellos para Python. Una biblioteca popular es Kivy, que hace posible desarrollar juegos y aplicaciones para el escritorio y para dispositivos móviles.

Con Kivy, puedes construir un juego móvil sofisticado para iOS y Android, como Pong, con solo unos pocos cientos de líneas de código. Incluso puede crear juegos de escritorio y aplicaciones para Windows, OS X y Linux.

linuxcode-pong

Y debido a que es Python, todavía está usando la misma sintaxis suave que su hijo probablemente haya aprendido en la escuela.

Un buen punto de partida para aprender sobre Kivy está en la documentación oficial de Kivy, donde han creado un juego simple de Pong. Aquí puede aprender cómo, con unas pocas líneas de código, puede colocar objetos en la pantalla, controlar la física del juego e incluso realizar un seguimiento de los puntajes.

Este juego demo está licenciado bajo la licencia MIT, una licencia de software gratuita y permisiva que permite hacer modificaciones y copias, para que pueda convertirlo en su propio juego y compartirlo en línea sin tener que pedir permiso primero. Incluso puede crear archivos APK de Android y distribuir su juego Kivy en la tienda de aplicaciones de Apple. Pero para un tutorial más guiado para Kivy, echa un vistazo a la charla PyCon Montreal de Richard Jones.

Instalar Kivy en Linux es fácil. Si está utilizando una distribución basada en Debian, haga esto.

 sudo add-apt-repository ppa: kivy-team / kivy 
 sudo apt-get install python-kivy 

Las instrucciones sobre cómo instalar Ubuntu para OpenSUSE, Gentoo y Fedora se pueden encontrar aquí.

Aprende los fundamentos del código con scratch

Si tiene un niño más pequeño que todavía no ha tomado una lección formal de informática y desea presentarles la programación, puede considerar instalar Scratch, disponible para OS X, Windows y Linux.

Scratch Cómo enseñar a los niños a programar desde cero Cómo enseñar a los niños a programar desde cero Leer más no es un lenguaje de programación que le dará una carrera de programación lucrativa Cómo elegir un lenguaje de programación para aprender hoy y obtener un gran trabajo en 2 años Cómo elegir un idioma de programación para aprender hoy y obtener un gran trabajo en 2 Años Puede tomar años de trabajo dedicado para convertirse en un programador realmente bueno; Entonces, ¿hay alguna manera de elegir el idioma correcto para comenzar a partir de hoy, para ser contratado mañana? Lee mas . Pero está bien. No es para eso. Por el contrario, se utiliza para enseñar los conceptos básicos de la informática.

Scratch es un lenguaje de programación visual, por lo que en lugar de escribir código, puede arrastrar y soltar bloques de creación para crear programas simples. Esto presenta una forma simple y accesible de enseñarle a su hijo cómo se construye el software y programar conceptos como condicionales, iteración y recursión.

Pero no dejes que la naturaleza simplificada de Scratch te engañe. El hecho de que sea fácil no significa que estés restringido en lo que creas. La gente ha creado todo, desde juegos, como un juego de mesa multijugador, hasta animaciones, como una tarjeta de felicitación caprichosa, hasta arte interactivo.

codelinux-pastel

Y una vez que haya terminado su obra maestra, puede compartirla con la acogedora comunidad de Scratch en línea, que puede proporcionar comentarios y aliento a través de "Me gusta" y comentarios.

Y si te aburre, ¿puedes usar Scratch para crear miedo a la programación en el código? Prueba Scratch para Arduino ¿Teme programar en el código? Prueba Scratch para Arduino Scratch 4 Arduino permite a novatos como yo crear proyectos Arduino interesantes con una interfaz visual. Es simple, es divertido y te enseñará los componentes fundamentales de la programación. Lea más proyectos de Internet of Things basados ​​en Arduino. Limpio, ¿verdad?

Controle su hogar con la Raspberry Pi

La Raspberry Pi es una computadora pequeña, asequible, con capacidad de tarjeta de crédito, capaz de ejecutar Linux. Por cierto, también es capaz de ejecutar una versión simplificada de Windows 10 Windows 10 - ¿Venir a un Arduino cercano a ti? Windows 10 - ¿Venir a un Arduino cerca de ti? Leer más, diseñado para construir proyectos de Internet of Things .

The Pi es una bestia versátil, que ha demostrado repetidamente que es capaz de ejecutar cualquier cosa, desde instalaciones artísticas hasta servidores web, incluso servidores de Minecraft.

Una aplicación para Raspberry Pi que me llamó la atención fue el proyecto de automatización del hogar de James Bruce Guía de automatización del hogar con Raspberry Pi y Arduino Guía de automatización del hogar con Raspberry Pi y Arduino El mercado de domótica está inundado con costosos sistemas de consumo, incompatibles entre sí y costosos para instalar. Si tiene un Raspberry Pi y un Arduino, básicamente puede lograr lo mismo en ... Leer más, que utiliza una amplia variedad heterogénea de tecnologías para controlar la iluminación de su casa.

Bruce utiliza todo desde MongoDB (explicado expertamente por Taylor Bolduc aquí) Cómo una base de datos MongoDB puede organizar mejor sus datos Cómo una base de datos MongoDB puede organizar mejor sus datos MongoDB (de "humongous") es una base de datos multiplataforma orientada a documentos utilizada como una alternativa a MySQL. Pero, ¿qué significa eso? Lea más), al marco de desarrollo web JavaScript NodeJS ¿Qué es Node.JS y por qué debería importarme? [Desarrollo web] ¿Qué es Node.JS y por qué debería importarme? [Desarrollo web] JavaScript es solo un lenguaje de programación del lado del cliente que se ejecuta en el navegador, ¿verdad? Ya no. Node.js es una forma de ejecutar JavaScript en el servidor; pero es mucho más también. Si ... Leer más, a Arduino. Pero en el centro de todo está Linux y la Raspberry Pi.

La naturaleza multidisciplinaria de este proyecto significa que le presentará a su hijo una serie de facetas de la informática, como JavaScript, administración de sistemas y electrónica.

Si no ha jugado antes con la Raspberry Pi y está buscando un proyecto más simple para hundir sus dientes de leche, considere la impresora inalámbrica Raspberry Pi de Christian Crawley Haga su propia impresora inalámbrica con una Raspberry Pi Haga su propia conexión inalámbrica Impresora con una Raspberry Pi Menos cables, flexibilidad sobre dónde colocar la impresora: la impresión inalámbrica es beneficiosa para todos. A menos que tengas una impresora anterior. Raspberry Pi al rescate! Lee mas .

Desarrollar un Twitter Bot

No es ningún secreto que soy un gran admirador del lenguaje de programación Python.

Es tan poderoso y versátil, y la amplia oferta de complementos y bibliotecas significa que puede hacer casi cualquier cosa.

Python te hace sentir como un superhéroe . Solo piensa en algo, y hay muchas posibilidades de que puedas construirlo con Python. Pero no estoy hablando solo de juegos o sistemas de automatización del hogar Raspberry Pi. Incluso puede crear aplicaciones que se basan en sitios de redes sociales existentes.

Facebook. LinkedIn. Gorjeo. Todos ellos tienen API (Interfaces de programación de aplicaciones) ¿Qué son API? ¿Cómo son API abiertas? ¿Qué son API? ¿Cómo son API? ¿Cómo se abren las API? ¿Alguna vez te has preguntado cómo los programas en tu computadora y los sitios web que visitas "hablan"? el uno al otro? Lea más que le permiten usar los datos y la funcionalidad de estos sitios dentro del alcance de sus propios programas. Al principio pueden ser bastante intimidantes. Pero no lo son.

Dominarlos puede tomar algunas horas de trabajo, pero una vez que hayas aprendido cómo usar una API en particular, podrás hacer cosas increíbles.

Tomemos Twitter, por ejemplo, que permite a los desarrolladores acceder a sus datos a través de tres API separadas. Está la API de Firehose, que ofrece acceso ilimitado en tiempo real a cada tweet, pero viene con una etiqueta de precio que alcanza los miles de dólares.

codelinux-twitterapis

También hay dos API que son de uso gratuito. Twitter tiene la API Streaming, que le permite rastrear tweets en tiempo real, pero sin garantías de que obtendrá cada tweet. También está la API de búsqueda, que le permite buscar en la base de datos de Twitter, pero la cantidad de consultas que puede realizar es muy limitada.

La API de Streaming es especialmente interesante, porque puedes crear aplicaciones que pueden responder a los tweets en tiempo real. Hay una cantidad infinita de proyectos que podrías construir.

Podría, por ejemplo, tomar el cubo LED Arduino de James Bruce Cómo hacer un cubo LED Arduino pulsante que parece que proviene del futuro Cómo hacer un cubo LED Arduino pulsante que parece que viene del futuro Si usted tiene se metió en algunos proyectos para principiantes de Arduino, pero está buscando algo un poco permanente y en otro nivel impresionante, entonces el humilde cubo de 4 x 4 x 4 LED es ... Leer más, e iluminarlo cada vez que alguien publique un tweet que contenga una cierta palabra O podrías crear un bot de Twitter que tuitee spoilers cada vez que alguien publique "Acabo de empezar a ver Game of Thrones ". O bien, podría crear un robot que también utilice la API de Wolfram Alpha para responder a preguntas simples, como "¿cuál es la capital de Burkina Faso?".

En Linux, puede aprovechar las API de Twitter utilizando el popular lenguaje de programación Python y la biblioteca Tweepy, disponible para descargar a través del administrador de paquetes PIP. Para obtenerlo, simplemente abre tu línea de comando y escribe:

 pip install tweepy 

Si no tiene instalado el administrador de paquetes PIP, no se preocupe. También puede instalar Tweepy manualmente. Para hacer esto, necesitarás que Git esté instalado.

 git clone https://github.com/tweepy/tweepy.git 
 cd tweepy 
 instalación de python setup.py 

No hay escasez de tutoriales en línea que le enseñarán a usar Tweepy. Uno de los mejores que he encontrado fue en PythonProgramming.net, que viene con un video tutorial adjunto.

Las posibilidades son infinitas, y debido a que la API de Twitter es tan fácil de usar con Tweepy, no necesitas un título en Informática. Solo necesitas conocer Python y tener una idea genial.

Construya un sitio web

Si le enseña a su hijo a programar, y le pregunta qué quiere hacer, probablemente diga una aplicación móvil Cómo crear un juego de iPhone desde cero Cómo crear un juego de iPhone desde cero En algún momento, probablemente le haya deseado podría hacer tus propios juegos de iPhone. Es hora de dejar de desear y comenzar a hacer. Lee mas . Porque - seamos realistas - qué niño no quiere hacer el próximo Flappy Bird El cuento de Flappy Bird [Weird & Wonderful Web] El cuento de Flappy Bird [Weird & Wonderful Web] Pocos juegos móviles entran en la conciencia colectiva de la corriente principal como lo ha hecho Flappy Bird. Pasa al folclore de Internet, pero estos videos ayudarán a preservar su viralidad. Lee mas ? Pero después de eso, probablemente dirán que quieren construir un sitio web.

El problema es que cuando estás aprendiendo a construir para la web, te enfrentas a una vertiginosa variedad de tecnologías. ¿Debería utilizar la probada y probada pila LAMP Signed Up para alojamiento web solo en SSH? No se preocupe: instale fácilmente cualquier software web firmado para alojamiento web solo SSH. No te preocupes: instala fácilmente cualquier software web. ¿No sabes lo primero sobre operar Linux a través de su poderosa línea de comandos? No te preocupes más Lea más, ¿qué usa Linux, Apache, MySQL y PHP? ¿O tal vez algo un poco más moderno (y, me atrevo a decir moderno) como Ruby on Rails, Flask o Node.js?

Lo que es peor, este amplio abanico de tecnologías puede ser increíblemente molesto cuando eres un codificador de viajes, mientras te mueves entre los marcos y el lenguaje con todo el enfoque de un Labrador Retriever.

Es mucho para asimilar.

Pero creo que es importante recordar que aprender a construir sitios web es fundamentalmente multidisciplinario .

La base de cualquier sitio web es HTML. Luego, haces que se vea bien con un salpicado liberal de CSS. Una vez que haya reducido los bloques de construcción básicos, comenzará a agregar interactividad y dinamismo. Empiezas a aprender a animar tu HTML y CSS con JavaScript y JQuery.

codelinux-html

Luego, aprenderá sobre la persistencia y la necesidad de almacenar cosas en una base de datos para recuperarlas más adelante. Entonces, aprendes sobre MySQL, y tal vez MongoDB. Aprende sobre esquemas, atomización y relaciones.

Luego aprende a vincularlo todo con un lenguaje de programación del lado del servidor como PHP, Python, JavaScript (con Node.js) o Ruby, y alojarlo en un servidor (a menudo Linux), que debe configurarse de manera experta para garantizar que siga siendo seguro y confiable.

El punto que trato de plantear es que aprender a construir sitios web es un proceso multidisciplinario, que depende de que la persona aprenda una "pila" de tecnologías tremendamente diferentes y luego las relacione mentalmente, y comprenda cómo funcionan en relación entre sí. .

Para enseñarle a su hijo HTML, CSS y JavaScript, insértelos en CodeAcademy Codecademy: Indiscutiblemente, la forma más fácil de codificar Codecademy: Indiscutiblemente, la forma más sencilla de codificar Codecademy es un nuevo tutorial de programación interactiva de Slash que lo guía por los conceptos básicos JavaScript. Si bien no ha existido por mucho tiempo, el sitio ya ha estado generando un gran revuelo en ... Read More, que explica cada una de estas tecnologías a través de desafíos interactivos. Esto, he descubierto, es excelente para mantener la motivación, ya que obtienes resultados instantáneos y comentarios.

codelinux-html

Por supuesto, CodeAcademy no puede enseñar exhaustivamente algo tan grande y complejo como CSS o JavaScript. Para eso, debe presentar a su hijo algún buen material de referencia. Evitaría W3Schools, que se sabe que contiene información errónea, o francamente falsa. Mozilla Developer Network es una guía exhaustiva, precisa y accesible para todo lo relacionado con HTML, CSS y JavaScript, y es muy recomendable.

Cuando se trata de elegir una tecnología de back-end, animo a su hijo a aprender PHP, que tiene una curva de aprendizaje suave. Hay mucha documentación disponible para eso. Y, además, instalar un servidor LAMP en Ubuntu es simplemente una cuestión o escribir 'sudo apt-get install lamp-server ^'.

CodeAcademy tiene un curso de PHP. También lo hacen Tuts + y Lynda. Todos son geniales Aunque, personalmente recomiendo PHP y MySQL de Larry Ullman para sitios web dinámicos, que en el momento de escribir este documento están disponibles por $ 28.90 en Amazon. Soy dueño de una copia y he descubierto que es una guía accesible y accesible para el desarrollo web con el lenguaje de programación PHP.

codelinux-php

No tengo dudas de que el adolescente promedio podría comprender el contenido de este libro.

En su defecto, MakeUseOf ha publicado una guía de PHP (escrita por los tuyos), disponible para leer de forma gratuita aquí. Aprende a compilar con PHP: un curso acelerado. Aprende a compilar con PHP: un curso acelerado. PHP es el lenguaje que usan Facebook y Wikipedia. para atender miles de millones de solicitudes diarias; el lenguaje de facto utilizado para enseñar programación web a personas. Es maravillosamente simple, pero brillantemente poderoso. Lee mas .

Pero, sobre todo, inculque a su hijo que aprender a construir para la web es un proceso de aprendizaje, que requiere tiempo y dedicación. Para mantener a su hijo motivado, es posible que desee establecer un proyecto para el que pueda trabajar.

Hay muchos sitios web simples que podrían ser construidos por un desarrollador principiante. Tal vez un libro de visitas, o un sitio de microblogging como Twitter.

Uno de los aspectos más ignorados de aprender a codificar es la retroalimentación. Una vez que hayan creado algo, considere convencerlos de que lo compartan en Github, para que los desarrolladores más experimentados puedan criticar y ofrecer orientación. El subreddit de Aprender programación también es bastante bueno para eso.

Y luego, tal vez, enséñele a su hijo cómo alojar y administrar sus propios servidores web Linux comprándoles un Digital Ocean de gota digital: el mejor host de VPS para principiantes. Digital Ocean: el mejor host de VPS para principiantes. Lea más, que cuesta tan solo $ 5 por mes.

Asistir a un club de código

De acuerdo, estoy haciendo trampa aquí.

Esto no es un proyecto, per se . Pero si quieres enseñarle a tu hijo los conceptos básicos de la informática y quieres hacerlo de una manera más estructurada y social, entonces debes llevarlos a un club de códigos.

La disponibilidad de estos, por supuesto, variará según el lugar donde viva. En el Reino Unido, está Code Club, una organización sin fines de lucro que tiene como objetivo enseñar a los niños entre las edades de 9 y 11 a codificar. Los clubes de código se pueden encontrar en la mayoría de las ciudades principales, con la matrícula organizada en "términos". Cada término enseña una faceta diferente de la programación, como Scratch, HTML y CSS, y Python, con el contenido del curso cada vez más complejo a medida que progresa cada término.

Los clubes de código a menudo se aprovechan de Raspberry Pis y Linux, debido a que son extremadamente baratos de adquirir en comparación con las computadoras tradicionales.

¿Pero qué hay al otro lado del estanque?

Estados Unidos tiene demasiadas organizaciones similares a Code Club para mencionar en un artículo. Pero hay algunos que se destacan.

Financiado por Gates y Zuckerberg Code.org es más conocido por su proyecto Hour of Code, que trata de hacer que adultos y niños pasen una hora al año aprendiendo a codificar. Pero, ¿sabías que alberga una lista casi completa de clases de informática disponibles en los EE. UU., Con muchas disponibles en bibliotecas, centros comunitarios y escuelas?

Pero sería negligente si no mencionara el brillante Black Girls Code, que está haciendo un trabajo realmente importante. Están tratando de abordar la vergonzosa brecha étnica y de género en el campo STEM (ciencia, tecnología, ingeniería y matemáticas) al proporcionar clases gratuitas de informática a niñas negras en todo Estados Unidos. Las clases están disponibles en varias ciudades importantes, sujetas a disponibilidad. Consulte el sitio web de Black Girls Code para obtener más información.

Hora de codificar

Bien amigos. El verano está oficialmente aquí. Las escuelas han cerrado o están cerrando. ¿Qué vas a hacer? ¿Los llevarás a un club de códigos, o les darás una Raspberry Pi y verás dónde les lleva su imaginación?

De cualquier manera, quiero escuchar sobre eso. Envíame un comentario a continuación y avísame.

Créditos de las fotos: código HTML (Marjan Krebeji), código PHP (Bull3t Hughes), aprender a usar la computadora portátil a través de Shutterstock

In this article