Executando verificação de segurança...
7
Spigen
2 min de leitura ·

Troquei Java por Golang

Colegas desenvolvedores, gostaria da análise de vocês sobre meu cenário particular.

Eu sou engenheiro eletrônico de formação. Atuei cerca de 2 anos com desenvolvimento de software embarcado C/C++. Fui um mero integrante de equipe, apenas seguindo as tasks que me eram delegadas por meio dos superiores. Ainda me considero um Jr. Final de 2022 decidi me reposicionar para atuar com tecnologias de mais alto nível. Não acho que o nicho de sistemas embarcados tenha um futuro próspero no Brasil. Mas isso é uma conversa para um outro dia. Ocorre que desde o início de 2023 eu estava tentando me especializar em Java e com isso, me tornar backend. Agora no final de Outubro, consegui uma oportunidade numa StarUp com vínculo não-remunerado. Mesmo estando fora dos meus planos, terminei aceitando. Foi o que a vida me deu de concreto, enquanto o Java ainda está no campo das possibilidades. Ao menos, foi assim que pensei.

Eu gostaria da análise de vocês sobre esse cenário. Eu vinha me preparando para atur numa coisa e acabei por me encaixar em outra. Conheço pouco do mercado de Golang no Brasil. Do que pesquisei, me parece que ainda é algo nichado. Não vi nenhuma vaga para estágio ou júnior. A maior parte delas é para Pleno ou Senior. E tenho a ligeira impressão (posso estar enganado), que uma parcela dessas é preenchida com desenvolvedores experientes de outra Stack, mas que consegueriam se adaptar bem, uma vez que os paradigmas de desenvolvimento permanecem os mesmos, mudando apenas a sintaxe de linguagem, dentre outros detalhes. Vocês acham que fiz certo em correr atrás dessa oportunidade em Go? Acham que tem futuro aqui no Brasil? Estou vendo que a curva de aprendizado é bem menor do que a de Java, e pra ser sincero, é bacana de se estudar, mas não entendo muito do mercado em si.

Carregando publicação patrocinada...
2

Me identifico com a tua história. Me formei final de 2012 em Engenharia de Computação e estava empenhado a seguir carreira na área de embarcados (meu tcc foi um CLP utilizando FPGA como núcleo de processamento), mas se hoje já é dificil emprego na área, imagina naquela época, então como queria logo começar a trabalhar comecei com desenvolvimento web. Pra resumir a história até hoje trabalho com web e não me arrependo, ja fui full stack, já atuei somente com back-end e tudo isso foi muito importante, até a graduação que eu achava que tinha sido uma perda de tempo me ajudou muito. Então relaxa, adiquire primeiro mais experiência de código seja qual for a área (de preferência as que tiverem mais vagas pra júnior) e bem devagar vai incluindo linguagens que tu mais se identifica e gosta porque isso pesa depois de um tempo.

Na minha opinião ir direto pro golang pode ser mais sofrido (mas não impossível) em relação a vagas, a não ser que você se dedique bastante a fazer projetos pessoais mais complexos que possam ser mostrados pra algum recrutador. Java apesar de ter muitas vagas é uma linguem horrível (na minha humilde opinião), so voltaria a trabalhar com isso se não tivesse jeito, mas se você gosta vai fundo.

Bem, no fim das contas acho você tem que adiquirir mais experiência de vida codando, se divertindo de alguma forma, infelizmente as empresas majoritariamente querem alguém com um bom expertise, não alguém que eles tenham ainda que ensinar algo.

2

Muito obrigado pela atenção. Fiquei muito feliz de me deparar com um colega da engenharia! Eu tinha o sonho de trabalhar com sistemas embarcados, hehe...mas a realidade de mercado pesou mais, afinal de contas, a gente precisa pagar as contas. O meu TCC foi um sistema de hardware e software com o protocolo CAN para veículos automotivos pesados.

Como falei na postagem, eu abrecei o Golang mais por uma questão de pragmatismo. Foi o que a vida me deu, nesse campo de web. Eu também tenho a sorte de que na empresa, eu sou visto praticamente como aquele estágiario novatão, que precisa sempre de paciência. Daí as pessoas são super compreensíveis comigo. Então, termina que esse ambiente é bem bacana pro aprendizado. Basicamente, é aquela experiência de aprender botando a mão na massa.

