Executando verificação de segurança...
8

Dúvida: Golang, Alternativa Interessante como linguagem secundária?

Olá a todos!
Tenho experiência como desenvolvedor Java a alguns anos, e estou pensando em começar a estudar a sério uma linguagem secundária... Conheço um pouco de JavaScript e python, mas ambas nunca me deram vontade de aprender mais a fundo.
Vi recentemente algumas empresas grandes no BR adotando Go em seus back-ends, e me veio o interesse na linguagem.
Aos que já conhecem Go, recomendam algum livro, site, Canal de YouTube? Todas as recordações são bem vindas.
Fiquem a vontade para falar sua percepção a respeito da linguagem.

Carregando publicação patrocinada...
11

Cara, eu honestamente acho que vale muito a pena aprender golang. Ela traz diversos pontos interessantes (goroutines, erros como valor, ponteiros...)
Já estive na mesma posição que você, sempre trabalhei com java e de 2020 pra cá comecei a aprender e trabalhar com golang e te garanto que foi uma das melhores decisões que tomei na minha carreira.

Sempre que eu quero aprender alguma linguagem nova, eu uso o Exercism para me familiarizar com ela.

É sempre bom relembrar, a documentação oficial também é um excelente norte para entender a sintaxe e como a linguagem se comporta. No caso de golang, eles tem uma trilha de aprendizado que pode te ajudar bastante: https://go.dev/learn/

Um outro site que me ajudou muito foi o Learn go with tests, não só pelo conteúdo em golang em si, mas também por me fazer praticar TDD, que na época era um ponto onde eu tinha muita dificuldade

Para alguns assuntos mais especificos, tenho a recomendação do site do HunCoding, onde ele sempre traz artigos interessantes sobre tópicos relacionados a golang

De canal do youtube, deixo 3 recomendações que me ajudaram/ajudam no aprendizado de golang:

E por ultimo, mas não menos importante, quando se sentir confortável, crie projetos próprios, deixe a imaginação fluir e caso você goste de resolver problemas, tem o site que eu sempre recomendo que é o Advent of Code, onde todo ano em dezembro eles lançam desafios diários com a tematica natalina.

No mais é isso, muito sucesso no seu aprendizado e compartilhe sua trajetória conosco

Forte abraço

2

Legal, não conhecia esse Exercism. Ele parece um ponto bom para iniciar uma linguagem de programação. Irei usar ele nas minhas recomendações (normalmente recomendo o beecrowd e leetcode).

1

Boas adições tuboi, o leetcode realmente é muito bom para você afiar sua logica e aplicar os conhecimentos da linguagem na prática. Esse beecrowd eu não conhecia, vou dar uma estudada e adicionar na minha caixa de ferramentas.

Muito obrigado!

1
4

Esses "eu vi" não tem base real para decidir algo, sua percepção pode estar errada. E de fato eu não vejo tantas empresas adotando Go, a única coisa que vejo é que agora tem algumas vagas, antes tinha próximo de zero.

Eu poderia dizer que é bom porque tem pouco concorrência, mas me parece que tem tanta gente pensando igual e achando que tem tanta vaga fácil, que nem tem a vantagem de ter menos concorrência.

A recomendação que eu dou é para fazer o que gosta e melhorar sua capacidade na computação. Você dificilmente saberá o que será bom para você ou não. Pessoas aleatórias na internet sabem menos ainda o que é bom para você.

Garanta que está bem na matemática, comunicação e expressão e ciências. Depois toda a computação, aquilo que existe desde os anos 60 pelo menos. E aí vai nas tecnologias e metodologias, e vai procurando oque é interessante. Um bom desenvolvedor é sempre melhor que um seguidor de receitas de bolo de uma linguagem específica.

Cada pessoa é diferente e escolher se deve aprender algo ou não, sem ter que depender de outras pessoas é uma característica que um bom desenvbolver deve ter, é algo que faz parte de quem quer ser sênior precisa treinar. È conseguir decidir com muitas informações, não com alguém "mandando" na sua vida.

