Mudanças entre as edições de "Garoa Gophers"

De Garoa Hacker Clube
Ir para navegação Ir para pesquisar
Linha 43: Linha 43:
   
 
Vamos experimentar a [https://speakerdeck.com/ramalho/como-aprender-qualquer-linguagem-de-programacao-em-4-slides metodologia do prog. Gerald Sussman] do MIT, junto com [https://blog.golang.org/examples Testable Examples] para estudar Go, fazendo a ponte entre o [https://tour.golang.org/welcome/1 Tutorial] de alto nível, as idéias de [https://golang.org/doc/effective_go.html Effective Go] e as minúcias da [https://golang.org/ref/spec Language Specification].
 
Vamos experimentar a [https://speakerdeck.com/ramalho/como-aprender-qualquer-linguagem-de-programacao-em-4-slides metodologia do prog. Gerald Sussman] do MIT, junto com [https://blog.golang.org/examples Testable Examples] para estudar Go, fazendo a ponte entre o [https://tour.golang.org/welcome/1 Tutorial] de alto nível, as idéias de [https://golang.org/doc/effective_go.html Effective Go] e as minúcias da [https://golang.org/ref/spec Language Specification].
  +
  +
'''Quando''': Terça-feira, 29/set/2015, 19:30
   
 
=== Xº encontro: Runefinder na rede ===
 
=== Xº encontro: Runefinder na rede ===

Edição das 19h27min de 28 de setembro de 2015

Garoa-gopher.png

Garoa Gophers é o grupo de estudos da linguagem de programação Go no Garoa Hacker Clube.

Formato

Encontros semanais às 3as-feiras, 19:30, na sede do Garoa Hacker Clube, a partir de 4/ago/2015.

Temas

A serem decididos pelos participantes...

1º encontro: Hello World

  • Experimentar as diferentes formas de rodar um programa, gerando um binário da forma convencional ou usando gorun como se fosse uma linguagem de scripting. Vamos experimentar também outras ferramentas de linha de comando, tipo gofmt etc.
    • Fizemos experimentos e melhorias nos exemplos de download de imagens: https://github.com/garoago/flags
    • Aprendemos que é necessário setar $GOBIN para compilar individualmente cada programa quando existem vários programas com package main no mesmo diretório (isso não é recomendado em código "profissional", mas para experimentos rápidos é útil poder ter vários programas no mesmo package)
  • Discutir as referências existentes para estudar, e definir um plano para os próximos encontros.
    • Resolvemos fazer encontros semanais enquanto estamos começando, e depois rediscutir a periodicidade se for o caso.

2º encontro: A Tour of Go

  • Assistir e discutir o vídeo de Russ Cox, A Tour of Go (34 min.)
  • Estudar os tipos básicos da linguagem, com foco em como cada tipo é alocado em memória e associado a variáveis: como valores, ou como referências. Ver essa discussão. Qual a melhor explicação correta e clara para essas questões?
  • Implementar checagem de erro robusta em uma nova versão do programa de download de imagens.

Não fizemos nada do que planejamos, mas fizemos algo mais legal: começamos a desenvolver o runefinder na base do rodízio (cada um 10 minutos no teclado, como se fosse um coding dojo).

3º encontro: Continuação do runefinder

Repositório de código: runefinder2

  • Andrews Medina mostrou como usar o gocheck
  • criamos alguns tipos próprios, com métodos: RuneSlice e RuneSet
  • implementamos a busca com várias palavras

4º encontro: Estudo de caso - Tsuru

Andrews Medina vai falar sobre o projeto Tsuru, um PaaS Open Source, extensível, escrito em Go, criado pelo time do Andrews na Globo.com e usado em grandes operações além da própria Globo.com.

5º encontro: Como aprender Go ou qualquer outra linguagem

Vamos experimentar a metodologia do prog. Gerald Sussman do MIT, junto com Testable Examples para estudar Go, fazendo a ponte entre o Tutorial de alto nível, as idéias de Effective Go e as minúcias da Language Specification.

Quando: Terça-feira, 29/set/2015, 19:30

Xº encontro: Runefinder na rede

  • salver índice invertido como uma slice de mapas (nosso tipo RuneSet), para simplificar o código da função findRunes que é usada mais vezes que a buildIndex
  • salvar índice invertido e mapa de nomes em um arquivo gob para evitar ler o UnicodeData.txt toda vez (se bem que está bem rapidinho da forma atual)
  • refatorar para uma biblioteca e então...
  • implementar interface telnet
  • implementar interface Web

Pré-requisitos

  • Saber programar em alguma linguagem.
  • Ter vontade de aprender Go com autonomia e o apoio de um grupo.
  • Se quiser colocar a mão na massa, trazer notebook com o compilador Go instalado e seu editor favorito configurado. Veja Golang/Ambiente de trabalho.


Como participar

Basta aparecer na sede do Garoa. Não precisa se inscrever.


Referências