É oficial. Nas palavras da lenda do glam rock Alice Cooper, a escola saiu para o verão .
Não há mais aula. Não há mais escola. Não mais lição de casa. Apenas longos e intermináveis dias de verão que aparentemente se arrastam para sempre. Mas como você mantém seu filho ocupado durante aqueles longos meses de verão? Talvez mais importante, como você mantém seu filho ocupado e entretido enquanto ensina a ele uma importante habilidade profissional, como computação?
Se você está procurando inspiração, não se preocupe. Eu tenho você coberto. Confira esses seis projetos que ensinarão ao seu filho as noções básicas de computação, com o Linux no centro de todas elas.
Construa um jogo ou aplicativo de telefone com Kivy
A linguagem de programação Python é uma linguagem de programação introdutória preferida, ensinada nas aulas de ciência da computação nos EUA e no Reino Unido, graças à sua sintaxe descomplicada e à facilidade com que pode ser aprendida. Uma das vantagens do Python em relação a outras linguagens - como o Scratch do MIT (veremos mais adiante) - é seu amplo fornecimento de plugins e bibliotecas.
Bibliotecas são usadas para estender a funcionalidade de um programa. Existem centenas de milhares deles para o Python. Uma biblioteca popular é o Kivy, que possibilita o desenvolvimento de jogos e aplicativos para a área de trabalho e para dispositivos móveis.
Com o Kivy, você pode criar um sofisticado jogo para dispositivos móveis para iOS e Android - como o Pong - com apenas algumas centenas de linhas de código. Você pode até criar jogos e aplicativos de desktop para Windows, OS X e Linux.
E como é o Python, você ainda usa a mesma sintaxe gentil que seu filho provavelmente aprendeu na escola.
Um bom ponto de partida para aprender Kivy está na documentação oficial do Kivy, onde eles construíram um simples jogo de Pong. Aqui, você pode aprender como com algumas linhas de código, você pode colocar objetos na tela, controlar a física do jogo e até mesmo controlar as pontuações.
Este jogo de demonstração é licenciado sob a licença MIT - uma licença de software gratuita e permissiva que permite fazer modificações e cópias - para que você possa transformá-lo em seu próprio jogo e compartilhá-lo on-line sem ter que pedir permissão primeiro. Você pode até criar APKs Android e distribuir seu jogo Kivy na loja de aplicativos da Apple. Mas para um tutorial mais guiado para Kivy, confira a palestra de Richard Jones na PyCon Montreal.
Instalar o Kivy no Linux é fácil. Se você estiver usando uma distro baseada no Debian, faça isso.
sudo add-apt-repositório ppa: kivy-team / kivy
sudo apt-get instala python-kivy
Instruções sobre como instalar o Ubuntu para o OpenSUSE, Gentoo e Fedora podem ser encontradas aqui.
Aprenda os fundamentos do código com risco
Se você tem uma criança mais nova que ainda precisa fazer uma aula formal de informática e deseja apresentá-la à programação, talvez você queira instalar o Scratch - disponível para OS X, Windows e Linux.
Raspe Como Ensinar Crianças Programação Do Zero! Como ensinar crianças programando a partir do zero! Leia mais não é uma linguagem de programação que lhe dará uma carreira de programação lucrativa Como escolher uma linguagem de programação para aprender hoje e obter um ótimo trabalho em 2 anos Como escolher uma linguagem de programação para aprender hoje e obter um ótimo trabalho em 2 Anos Pode levar anos de trabalho dedicado para se tornar um bom programador; Então, há uma maneira de escolher a linguagem certa para começar a partir de hoje, a fim de ser contratado amanhã? Consulte Mais informação . Mas tudo bem. Não é destinado a isso. Pelo contrário, é usado para ensinar os conceitos básicos por trás da ciência da computação.
O Scratch é uma linguagem de programação visual, portanto, em vez de digitar o código, você arrasta e solta blocos de construção para criar programas simples. Isso apresenta uma maneira simples e acessível de ensinar seu filho sobre como o software é construído e programar conceitos como condicionais, iteração e recursão.
Mas não deixe a natureza simplificada do Scratch te enganar. Só porque é fácil, isso não significa que você está restrito no que você cria. As pessoas construíram tudo, desde jogos - como um jogo multiplayer de pong - até animações - como um cartão de visita extravagante - à arte interativa.
E uma vez que você tenha terminado sua obra-prima, você pode compartilhá-la com a simpática comunidade on-line do Scratch, que pode fornecer feedback e incentivo através de "curtidas" e comentários.
E se você ficar entediado lá, você pode usar o Scratch para construir medo de programação no código? Tente arranhar para Arduino medo de programação no código? Experimente o Scratch For Arduino Scratch 4 O Arduino permite que novatos como eu construam projetos Arduino interessantes com uma interface visual. É simples, divertido e ensina os fundamentos fundamentais da programação. Leia mais Projetos da Internet of Things baseados em Arduino. Limpo, certo?
Controle sua casa com o Raspberry Pi
O Raspberry Pi é um pequeno e acessível computador do tamanho de um cartão de crédito capaz de rodar o Linux. Aliás, também é capaz de executar uma versão simplificada do Windows 10 Windows 10 - Chegando a um Arduino perto de você? Windows 10 - Chegando a um Arduino perto de você? Leia mais, projetado para criar projetos da Internet das Coisas .
O Pi é um animal versátil, tendo se mostrado repetidamente capaz de executar qualquer coisa, desde instalações de arte, até servidores web, até mesmo servidores Minecraft.
Uma aplicação para o Raspberry Pi que chamou minha atenção foi o projeto de automação residencial de James Bruce. Home Automation Guide Com Raspberry Pi e Arduino Home Automation Guide Com Raspberry Pi e Arduino O mercado de automação residencial é inundado com sistemas de consumo caros, incompatíveis entre si e caros instalar. Se você tem um Raspberry Pi e um Arduino, basicamente pode conseguir a mesma coisa em ... Leia Mais, que usa uma ampla variedade de tecnologias para controlar a iluminação de sua casa.
Bruce usa tudo do MongoDB (que foi explicado com perícia por Taylor Bolduc aqui Como um banco de dados MongoDB pode organizar melhor seus dados Como um banco de dados MongoDB pode organizar melhor seus dados O MongoDB (de "humongous") é um banco de dados orientado a documentos de plataforma cruzada usado como uma alternativa ao MySQL. Mas o que isso significa? Leia mais), para o framework de desenvolvimento da Web JavaScript NodeJS O que é o Node.JS e por que devo me importar? [Desenvolvimento Web] O que é o Node.JS e por que devo me importar? [Desenvolvimento Web] JavaScript é apenas uma linguagem de programação do lado do cliente que roda no navegador, certo? Não mais. O Node.js é uma maneira de executar JavaScript no servidor; mas é muito mais também. Se ... Leia mais, para o Arduino. Mas no centro de tudo está o Linux e o Raspberry Pi.
A natureza multidisciplinar desse projeto significa que ele introduzirá seu filho a várias facetas da ciência da computação, como JavaScript, administração de sistemas e eletrônica.
Se você não brincou com o Raspberry Pi antes, e está procurando um projeto mais simples para colocar seus dentes de leite, considere a Impressora Sem Fio Raspberry Pi da Christian Crawley Faça Sua Própria Impressora Sem Fio Com Um Raspberry Pi Faça Seu Próprio Sem Fio Impressora com um Raspberry Pi Poucos cabos, flexibilidade sobre onde você pode colocar a sua impressora - impressão sem fio é uma win-win. A menos que você tenha uma impressora antiga. Raspberry Pi para o resgate! Consulte Mais informação .
Construa um Bot de Twitter
Não é nenhum segredo que eu sou um grande fã da linguagem de programação Python.
É tão poderoso e versátil, e o amplo suprimento de plugins e bibliotecas significa que você pode fazer quase tudo.
Python faz você se sentir como um super - herói . Basta pensar em algo e as chances são altas que você pode construir com o Python. Mas eu não estou falando apenas de jogos, ou sistemas de automação residencial Raspberry Pi. Você pode até criar aplicativos que se baseiam em sites de redes sociais existentes.
Facebook. LinkedIn. Twitter. Todos eles têm APIs (interfaces de programação de aplicativos) O que são APIs e como as APIs abertas estão mudando a Internet O que são APIs e como as APIs abertas estão mudando a Internet Você já se perguntou como os programas em seu computador e os sites visitados "falam"? um para o outro? Leia mais que permite usar os dados e a funcionalidade desses sites no escopo de seus próprios programas. Eles podem, a princípio, ser bastante intimidantes. Mas eles não são.
Dominá-los pode levar algumas horas de trabalho, mas depois de aprender a usar uma API específica, você poderá fazer algumas coisas incríveis.
Tome o Twitter, por exemplo, que permite aos desenvolvedores acessar seus dados através de três APIs separadas. Há a API Firehose, que oferece acesso ilimitado e em tempo real a cada tweet, mas vem com um preço alto que chega a milhares de dólares.
Há também duas APIs que podem ser usadas gratuitamente. O Twitter tem a Streaming API, que permite rastrear os tweets em tempo real, mas sem garantia de que você obterá todos os tweets. Há também a Search API, que permite pesquisar no banco de dados do Twitter, mas a quantidade de consultas que você pode fazer é severamente limitada.
A API de streaming é especialmente interessante, porque você pode criar aplicativos que possam responder a tweets em tempo real. Há uma quantidade infinita de projetos que você poderia construir.
Você poderia, por exemplo, pegar o cubo LED de Arduino de James Bruce Como fazer um Arduino pulsante Cubo LED que parece vir do futuro Como fazer um Arduino pulsante Cubo LED que parece ter vindo do futuro Se você Se envolveu com alguns projetos de iniciante do Arduino, mas está procurando algo um pouco permanente e em um nível totalmente diferente de incrível, então o humilde cubo de 4 x 4 x 4 LED é ... Leia Mais, e ilumine sempre que alguém postar um tweet contendo uma certa palavra. Ou você pode criar um bot do Twitter que twitta spoilers sempre que alguém postar "Só comecei a assistir Game of Thrones ". Ou você pode criar um bot que também use a API do Wolfram Alpha para responder perguntas simples, como “qual é a capital do Burkina Faso”.
No Linux, você pode aproveitar as APIs do Twitter usando a popular linguagem de programação Python e a biblioteca do Tweepy, disponível para download através do gerenciador de pacotes PIP. Para obtê-lo, simplesmente abra sua linha de comando e digite:
pip instalar tweepy
Se você não tiver o gerenciador de pacotes PIP instalado, não se preocupe. Você também pode instalar o Tweepy manualmente. Para fazer isso, você precisará do Git instalado.
git clone https://github.com/tweepy/tweepy.git
cd tweepy
Instalação do python setup.py
Não há falta de tutoriais on-line que ensinam como usar o Tweepy. Um dos melhores que encontrei foi no PythonProgramming.net, que acompanha um tutorial em vídeo.
As possibilidades são infinitas e, como a API do Twitter é muito fácil de usar com o Tweepy, você não precisa de um diploma de Ciência da Computação. Você só precisa conhecer o Python e ter uma ideia incrível.
Construa um site
Se você ensinar seu filho a codificar e perguntar o que ele quer fazer, ele provavelmente dirá um aplicativo móvel Como criar um jogo para iPhone a partir do zero Como criar um jogo para iPhone a partir do zero Em algum momento, você provavelmente já desejou poderia fazer seus próprios jogos para iPhone. É hora de parar de desejar e começar a fazer. Consulte Mais informação . Porque - vamos enfrentá-lo - que criança não quer fazer o próximo Flappy Bird A Breve História de Flappy Bird [Web Estranha & Maravilhosa] A Breve História de Flappy Bird [Rede Estranha & Maravilhosa] Poucos jogos móveis entram na consciência coletiva do mainstream na forma como o Flappy Bird fez. Ele passa para o folclore da Internet, mas esses vídeos ajudarão a preservar sua viralidade. Consulte Mais informação ? Mas depois disso, eles provavelmente dirão que querem construir um site.
O problema é que, quando você está aprendendo a construir para a Web, é confrontado com uma variedade estonteante de tecnologias. Você deve usar a pilha LAMP testada e aprovada Assinado para Web Hosting somente SSH? Não Se Preocupe - Instale Facilmente Qualquer Software Web Assinado Para Web Hosting Apenas SSH? Não se preocupe - Instale facilmente qualquer software da Web Não sabe a primeira coisa sobre como operar o Linux através de sua poderosa linha de comando? Não se preocupe mais. Leia mais, que usa Linux, Apache, MySQL e PHP? Ou talvez algo um pouco mais moderno (e, ouso dizer trendy) como Ruby on Rails, Flask ou Node.js?
O que é pior, este amplo bufê de tecnologias pode ser incrivelmente perturbador quando você é um programador de jornada, enquanto você navega entre frameworks e linguagem com todo o foco de um Labrador Retriever.
É muito para absorver.
Mas acho importante lembrar que aprender a construir websites é algo fundamentalmente multidisciplinar .
A base de qualquer site é HTML. Então, você faz com que pareça bom com um salpico liberal de CSS. Uma vez que você tenha os blocos básicos de construção, você começa a adicionar interatividade e dinamismo. Você começa a aprender como animar seu HTML e CSS com JavaScript e JQuery.
Então, você aprende sobre persistência e a necessidade de armazenar coisas em um banco de dados para recuperá-las mais tarde. Então, você aprende sobre o MySQL e talvez sobre o MongoDB. Você aprende sobre esquemas e atomização e relações.
Então você aprende a unir tudo isso com uma linguagem de programação do lado do servidor como PHP, Python, JavaScript (com Node.js) ou Ruby, e hospedá-lo em um servidor (geralmente Linux), que precisa ser configurado habilmente para garantir que ele permaneça seguro e confiável.
O ponto que eu estou tentando fazer é que aprender a construir websites é um processo multidisciplinar, que depende do aprendizado de uma pilha de tecnologias totalmente diferentes e, em seguida, mentalmente as unindo, e entendendo como elas funcionam em relação umas às outras. .
Para ensinar seu filho HTML, CSS e JavaScript, levá-los inscritos até CodeAcademy Codecademy - Hands Down a maneira mais fácil de codecademy Code - Hands Down a maneira mais fácil de codificar Codecademy é um novo site slash tutorial de programação interativa que orienta você através do básico de JavaScript. Apesar de não ter sido por muito tempo, o site já vem gerando muita agitação ... Leia mais, que explica cada uma dessas tecnologias através de desafios interativos. Isso, descobri, é ótimo para sustentar a motivação, à medida que você obtém resultados e feedback instantâneos.
É claro que a CodeAcademy não pode ensinar de forma abrangente algo tão grande e complexo como CSS ou JavaScript. Para isso, você precisa apresentar seu filho a algum bom material de referência. Eu evitaria o W3Schools, que é conhecido por conter informações errôneas - ou francamente falsas. A Mozilla Developer Network é um guia completo, preciso e acessível para todas as coisas HTML, CSS e JavaScript, e é altamente recomendado.
Quando se trata de escolher uma tecnologia de back-end, eu encorajo seu filho a aprender PHP, que tem uma curva de aprendizado suave. Há muita documentação disponível para isso. E além disso, instalar um servidor LAMP no Ubuntu é meramente uma questão ou digitar 'sudo apt-get install lamp-server ^'.
A CodeAcademy tem um curso de PHP. O mesmo acontece com os Tuts + e Lynda. Todos são ótimos. Embora eu pessoalmente recomende o PHP de Larry Ullman e o MySQL para sites dinâmicos, que atualmente estão disponíveis por US $ 28, 90 na Amazon. Eu mesmo possuo uma cópia e descobri que ela é um guia acessível e acessível para o desenvolvimento da Web com a linguagem de programação PHP.
Não tenho dúvidas de que o adolescente médio seria capaz de compreender o conteúdo deste livro.
Falhando nisso, MakeUseOf publicou um guia para PHP (escrito por você), disponível para leitura de graça aqui Aprenda a construir com PHP: Um curso intensivo Aprenda a construir com PHP: Um curso intensivo PHP é a linguagem que Facebook e Wikipedia usam para atender a bilhões de solicitações diariamente; a linguagem de facto usada para ensinar pessoas na programação web. É lindamente simples, mas brilhantemente poderoso. Consulte Mais informação .
Mas acima de tudo, incute em seu filho que aprender a construir para a web é um processo de aprendizagem, e que requer tempo e dedicação. Para manter seu filho motivado, você pode querer definir um projeto para o qual ele possa trabalhar.
Existem muitos sites simples que podem ser construídos por um desenvolvedor de aprendizagem. Talvez um livro de visitas ou um site de microblogging como o Twitter.
Um dos aspectos mais negligenciados de aprender a codificar é o feedback. Depois de construir algo, considere convencê-lo a compartilhá-lo no Github, para que desenvolvedores mais experientes possam criticar e oferecer orientação. O subreddit Learn Programming também é muito bom para isso.
E então, talvez ensinar seu filho como hospedar e gerenciar seus próprios servidores Linux, comprando-lhes uma gota DigitalOcean: O Melhor Host VPS Para Iniciantes DigitalOcean: O Melhor Host VPS Para Iniciantes Leia mais, que custa tão pouco quanto $ 5 por mês.
Assistir a um clube de código
Ok, estou trapaceando aqui.
Este não é um projeto em si . Mas se você quer ensinar ao seu filho o básico da computação, e quer fazê-lo de uma maneira mais estruturada e social, então você deve levá-lo para um clube de código.
A disponibilidade destes, naturalmente, irá variar com base em onde você mora. No Reino Unido, há o Code Club, uma organização sem fins lucrativos que tem como objetivo ensinar crianças de 9 a 11 anos a codificar. Os Clubes de Código podem ser encontrados nas principais cidades e cidades, com as mensalidades organizadas em "termos". Cada termo ensina uma faceta diferente de programação, como Scratch, HTML e CSS, e Python, com o conteúdo do curso ficando cada vez mais complexo à medida que cada termo progride.
Os Code Clubs frequentemente aproveitam o Raspberry Pis e o Linux, devido ao fato de serem extremamente baratos de adquirir em comparação com os computadores tradicionais.
Mas e do outro lado da lagoa?
A América tem muito, muitas organizações semelhantes ao Code Club para mencionar em um artigo. Mas há alguns que se destacam.
O Code.org, fundado por Gates e Zuckerberg, é mais conhecido por seu projeto Hour of Code, que tenta levar adultos e crianças a gastar uma hora por ano aprendendo a programar. Mas você sabia que ele abriga uma lista quase abrangente de aulas de ciência da computação disponíveis nos EUA, com muitas disponíveis em bibliotecas, centros comunitários e escolas?
Mas eu seria negligente se não mencionasse o brilhante Black Girls Code, que está fazendo um trabalho realmente importante. Eles estão tentando resolver a lacuna étnica e de gênero vergonhosa no campo STEM (ciência, tecnologia, engenharia e matemática), fornecendo aulas gratuitas de informática para meninas negras em todo os EUA. As aulas estão disponíveis em várias cidades importantes, sujeitas a disponibilidade. Consulte o site do Black Girls Code para mais informações.
Hora de codificar
Ok pessoal. O verão está oficialmente aqui. As escolas fecharam ou estão fechando. O que você vai fazer? Você vai levá-los para um clube de código, ou você vai dar-lhes um Raspberry Pi e ver onde sua imaginação os leva?
De qualquer forma, quero ouvir sobre isso. Deixe-me um comentário abaixo e me avise.
Créditos das fotos: Código HTML (Marjan Krebeji), Código PHP (Bull3t Hughes), aprendendo a usar laptop via Shutterstock