Domine Go: Melhores Recursos Online para Programar em Golang

Foto do autor

By luis

Neste artigo, apresento uma seleção dos melhores recursos disponíveis online para quem deseja aprender e se tornar proficiente em Golang.

Considerando que cada pessoa tem suas preferências no modo de aprendizado, abordarei materiais que incluem artigos textuais, tutoriais, vídeos e cursos populares sobre Golang.

O Golang está experimentando um rápido crescimento em popularidade, e você certamente se sentirá cativado por Go assim que começar a explorá-lo.

Guia do Desenvolvedor

Com uma base de cerca de 50 mil estudantes, este curso é considerado um dos mais completos para aprender Go do zero. Este material foi amplamente testado e se mostra eficaz para a maioria dos alunos; após a aquisição, o acesso é vitalício. Se você prefere aprender por meio de cursos em vídeo abrangentes, este é exatamente o que você busca!

Este curso é perfeito tanto para iniciantes quanto para aqueles que desejam revisitar os conceitos básicos. O curso oferece 9 horas de vídeo sob demanda, além de recursos adicionais e exercícios de codificação.

Alguns dos tópicos abordados neste curso incluem:

  • Configuração, instalação e fundamentos da linguagem.
  • Pacotes e estruturas de arquivos
  • Variáveis, funções, arrays e slices
  • Cobertura aprofundada de maps, structs e interfaces
  • Canais e go-rotinas (programação concorrente)

Bootcamp

Com mais de 300 aulas, o curso completo de bootcamp na Udemy é, sem dúvida, um excelente investimento e o lugar ideal para aprender Golang. Você aprende na prática, criando aplicativos como:

  • Analisador de logs
  • Scanner de arquivos
  • Bloqueador de spam

Além disso, o curso oferece mais de 1000 exercícios práticos.

Juntamente com os fundamentos do Go, como structs, interfaces e canais, este curso inclui um projeto interessante onde você aprenderá como animar uma bola quicando.

Ao final do curso, você também receberá um certificado de conclusão.

Tour de Go

Sou um grande entusiasta da documentação, blogs e tutoriais oficiais do Golang. Este curso interativo é gratuito e não exige nenhuma configuração local. Basta acessar o site e começar a aprender desde o início, com exemplos de código prático para cada tema.

Este é um excelente ponto de partida caso você deseje apenas explorar e aprender o básico sem se preocupar com configurações.

Go por exemplo

Este não é um curso completo, mas sim um recurso para consultar quando você se esquece dos fundamentos. O site aborda todos os conceitos com uma breve introdução textual e um exemplo de código completo e funcional. O site é bastante direto, com foco no aprendizado. Alguns dos tópicos introdutórios incluem:

  • Variáveis e Constantes
  • Laços “For”
  • Condicionais “If/Else” e “Switch”
  • Arrays e slices
  • Maps
  • Range
  • Funções

… e quase todos os tópicos que você precisa! Confira e salve como referência.

Aprenda X em Y minutos

Se você busca uma visão geral rápida dos fundamentos, Aprenda X em Y minutos é um recurso fantástico não só para Go, mas para quase todas as linguagens de programação. É um projeto colaborativo que apresenta uma grande variedade de tópicos em uma única página. Contribua quando se tornar proficiente em Go.

Aqui está um trecho do código do tutorial, que ilustra a programação concorrente em uma função:

// Vamos usar inc para incrementar alguns números concorrentemente.
func learnConcurrency() {
    // A mesma função make usada anteriormente para criar um slice. Make aloca e
    // inicializa slices, maps e canais.
    c := make(chan int)
    // Inicia três goroutines concorrentes. Os números serão incrementados
    // concorrentemente, talvez em paralelo se a máquina for capaz e
    // estiver configurada corretamente. Todos os três enviam para o mesmo canal.
    go inc(0, c) // go é uma instrução que inicia uma nova goroutine.
    go inc(10, c)
    go inc(-805, c)
    // Lê três resultados do canal e imprime-os.
    // Não há como prever em que ordem os resultados chegarão!
    fmt.Println(<-c, <-c, <-c) // canal à direita, <- é o operador "receber".

    cs := make(chan string)       // Outro canal, este lida com strings.
    ccs := make(chan chan string) // Um canal de canais de string.
    go func() { c <- 84 }()       // Inicia uma nova goroutine apenas para enviar um valor.
    go func() { cs <- "wordy" }() // Novamente, para cs desta vez.
    // Select tem uma sintaxe semelhante a uma instrução switch, mas cada caso envolve
    // uma operação de canal. Ele seleciona um caso aleatoriamente entre os casos
    // que estão prontos para se comunicar.
    select {
    case i := <-c: // O valor recebido pode ser atribuído a uma variável,
        fmt.Printf("é um %T", i)
    case <-cs: // ou o valor recebido pode ser descartado.
        fmt.Println("é uma string")
    case <-ccs: // Canal vazio, não pronto para comunicação.
        fmt.Println("não aconteceu.")
    }
    // Neste ponto, um valor foi retirado de c ou cs. Uma das duas
    // goroutines iniciadas acima foi concluída, a outra permanecerá bloqueada.

    learnWebProgramming() // Go faz isso. Você também quer fazer isso.
}

Tão conciso e direto, experimente se precisar de uma visão geral rápida sobre qualquer tópico específico do Golang.

Gotime

Se você gosta de aprender através de podcasts, Gotime é uma ótima opção. Diversos desenvolvedores experientes compartilham suas experiências e como utilizam Go em suas empresas. Também vale a pena conferir a GopherCon (conferência sobre Golang), onde especialistas compartilham seus conhecimentos com a comunidade.

Essas comunidades discutem as últimas tendências e melhorias relacionadas ao Go.

Vou incluir aqui alguns podcasts populares:

Livros

Existem diversos livros muito bons disponíveis. Incluirei aqui alguns dos meus favoritos:

Blogs

Há uma variedade de blogs excelentes sobre Golang. Além disso, você pode encontrar muitos artigos em outros meios de comunicação. Compartilharei alguns que considero úteis:

Youtube

Você prefere aprender através de vídeos?

Se sim, não deixe de conferir este tutorial para iniciantes em Golang do freeCodeCamp.

Conclusão

Recomendo que você conclua um dos cursos mencionados acima se estiver começando agora e deseja ingressar na comunidade Golang. Além disso, compartilhe seus aprendizados com o mundo e contribua para aprimorar ainda mais o Go. Espero que você tenha encontrado informações úteis e desejo sucesso em sua jornada com Go.