Eu ainda to conhecendo o mercado de Golang. Sei que Mercado Livre e PicPay trabalham com ele, mas mesmo assim, são oportundidades mais seletas, né? O ponto positivo é que, como o mercado é pequeno, talvez, seja uma boa para adquirir visibilidade e experiência, para num futuro, quem sabe, quando o mercado estiver de fato mais aquecido sobre essa linguagem no Brasil, concorrer a uma vaga melhor...

Sobre o Java, bem...meu plano de estudar Java é que até onde vi, o mercado é muito grande no Brasil, e eu tenho a leve impressão de que o número de pessoas tentando se aventurar nele é menor do que em outras tecnologias. O que eu achei interessante do Java, é que ele explora bem muitos conceitos de programação: POO, etc. Isso constrói uma base bem bacana de aprendizado. Por outro lado, tudo isso torna a curva de aprendizado uma tarefa muito cansativa. Eu cheguei a estudar por alguns livros, e a media de páginas eram 800 ~ 1200 por livro. É muito conteúdo mesmo.

2

Opa. Eu formei em Engenharia de Controle e Automação. Meu TCC foi na área de Machine Learning, meu primeiro trabalho como desenvolvedor mobile, meu segundo como desenvolvedor de sistemas embarcados com IA (com visão computacional), e agora sou engenheiro de dados.

Minha opinião resumida é que tecnologias nascem e morrem, e é difícil sabermos quais serão substituídas e quais se tornarão "mainstream". Ninguém tem bola de cristal. Eu tinha experiência em Xamarin, que foi o que me fez conseguir meu primeiro emprego. E mesmo com essa experiência, eu não teria coragem de mexer com Xamarim de novo. Se precisar fazer mobile cross-platform de novo, refiro aprender React Native, Flutter ou Kotlin Multiplatform. Os paradigmas de desenvolvimento são praticamente os mesmos, só muda sintaxe, como você disse.

Eu gostaria de te fazer duas perguntas.

  1. Você disse que conseguiu uma oportunidade não-remunerada numa StartUp e largou seu emprego de 2 anos com sistemas embarcados. Você está trabalhando de graça, mesmo com 2 anos de experiência em desenvolvimento??

  2. E também queria te perguntar porque você acha que a área de embarcados no Brasil não tem futuro. Eu não compartilho sua visão, mas talvez você tenha alguma informação que eu não tenha. Porque você chegou nessa conclusão?

2

Resposta da pergunta 1:

Sim, estou trabalhando de graça. Chocante, não é? Mas, infelizmente, o mercado está absurdamente duro para quem está tentando ingressar nele. Digo ingressar, porque por mais que já fosse desenvolvedor C/C++, parece que o mercado de web não valoriza essa expertise. Andei conversando com outros desenvolvedores que também atuaram nesse tipo de nicho (sistemas embarcados) e se reposicionaram para web, e a impressão deles também é a mesma. E o mais duro de tudo isso, é que sou formado numa renomada universidade pública, mas mesmo assim, outros caras de "uniesquina" (sem preconceitos) saem na frente por estarem atuando em web desde o início da faculdade. Experiência é tudo no mundo profissional, não é mesmo?

Resposta para a pergunta 2:

É uma leitura particular minha acerca da realidade do PIB brasileiro. O mercado de sistemas embarcados está intimamente ligado com o desenvolvimento industrial. A indústria brasileira capenga, e dentro das que existem, tudo é terceirizado, isto é, o Brasil não desenvolve suas próprias soluções. Vou ser mais concreto: Não existe uma marca de multímetro genuinamente brasileiro. Tudo é comprado de fora, e aqui no Brasil, apenas se monta. Um caso clássico disso é a marca Minipa. Até onde me consta, todos os dispositivos deles são Chineses. Apenas são vendidos no brasil com outro selo.

