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

Vou aprender Golang até o fim do ano!

Um pouco sobre mim

Meu nome é César Carriel moro no Mato Grosso do Sul, atualmente atuo como CTO na Mercado Radar uma startup de análise de dados e big data para e-commerce, já tenho uma certa experiência com Python, Django, Django Rest Framework entre outras tecnologias do ecossistema do Python.

Motivação

Quando fiz faculdade pude aprender várias linguagens de programação como C, Java, Javascript, Python, Golang entre outras, mas acabei me dedicando no Python porque na época já gostava da linguagem e era interessante para meu trabalho da época. Com o fim da faculdade acabei focando de vez em trabalhar com Python já que não tinha a obrigatoriedade de programar em outras linguagens, depois de um tempo comecei atuar como desenvolvedor backend em uma startup usando Python e Django e de lá para cá nunca mais usei outra linguagem.

Como já algum tempo que não trabalho com outra linguagem resolvi que aprenderei Golang, já tive algumas aulas dessa linguagem na faculdade há alguns anos e também já vi alguns vídeos do canal FullCycle, eu gostei bastante da linguagem na época, mas não me lembro de quase nada de sua estrutura.

Como planejo fazer isso

Como material para meus estudos tentarei usar apenas o que houver de graça na internet, em um próximo post descrevo melhor como será a minha estratégia para os estudos, mas já posso adiantar que usarei bastante dos conteúdos do canal FullCycle se tiverem mais alguma sugestão é só me enviar.

Para praticar vou usar o CodeWars inicialmente e depois começarei a implementar alguns projetos mais simples que encontrar no Backend Challenge.

Para documentar minha evolução nos estudos planejo criar um projeto no LogSec e usar como um diário do meu aprendizado.

Por fim quero refazer meu projeto de TCC que era um aplicativo para coleta de informações de infestação de pragas da cana-de-açúcar que darei mais detalhe dele em um post no futuro, mas basicamente era um aplicativo em React Native e uma API em Javascript com AdonisJS onde era possível fazer o gerenciamento de armadilhas georreferenciadas para pragas e a atualização dos índices de infestação dessa praga no passar do tempo, ainda não sei se irei refazer o aplicativo, mas para o backend implementarei também algumas funcionalidades que não consegui implementar na época.

Até o próximo post!

Carregando publicação patrocinada...
1
1
1

Muito bom César! Tenho muita vontade de fazer o mesmo, vi alguns códigos em Golang que me chamaram muita atenção, estive no meio da ponte da escolha entre o Rust e o Golang, acabei optando pelo Rust por gostar bastante de como funciona C e C++, mas quero muito estudar Golang no futuro. Já guardei até alguns códigos para praticar, um deles cria PDFs de notas fiscais.

1

Legal! Também estava em dúvida se iria aprender Golang ou Rust, mas acabei optando pelo Golang nesse momento, mas quem sabe no futuro faço algum projeto para aprender Rust.

E também já vou deixar marcado aqui para fazer algum projeto de geração de PDFs, aproveitando sua ideia.

1

Muito bom! Eu também tenho essa mesma vontade, até já vi um material legal para começar. Existe um canal no YouTube bem interessante, que é o "Aprenda Go". Fica a recomendação. Bons estudos!

1
1

Também estou nessa de aprender Go, trabalho com JavaScript e tecnologias ao redor dela (Node, Angular), tenho conhecimentos sobre Java mas é uma linguagem que nunca gostei, e trabalhando em uma empresa que a cultura cloud é muito forte analisei e vi que muitas coisas desse universo são feitas com Golang, tipo Kubernetes entre várias outras. Comecei a pesquisar e depois a estudar sobre e definitivamente é uma linguagem na qual vou me dedicar profundamente. No momento estou fazendo o curso Aprenda Go no youtube, que é muito bom e o que tbm estou gostando são alguns artigos no site da treinaweb.

1

Que legal saber disso, vou incluir aqui para fazer algum projeto com Kubernetes também.

