Programação Para Não Programadores

De Garoa Hacker Clube
Revisão de 15h56min de 7 de outubro de 2011 por Brunogola (discussão | contribs) (typo)
Ir para navegação Ir para pesquisar

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 es

A idéia desses encontros é tentar resgatar um pouco esse espírito dos hackers dos anos 60 / 70.

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"

[2]

Sketchpad.cc

O sketchpad.cc é site para brincar com Processing. 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