Programação Para Não Programadores
Proposta
Fazer encontros semanais, cada semana abordando um assunto. Cada encontro deve durar no máximo 4 horas. Os assuntos, claro, podem se estender por mais de uma semana, dependendo:
- da complexidade
- do interesse das pessoas
- da dificuldade
Seguiremos sempre no ritmo do menos experiente, é importante que todos os presentes entendam o que esta sendo passado e que todos saiam sem dúvidas dos encontros.
Para ajudar os mais novos todo encontro será organizado usando a prática de "Pair-Learning" ou "Aprendizado Pareado", sempre com alguém mais experiente ajudando o menos experiente.
Os encontros serão prático, mãos no computador (um computador para cada duas pessoas). Uma sugestão é que o menos experiente da dupla "pilote" o computador, para se familiarizar. Discussões são sempre bem vindas, mas vamos tentar otimizar nosso tempo nos encontros presenciais para as questões mais práticas. Podemos e devemos usar esse wiki ou algum outro espaço para compartilhar anotações, idéias, experimentos, arquivos e o que mais surgir.
O público alvo são os Não Programadores, mas Programadores são muito bem vindos, é claro. Especialmente aqueles que quiserem ajudar de alguma forma (como idéias, monitorando, abordando algum assunto) :-)
Ferramentas
Com os encontros acontecendo vamos começar a usar novas ferramentas, explorar outros mundos. Mas para começar o kit básico será:
- Um notebook para cada duas pessoas, de preferência com GNU/Linux instalado (pode ser qualquer distribuição)
- Python
Python esta instalado na maioria das distribuições, então não será um problema.
Não Programadores
O que é um(a) não programador(a)?
É alguém que não precisa trabalhar diretamente com programação.
E por que aprender a programar então?
Computadores estão em qualquer lugar. Independente do que você faz é provável que em algum momento você use o computador para alguma tarefa. Aprendendo a programar você vai entender um pouco mais sobre o computador, por que as coisas acontecem e como elas acontecem. Assim você vai usar o computador e não ser usado por ele.
Além disso existe um grande mito sobre programação de computadores, como se fosse uma coisa mágica que só rapazes barbudos podem fazer. Isso não é verdade.
Lembre-se: você não aprende a cozinhar só pra virar cozinheiro, você não aprende a escrever só pra virar escritor. Então você pode aprender a programar sem ser programador :-)
Um pouco de história para não programadores
Computadores pessoais, hackers e política
Lá no começo dos anos 60 os computadores eram usados basicamente para cálculos e programas (acadêmicos) muito sérios. Quando os computadores começaram a ficar mais acessíveis (pelo menos para quem estudava no MIT), algumas pessoas reconheceram que era possível usar aquelas máquinas de outra forma. Eles efetivamente hackeavam o computador: usavam o sistema da uma forma que ele não foi projetado para ser usado, criando jogos, programas musicais e outras coisas pelo puro prazer de programar o computador.
Muita experimentação depois, no fim dos anos 60 lá na costa oeste dos Estados Unidos (obviamente), alguns desses hackers que também tinham um lado mais político enxergaram importância das pessoas aprenderem a dominar os computadores, antes que os computadores dominassem as pessoas. Deve ficar claro que no fundo o computador não faz nada sozinho: ele faz o que foi programado para fazer. Portanto a preocupação era pela disseminação do conhecimento, para impedir que apenas um pequeno grupo de pessoas soubessem como controlar essas máquinas.
Esses hackers criaram um grupo chamado Homebrew Computer Club onde se encontravam para discutir seus projetos (muitos estavam construindo seus próprios computadores em casa), e pode-se dizer que, em partes, foi dai que surgiu o que hoje chamamos de computador pessoal.
A programação
Ao mesmo tempo que os Hardware Hackers buscavam um computador mais acessível a todos, outros hackers enxergaram a necessidade de criar uma maneira mais fácil para as pessoas programarem esses computadores, e assim surgiram novas linguagens de programação. Uma das linguagens mais importantes que surgiu nessa época foi BASIC, que era uma linguagem relativamente poderosa porém muito mais simples do que a linguagem de máquina, o Assembly, que os hackers usavam até então.
BASIC foi tão importante que era comum você ligar o computador e a primeira coisa que aparecia era uma tela preta com um lugar para você digitar comandos, que deviam ser escritos nessa linguagem. E junto com o computador vinha um manual de BASIC para você saber como dar esses comandos.
Por que esses encontros?
Em algum momento essa vontade de disseminar o conhecimento se perdeu. Muita gente viu o potencial de ganhar muito dinheiro com os computadores pessoais e por diversos motivos foi se deixando de lado a sede pela liberdade e divulgação do conhecimento. Ao mesmo tempo os computadores foram se tornando maquinas complexas do ponto de vista do fuçador, e cada vez simples para o usuário. Porém essa simplicidade passou a ocultar os detalhes da máquina e deixou de estimular a curiosidade das pessoas.
A idéia desses encontros é tentar resgatar um pouco esse espírito dos hackers dos anos 60 / 70. Essa curiosidade de como fazer o computador fazer coisas diferentes do que te disseram que ele foi criado para.
Para isso vamos começar usando a linguagem Python, que por acaso "roubou" várias idéias do BASIC. Por que Python? O principal motivo de usar Python é, além da simplicidade da linguagem, a possibilidade de brincar com ela interativamente.
Assuntos
A lista de assuntos é aberta, de acordo com os encontros e a experiência de cada um vamos acrescentando assuntos à lista.
- terminal, prompt, comando, interatividade
- turtle, desenhando com comandos interativos
- brincando com textos
- ...
Referências
Vamos começar usando esse espaço para listar livros ou links que sirvam como referência para os encontros.
Hackers: Heroes of The Computer Revolution
Conta a história dos hackers dos anos 60 e 70, o começo da ética hacker. Veja mais na wikipedia.
How To Think Like a Computer Scientist: Thinking in Python
Por mais que o titulo fale em "Cientistas da computação" esse livro é um ótimo começo e serve como uma boa referência para Python. Leia aqui.
Program or Be Programmed
Review em [1]
"We Need a Pan Hacker Movement"
Sketchpad.cc
O sketchpad.cc é um site para brincar com a linguagem de programação Processing. Processing é uma linguagem bem simples para a criação de aplicações visuais. Pode ser um bom lugar para brincar e experimentar código :-)
FAQ
Será que eu vou conseguir?
Sim.
Terá streaming, video, gravação, transmissão por fumaça?
Não. Os encontros devem ser presenciais. :)
Coloque aqui sua pergunta
Ou envie um e-mail para a Listas de Discussão