Muito obrigado pelas indicações, já deixarei anotado.

Muito obrigado!

1

Eu tambem estou inclinado a estudar Go, estou fugindo do universo Javascript e achei muito legal Go, sua proposta. Só estou em dúvida se aprendo Go vou pro PHP + Laravel, pois ainda estou em busca da minha primeira vaga e não sei como anda o mercado de Go no Brasil

2

Eu já trabalho com Go e concordo com o CesarCarriel.
O mercado de Go é muito bom e não esfriou como os outros mercados. Porém, também nunca vi uma vaga de júnior com Go.

1

pelo que vi, me parece ser mais para pleno e senior. Cara, eu vou prestar o Enem de 2024 visando entrar em ciencias da computação presencial. Ate la, quero escolher uma linguagem e focar nela. Eu tirei este mes para pesquisar e "experimentar" todas as minhas possibilidades e acabar com a duvida do "QUal linguagem escolho?". Eu ja sei que quero o back end. Então eu estava inclinado para Go por ser bem promissora e eu estou entre ela e o C#. Eu vou pesquisar o C# e ver como esta. Realmente o que esta me impedindo de escolher o Go é este fato que voce mencionou!

1

Acho que vou só dificultar sua escolha, mas não me lembro de ver vaga júnior ou trainee para trabalhar com C#.

As linguagens que mais abrem portas para quem está começando são JavaScript, Python, PHP e Java.

1

Não, pelo contrario. Toda ajuda é bem vinda! Realmente java e spring bot, ne? É algo a se pensar também. Muita gente fala isso e outras dizem que Java da mais vagas para pleno e senior. Isto pode ate ser verdade, mas o fato de que java é bastante odiado, abre mais vagas

1

Java, tal como o JavaScript, é polivalente, servindo para praticamente qualquer área em programação.

Já disse em algum lugar e repito: se eu fosse começar hoje, meu eu experiente recomendaria para meu eu iniciante que escolhesse javascript e, como sou muito fã de go, que mudasse para go num momento oportuno.

1

Olha não estou muito por dentro do mercado de PHP, mas essa linguagem é muito popular e sempre tem vagas já que tem muito sistemas construídos com elas, já Golang é uma linguagem mais nova, mas já está sendo adotadas por grandes empresas até aqui do Brasil sempre vejo vagas de Golang no Linkedin.

Mas talvez como você busca a primeira vaga e já conhece Javascript vale a pena tentar se candidatar em alguma vaga dessa linguagem, já que se você for mudar de linguagem haverá um tempo até você domina-lá.

1

Olha, JS me desaminou bastante com o tanto de frameworks que é lançado com frequencia e a enorme concorrencia. Como falei em outro comentario, eu vou ter o resto deste ano e o de 2024 inteiro para me especializar em uma linguagem. Eu sei que TI não para imediatista e estou pensando a longo prazo, entende? Então como falei em outro comentario, tirei este mes para pesquisar e escolher a tecnologia que irei focar pelo proximo ano. GO me chamou bastante atenção, mas o fato dela ter poucas vagas para jr é um empecilho, não sei se isto vai mudar nos próximos anos. Eu estou na duvida entra Go e C#. Eu prefiro tirar este tempo para pesquisar e fazer uma escolha concreta do que ficar pulando de galho em galho e virar um especialista em Hello, World

1
1
1

Espero que você esteja bem! Incrível saber que cada vez mais gente explorando o mundo do Golang. Eu comecei recentemente e estou simplesmente fascinado com tudo o que essa linguagem pode fazer. Queria te desejar muita sorte nessa jornada emocionante!

Ah, e falando em aprender Golang, descobri que tem sido um verdadeiro impulso para o meu progresso: livros! É um um conselho tradicional, mas acredite em mim, eles realmente fazem a diferença. Atualmente, estou mergulhado em um livro chamado 'A Linguagem de Programação Go'. É simplesmente brilhante! Ele desmistifica conceitos complexos e me ajuda a entender o potencial incrível do Golang.

