Já viram o CodeAcademy e seu irmão, o projeto CodeYear? A proposta é simples: aprenda a programar através de aulas simples e rápidas, utilizando uma interface online que roda em javascript e oferece várias coisas legais (como acompanhamento de progresso, badges e tudo mais). O pessoal da CodeAcademy resolveu declarar 2012 como o Ano do Código, algo do tipo, “Faça de 2012 o ano em que você aprendeu a programar!”. Massa, né?
*Som de grilos, e uma bola de feno passando ao fundo*
Tá, tudo bem, mas EU acho a iniciativa bem legal, e o método proposto pelos caras parece ser bem bacana. Eu ia começar a fazer o curso deles, mas nos últimos meses minha vida estava sob o controle da minha sombra malvada (tipo o NegaScott, do Scott Pilgrim) e eu não conseguia arrumar tempo pra nada. Vamos ver se eu crio vergonha na cara e completo o curso deles!
Douglas Rushkoff, escritor de “Program or Be Programmed”, escreveu um baita artigo na CNN explicando porque é uma boa idéia aprender a programar. A idéia geral não é se tornar um Ninja dos Códigos, um Jedi da Lógica, mas sim entender o que diabos está acontecendo por baixo dos panos. Não adianta fugir, hoje em dia vivemos em um mundo governado por algoritmos ocultos, rotinas e funções que manipulam dados sobre nós, fornecidos por nós mesmos sem ao menos nos dar conta disso. Estamos rodeados por programas, aplicativos, sistemas operacionais, algoritmos, e poucos de nós sabemos ou entendemos como eles funcionam. Programação é uma forma de linguagem, e não é tão complicada assim: apesar de existirem milhares de linguagens de programação, o importante é entender a lógica. Variáveis, estruturas de decisão e repetição, matrizes, funções, classes e objetos. Se você entende parte desses conceitos, programação deixa de ser algo místico e indecifrável para se tornar o que realmente é: uma forma de se explicar um conjunto de instruções, uma língua para descrever a solução de problemas.
Algumas semanas depois deste artigo ter sido publicado, Jeff Atwood (pai do stackoverflow) publicou uma resposta em seu blog. O mote foi um tweet do prefeito de Nova York dizendo que 2012 seria o ano em que ele aprenderia a programar. O argumento de Atwood é: porque diabos o prefeito de Nova Iorque se tornaria melhor em seu trabalho após aprender a programar? Que valor tem esse set de conhecimentos para um prefeito? Ou para qualquer outro trabalho que não tenha nada/pouco a ver com programação? Atwood continua dizendo que ele não diria que é importante que todos saibam programar, do mesmo jeito que ele não diria que é importante que todos saibam consertar encanamentos. A preocupação dele, exposta em uma lista no final do artigo, é que mais programadores no mundo não é necessariamente uma coisa boa, principalmente programadores que não são tão bons assim. Dá pra perceber que o problema, para ele, é a entrada de programadores “novatos” no mercado de trabalho, achando que sabem programar e que isso basta, que não tem noção do que estão realmente fazendo. “Quanto menos código, melhor”. ”
E eu discordo profundamente. A idéia não é roubar o trabalho de um programador de verdade, do cara que gastou as dez mil horas necessárias para se tornar um mestre Jedi do código fonte, do cara que fez cinco anos de faculdade e mais seiláquantos de pós, do cara que passa o dia inteiro pensando em algoritmos. A idéia é: aprenda a linguagem das máquinas. Aprenda como elas pensam, e como pensam as pessoas que dizem para elas o que fazer. Entenda o que é um algoritmo, entenda o que é o conceito de classes e objetos, entenda o que é abstração, encapsulamento e orientação à objetos. Entenda os conceitos por trás da programação, e isto sim pode ser útil para o prefeito de Nova Iorque, para um encanador, para um designer, para virtualmente qualquer um. O importante não é saber criar um aplicativo inovador em Ruby, o importante é aprender as ferramentas mentais para a resolução de problemas que uma linguagem de programação te proporciona.
(Eu ainda ia falar sobre o aprendizado da programação, minha experiência com isso no curso de engenharia e depois no curso de design digital, e o que eu acho dessa porra toda. Mas já tá quase na hora de ir pra aula, e depois eu continuo.)
Se liga nessa!
Pense no codeacademy (Beleza…), agora pense em cursos diferenciados e com nomes criativos, sendo que cada um tem uma interface diferente e maluca, com slides, videos, gamefication, tudo isso junto e misturado? Espero que você ainda não tenha visto. Apresento o http://www.codeschool.com , depois me fala o que achou