Também não acho que o futuro seja promissor sobre esse mercado. O Brasil tem problemas muito sérios: criminalidade, combate a fome e a pobreza, saneamento, etc...O Desenvolvimento de uma matriz industrial não tem como se tornar prioridade diante de tantas sangrias assim.

2

Pela minha experiência (20 anos de carreira) a linguagem está ligada diretamente ao nicho que deseja atuar, se pretende adentrar grandes empresas do mercado não há dúvida que o foco deve ser Java ou .Net. Se quer atuar em startups o foco já muda para JavaScript (NodeJS), Go. Se for ciência de dados Python. Mas como um colega já disse as tecnologias veem e vão, Ruby On Rails já foi a preferida das startups, hoje já não ouço tanto a respeito. Eu já atuei com Delphi, Java, NojeJS, PHP, Python, Groovy, Ruby On Rails, no momento as inovações trabalho em NodeJS e as manutenções são em Java. Java é complexo de aprender e muitos estão evitando ela ultimamente, por conta disso cada vez mais temos menos profissionais na área, o que torna o mercado bom, pois os legados não vão desaparecer nas próximas décadas. Temos dificuldade em encontrar bons profissionais de Java no mercado, mas para atuar neste mercado desprovido de profissionais tem que aprender o java corporativo que é o clássico JEE com JSF e APIs SOAP e REST. Uma startup geralmente vai querer coisas mais novas, como rodar uma aplicação em um container onde a cobrança é por hora de GB de RAM e tempo de CPU, então vão evitar Java e preferir Go para aplicações nativas ou NodeJS ou outra linguagem de bootstrap rápido e leve para economizar na nuvem.

1

pelo que eu percebi em relação a vagas para Java, sim existem muitas (pelo menos no linkedin). Porém, somente para pleno ou sênior. Não tem para júnior.

Ai entra aquela questão, por exemplo eu, já fui promovido a dev pleno, trabalho com js/ts e um pouco de PHP. Nunca trabalhei com Java, se eu for procurar vaga pra Java, entro como pleno?

Acredito que não, porque a maioria das vagas que pedem de pleno ou sênior, já exigem no mínimo 3 anos de experiência com Java em si!

acredito que seja muito relativo!

E sim hà uma falta de programadores em Java, não só pelo fato da linguagem ser mais verbosa, mas sim pela falta de oportunidades para quem está começando nela.

Todo pleno ou sênior, foi junior um dia... mas como em Java não querem juniors, cada vez mais vagas e menos pessoas...

0
1

Eu não me preocuparia com a linguagem, eu me preocuparia em fazer o melhor possível com ela. Isso por que, como outros colegas disseram "tecnologias veem e vão". Pessoalmente desenvolvo bem em JS (Node e uma caralhada de frameworks para o front), Python (incluindo aqui back "generalista" e também análise de dados) e irá fazer quase 2 meses que estou estudando Go e também já trabalhando com ela no mesmo período de tempo.

Para mim Go foi e está sendo maravilhoso, a sua simplicidade somada a sua capacidade é espetacular. Como você mesmo disse, "é bacana de se estudar".

Pode não ter tantas vagas quando se compara, por exemplo, com vagas para JS ou Java. Mas se tu aprende bem uma linguagem aprender outra é super fácil. Já diz o ditado que "quem tem limite é município", se limitar a oportunidades por causa de uma linguagem, na minha humilde opinião, te limitará a diversas outras oportunidades que ainda surgirão.

1

Assim como praticamente todas as vagas "A maior parte delas é para Pleno ou Senior", Go é bom, quase todas as linguagens são boas. Mas é coisa muito específica. Com Java tu teria muito mais chances.

0
0

Não sei o motivo mas acho que teve um boom! inicial, mas parece que a galera não gostou.
Eu iria de Python já que a própria Oracle está usando e não "trocaria", não vejo nennum problema saber várias linguagens, eu sei Visual Basic, VBA, PHP, Java, Autohotkey, vi um pouco de Lua e Python...
Java está muito bom na sua versão 21, o uso da framework Spring, a linguagem Kotlin, a IDE IntelliJ e automação com Gradle.
https://dev.java/

0