Esses livros ainda estão com um preço super acessível. Acho que é uma oportunidade que não podemos deixar passar. Tenho uma lista de outros títulos na minha mira que pretendo adquirir em breve.

Se você quiser conferir o livro que estou lendo, dá uma olhada neste link: A Linguagem de programação Go Acredito que você também vai adorar a jornada que essas páginas nos proporcionam.

Boa sorte.

1

Muito obrigado pelas indicações, realmente não incluí livros no meu plano de estudos inicialmente, mas acabei gostando da proposta do livro "A Linguagem de programação Go" que você indicou e já comprei ele para incluí-lo no plano de estudos.

1

Opa mano, eu fiquei animado ao ver o seu post sobre aprender Golang. Mas vou compartilhar algo bem interessante sobre Rust. Vou te mostrar como Rust pode te ajudar de uma forma um pouco melhor que o Golang (na minha opinião)

Golang é bacana e tudo, mas o tratamento de erros às vezes pode ser um pouco vago. Dá uma olhada nesse código Golang:

package main

import (
	"fmt"
	"errors"
)

func divide(a, b float64) (float64, error) {
	if b == 0 {
		return 0, errors.New("Divisão por zero")
	}
	return a / b, nil
}

func main() {
	result, err := divide(10, 0)
	if err != nil {
		fmt.Println("Erro:", err)
		return
	}
	fmt.Println("Resultado:", result)
}

Aqui estamos utilizando um tipo de erro simples. Mas e quando precisamos lidar com erros de tipos diferentes? É aí que Rust se destaca com seu "pattern matching" e os tipos "Result" e "Option".

Dá uma olhada nesse trecho de código em Rust:

fn divide(a: f64, b: f64) -> Result<f64, String> {
    if b == 0.0 {
        return Err("Divisão por zero".to_string());
    }
    Ok(a / b)
}

fn main() {
    let result = divide(10.0, 0.0);
    match result {
        Ok(val) => println!("Resultado: {}", val),
        Err(err) => println!("Erro: {}", err),
    }
}

Nesse exemplo, estamos usando "Result" para representar sucesso ou erro, e o "match" para fazer uma correspondência com os resultados. Isso traz uma clareza incrível ao lidar com diferentes cenários de erro.

E quanto ao "Option", ele é bastante útil em situações em que um valor pode ser nulo. Enquanto Golang utiliza o conhecido "nil", em Rust a abordagem é diferente. Olha só esse pedaço:

fn find_element(arr: &[i32], target: i32) -> Option<usize> {
    for (index, &value) in arr.iter().enumerate() {
        if value == target {
            return Some(index);
        }
    }
    None
}

fn main() {
    let arr = [1, 2, 3, 4, 5];
    let target = 3;
    match find_element(&arr, target) {
        Some(index) => println!("Encontrado no índice: {}", index),
        None => println!("Elemento não encontrado"),
    }
}

Nesse caso, estamos utilizando "Option" para expressar a possibilidade de um valor nulo. Isso ajuda a escrever um código que lida explicitamente com essa situação, evitando surpresas desagradáveis.

Eu, particularmente, até gosto do Golang. Acho uma linguagem muito bem feita e bem aquitetada. Mas eu sinceramente recomendo pelo menos dar uma chance ao Rust.

Independentemente da sua escolha, continue na jornada de aprendizado e não hesite em buscar mais informações.

1

Muito obrigado pelo comentário, gostei bastante do código em Rust, acredito que após a série de Golang iniciarei uma de Rust.

Muito obrigado!

1

Cara, muito legal sua metodologia. Bem motivadora. Eu também estou iniciando meus estudo em golang. Vou acompanhar seu prpgresso.

0

Muito bom, otimos estudos , Go é top de mais principalmente no mundo cloud , se uma pessoa se garante nesse assunto fica disputado no mercado. boa sorte amigo!