Esse desenvolvedor foi TJ Holowaychuk. Ele foi o autor de muitos dos pacotes npm mais usados e contribuiu para as principais bibliotecas JavaScript.
Mas ele era realmente uma pessoa real. E um dia em 2014, ele decidiu deixe a comunidade Node para se concentrar em Go.
Muitas pessoas sentaram-se em suas cadeiras. Ir?
Sim. Ir.
A linguagem alcançou o nível de promessa de que mesmo alguns dos desenvolvedores mais influentes estavam se aproximando dela.
A comunidade Go abraçou TJ de braços abertos.
Então, por que esse desenvolvedor prefere a relativa simplicidade e sintaxe direta do Go em relação a idiomas alternativos de back-end?
Para pessoas como eu que são autodidatas, o Go ofereceu uma grande oportunidade de mergulhar em diferentes áreas da ciência da computação e engenharia de sistemas.
O Go é semelhante ao C, mas com segurança de memória e um tempo de execução para simultaneidade interna. E, nesse sentido, é muito "mais próximo do metal", por assim dizer, quando se trata de interagir com os primitivos gerais que subjazem aos sistemas operacionais.
Agora, construo principalmente sistemas distribuídos. Antes de aprender, o Go minha formação era - como TJ - principalmente em Node e JavaScript. O nó faz muitas coisas bem, mas não a simultaneidade. E o Node não é mais a ferramenta de escolha para quem trabalha em sistemas distribuídos. Em vez disso, o Go se tornou o idioma de referência.
Ir como idioma
Go é uma linguagem compilada estaticamente famosa por sua sintaxe simples e direta. Ele aborda as armadilhas comuns do C, mantendo seu desempenho e interoperabilidade.
Apesar dessa simplicidade, o Go foi projetado para lidar com a simultaneidade. E sofre com a complexidade que isso implica.
Go também é bastante idiomático, o que torna as melhores práticas um pouco esquivas.
Um dos recursos mais atraentes do Go é a facilidade de começar. Os alunos geralmente lutam para escolher recursos dentre os milhares disponíveis.
Com isso em mente, aqui estão algumas sugestões opinativas sobre por onde começar.
Livro recomendado: Essential Go
O Essential Go fornece uma visão abrangente do idioma. É um excelente recurso para iniciantes e intermediários.
Ele cobre as estruturas de dados fundamentais da linguagem em profundidade.
Também explica a simultaneidade e as Goroutines, fornecendo informações sobre as melhores práticas idiomáticas.
Livro Recomendado: The Little Go Book
Outra boa opção para quem quer começar rapidamente.
O livro Little Go aborda o básico. Pode estar desatualizado, mas os fundamentos abordados não foram alterados.
Curso recomendado: Learn Go Programming
O abrangente mergulho de 7 horas do freeCodeCamp no Go. Melhor abordado em blocos, este é um excelente recurso para iniciantes.
O conteúdo do curso também o torna útil para programadores intermediários do Go que desejam recapitular tópicos diferentes.
A melhor maneira de começar é começar a escrever código.
Learn Go With Tests é uma ótima introdução para aprender os meandros do idioma.
Blog recomendado: o blog sobre idioma de programação Go
Essa é a fonte de fato de informações sobre novos recursos e melhores práticas no Go.
Este blog possui um excelente conjunto de recursos para desenvolvedores.
Novos recursos, práticas recomendadas e padrões de Go são todos descritos em detalhes aqui.
Recomendar documentação: GoDoc
O GoDoc é o recurso mais usado pelos desenvolvedores do Go.
É uma fonte única para toda a documentação na biblioteca padrão e em pacotes de terceiros.
Os alunos são incentivados a se referir a este site como o primeiro porto de escala.
Depois de dominar os fundamentos do Go, esse será o único recurso necessário.
Leitura recomendada: a especificação de idioma Go
Finalmente, o manual de referência para Go é uma ótima fonte de informações para perguntas que você terá ao escolher as coisas.
Como em qualquer linguagem de programação, você precisará escrever código para melhorar. O Go é flexível e possui uma ampla variedade de aplicações.
Encontre um projeto de interesse e use o Go, fazendo uso particular do GoDoc à medida que avança. Um bom lugar para começar é https://tour.golang.org.