Veja mais em https://www.tabnews.com.br/maniero/faq-do-programador-perdidao.

S2


Farei algo que muitos pedem para aprender a programar corretamente, gratuitamente (não vendo nada, é retribuição na minha aposentadoria) (links aqui).

3

É ótimo ter Go no pool de linguagens, mas é sempre bom lembrar que Go se programa de uma maneira totalmente diferente de Java, .net, etc..

Não traga vícios para o Go, que irá desfrutar o melhor da linguagem.

2

Salve mano, vai de cabeca em Golang, a curva de aprendizado da linguagem eh bem pequena em relacao a outras linguagens de backend pelo simples fato da linguagem ter uma sintaxe simples.

Recomendo voce procurar a documentacao oficial da linguagem antes de qualquer coisa.

2

Tenho estudado GO ultimamente.

Ela tende a ser simplista e elegante. É uma das razões que me fez gostar muito. Ela não usa a abordagem de orientação a objeto das outras linguagens, isso traz um estranhamento no começo. Mas depois que se adapta a nova abordagem, parece ser mais lógico.

Outra coisa, ela é sintáticamente estável. A linguagem recebe poucas mudanças. E os desenvolvedores dela são bem relutantes em grandes alterações. Cada mudança é muito bem pensada.

Amo o jeito como lindam com a tabulação (gofmt) e o gestor de pacotes.

Para CLI ela é embatível.

Para GUI, existe uma solução elegante com Wails.

O único ponto complexo ao meu ver, é o uso do CGO (ponte entre GO e C) que particularmente prefiro evitar ao máximo. E isso afasta o uso de ótimas bibliotecas escritas em C.

E quando se porta as bibliotecas de C para GO pura, perdesse muita velocidade por causa do garbage collector.

Fui atrás do GO depois que descobri que o Prometheus e o Grafana são escritos em GO.

1

Isso ai! Cometa o mesmo erro de 99% dos devs. Seja como um pato, que voa, nada, anda e corre, mas não faz nada direito. O verdadeiro generalista, mas não é especialista em nada.

A verdade dói, me julgam por isso, mas o mercado real é implacável. Sempre vão te pagar pelo nível de profeciência que você tem.

Vou dar uma dica, porque conselho bom é pago. Seja especialista em Java! Eu também trabalho fom Java, mas a diferença é que por eu ser ESPECIALISTA, eu ganho o dobro de um dev mediano generalista. Eu trabalho pra gringa há 6 anos, mas tenho 20 anos de carreira só em Java. Atualmente ganho 11 mil dólares por mês, morando na Europa, que aqui dá em torno 9.400 euros, que é uma fortuna aqui (pra ter ideia, a renda média daqui é de 2.500 euros por mês).

1

Ser "especialista" se refere a uma linguagem em específica (como Go ou Java) ou a uma área (como backend)?

Eu pergunto isso por alguns motivos:

  • A primeira linguagem que aprendi "de verdade" foi Go com meu professor de Lógica de Programação;
  • Eu venho "estudando" (mal estudei por muito tempo, comecei a estudar "de verdade" agora) a linguagem desde então – fiz (e estou fazendo) isso pelo mesmo motivo que você disse, de se tornar "especialista" em uma tecnologia;
  • E meu objetivo é trabalhar remotamente (ou não) pra gringa, onde parece que o mercado de Go é bem aquecido.

Me parece que eu preciso ser "especialista" em Go para conseguir uma vaga remota pra gringa – mesmo sabendo que preciso de experiência aqui no Brasil antes (um pouco difícil com essa linguagem) e afiar meu inglês. Então, complementando minha pergunta inicial, o "quanto" eu preciso ser "especialista" para atingir meu objetivo? Eu preciso ser "especialista" também em arquitetura, design patterns, banco de dados (SQL e/ou NoSQL), messageria... e mais?

Edit: vi nos seus comentários que você estava trabalhando na área financeira, pode falar mais sobre isso? Se você trabalha com os dois (TI e financeiro), como foi a mudança, qual área do mercado financeiro te permitiu isso...