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

Fico pulando de stack em stack e não evoluo. Mais alguém?

O título resume: eu sempre penso que se estou na tecnologia tal e mudar pra outra, vou aprender e dominar e ficar bom nela e, assim, conseguir um emprego com ela. A que está na mira da vez é C# e .NET.

Porém refletindo, eu já passei por Java, a última que trabalhei antes da demissão era Javascript (React no front, Nest com Node no back, em TS). O problema é que eu não domino nada a fundo e nem com alguma segurança. Claro que aprendo um pouco sobre e sei mais ou menos o que está acontecendo, mas sem profundidade. Acho que é por isso que fico mirando em outras stacks, especialmente em voltar pro Java ou ir pro C#, que são mais corporativas, robustas e, na minha cabeça, são stack de carreira que, uma vez que tu entra, tu só coda nela daí em diante.

Vendo alguns vídeos do Deschamps, e pensando um pouco, eu me dei conta (de algo que sempre soube na real) que é a tecnologia que serve o produto e não o contrário. Como disse o Steve Jobs, tem que pensar da experiência do usuário e então regredir até a tecnologia pra construir o produto, e não sentar com os técnicos e tentar produtizar a stack.

O problema disso é que quando eu escuto em resolver problema de negócio ou produto, eu penso imediatamente em UX/UI. Então penso que devo aprender isso, fazer algum curso, e também um curso de figma, e também escolher algumas tecnologias de front e, em cima delas, fazer cursos, dai escolher um back e fazer curso também, tudo visando o aprendizado. De repente a coisa fica avassaladora porque, apesar de ter experiência na área (quase 3 anos, porém estou fora do mercado), eu sempre acabo voltando pra cursos e stacks.

Teoricamente uma solução pra isso seria escolher alguma stack, JS por exemplo, e criar projetos reais que resolvem problemas reais, como dizem no linkedin. Mas eu não sei o que criar porque tudo que penso em fazer ou é muito bobo ou meio que não resolve nada de fato. E pra quê eu vou copiar um produto que já tem no mercado se já tem no mercado? Mesmo assim quando penso em algo acabo voltando pro pensamento de "pra criar preciso saber de front e rotas e design e back e docker e banco de dados e subir" e acabo sem evoluir e sem fazer nada.

Alguém já passou por essa situação? Como resolveu?

Carregando publicação patrocinada...
3

Meus 2 cents,

Vou indicar o "hours concours" aqui do TABNEWS sobre DEV (tem alguns pontos que nao concordo, mas a questao eh o panorama geral e ainda nao vi coisa muito melhor).

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

Agora, um detalhe: stack eh (praticamente) irrelevante - como estao seus fundamentos ?

SOLID, design patterns - para um DEV eh o feijao com arroz.

As stacks mudam (muito): ja trabalhei com COBOL em JCL, clipper no DOS, Delphi no windows, PHP nos anos 90 e um monte de coisas obscuras ou famosas (ja ouviu falar de DATAFLEX ou MUMPS ? pois eh...). Diria mesmo que, grosso modo, a cada 10 anos as stacks mudam (a tecnologia avanca de tal forma que forca o surgimento de uma nova stack que aproveita estes recursos mais recentes).

De qualquer forma, alguns pitacos:

INGLES: Como esta seu ingles ? Ter um ingles bom (B1/C2/C1) ajuda um bocado

REDES: Como esta seu conhecimento sobre redes/infra ? Sabe o que eh/como funciona IPv4, IPv6, DNS, gateways, rotas ? Pois eh, trabalhar com internet sem saber como a internet funciona as vezes da uma certa dor de cabeca. Nao eh para ser analista de infra, mas ter uma nocao de como estas coisas funcionam.

LINUX: Saber instalar/trabalhar em um servidor linux ajuda um bocado. Nao eh para ser o mestre - mas o terminal/bash nao pode ser um bicho de 7 cabecas, pelo menos no basico.

IA: Nao eh para ser "engenheiro de prompt" - mas saber como usar a IA no dia-a-dia e em projetos (p.ex. RAG). Voce pode gostar dela ou nao, mas nao da para fugir do impacto que ela vem causando na sociedade.

Python: Flexivel e ajuda um bocado para usar IA em projetos. Voce pode construir todo um projeto em C#, React ou Laravel - mas tambem pode criar a parte de API usando Flask para interagir com IA (facil e ampla documentacao).

Ficam meus votos para que voce encontre teu caminho.

Saude e Sucesso !

3

Olhando o seu comentário, vc é o famoso generalista. Faz de tudo mas não sabe fazer nada por completo. Não estou querendo dizer q vc é ruim, mas qndo vc não tem especialização em algo, a tendência é não saber as nuances das tecnologias e onde cai essa impressão de não ser bom com aquilo.
Mas nem msm um especialista, onde foca em uma só tecnologia é bom, pois se ele limitar mto a só aquilo, ele vira o apertador de parafuso. Só sabe fazer aquilo e não conhece como construir o carro. Tipo, imagina q o cara só faz front, e no final se ele é especialista naquilo, ele bem provável q não sabe fazer direito coisas relacionadas a banco de dados ou até gerenciamento de recursos de servidores.

Então assim, não fique tão preocupado com isso, ao meu ver, vc ainda está no início da carreira (considerando 3 anos). Eu com 2 e meio ainda era júnior, e talvez até pior q vc, pois de experiência profissional só tive Java web.

Portanto o q recomendo é apenas continuar estudando o q precisar. Claro q o legal é tentar manter em uma stack por um tempo maior, já q isso dará mais experiência q vai além do básico, pois toda vez q vc muda de tecnologia, além de aprender coisas da computação, vc terá q reiniciar seu estudo com linguagem de programação e até frameworks, pois cada um tem uma maneira diferente de lidar com a construção do software e tudo isso leva tempo para aprender. Se vc já tem uma base mais definida, tanto por conhecimento e por experiência, a troca de tecnologia é mais fácil, diferente qndo vc ainda está no início da carreira. Não q vc não possa fazer isso, é apenas questão de facilitar sua aprendizagem.

Agora vamos para o q estudar.

Eu vi q vc tem conflitos internos em achar q criar o q já existe é uma perda de tempo. O msm com fazer coisas bobas. Bem, perda de tempo isso é, pois é reinventar a roda. Porém acho q vc deveria é começar a pensar diferente. Em vez de achar isso, vc deveria pensar: "eu sou capaz de criar aquilo sem copiar do outro?"
Tipo, vamos para o mais básico, algoritmo de buscas. Normalmente vc sempre utiliza coisas prontas, normalmente por trás da linguagem/framework eles sempre implementam o mais eficiente. E em relação a vc? Vc sabe como fazer isso? Vc tem a capacidade e conhecimento para fazer isso como se aquilo nunca existisse? Volte para o algoritmo de busca. Como vc, sem nenhum método pronto, vc consegue buscar pelo elemento X? É capaz de criar isso? Lembra, isso não se trata de usar algo pronto, isso se trata da sua capacidade de pensar e codificar aquilo.
Eu posso dar um exemplo atual. No meu trampo eu tenho q construir um calendário. Existem vários calendários prontos q eu possa usar. Mas agora se vc olhar pro design do calendário q eles pediram, nenhum deles irá funcionar. E o q fiz? Simples, estou construindo um calendário de como eu preciso. Por nunca ter mexido com isso, eu penei no início, mas agora depois de várias tentativas e erros e olhando os exemplos q o pessoal disponibiliza, eu to conseguindo construir. Ainda não está pronto, mas já saiu da fase da dificuldade.

Outra possível recomendação que daria é vc criar seu próprio projeto. Ai vc escolhe se é algo para vc ou algo q vc quer vender ou apenas para se desafiar. Vc precisa achar qual é seu melhor motivador.

Eu darei meu exemplo. Eu trabalho com Flutter, porém no trampo eu só mexo com a parte mobile e praticamente todos dados vem do backend via API.
Uma das coisas q mais tenho deficit é banco de dados. Por mais q consiga incluir em poucas coisas, eu nunca conseguirei aprender via trabalho.
Então um dos meus projetos atuais (tenho 2 em relação a programação) é meu gerenciador pessoal. Esse gerenciador será desktop/mobile. Então com isso eu posso acessar tanto os dados via celular ou no pc, onde passo a maior parte do tempo. Com isso, eu planejei adicionar um monte de coisas neles (atualmente tem 3 semi-prontos). Com esse projeto pessoal, eu praticamente estou sendo forçado a reaprender a lidar com banco de dados, sem contar q tbm tenho q prestar atenção em outras coisas como responsividade, uso de mouse ao invés de toque, e outras coisas q tem no pc e não tem no celular.
Viu como estou aprimorando meus conhecimentos só fazendo algo q eu necessito? É um win-win.
Tbm estou fazendo um jogo (esse está um pouco parado por causa de outras coisas pessoais), mas nele é por puro orgulho, ahahahah. Msm assim estou pretendendo vender ele um dia, pois meu foco nele é ganhar a experiência de fazer um jogo e vender q esse foi o motivo de ter entrado na facul (ou seja, fazendo por orgulho, ahahah). Não sei se vai dar certo, mas estou aprendendo todo processo de gerenciamento de projetos, como dividir as features em tasks, separar por tipos, organizar o q é prioritário e necessário aprender antes, tals e tals.

Então assim, se eu fosse vc, seguiria por esse caminho de fazer um projeto pessoal. Claro q tem q ser algo condizente pelo q vc quer, tem q ser um motivador. Nunca faça algo para "apenas estudar". Vc precisa unir o útil ao agradável, pois se vc estiver motivado a fazer algo, tenho certeza q seus estudos serão mais legais, caso contrário seu estudo será massante, pois vc estará estudando algo q vc não tem tanto interesse.

Tbm dá pra vc tentar algo diferente, o q normalmente eu sugiro para iniciantes. Como normalmente iniciantes não sabem o q quer fazer como projeto pessoal, então outro jeito é focar em mini-projetos. Eu fiz isso qndo eu comecei a aprender Flutter e deu certo. Claro q não sei se é efetivo pra vc, vc teria q testar. Os mini-projetos se baseiam em projetos q tenham objetivos claros de começo meio e fim. Então vc decide algo a aprender e não adiciona mais nada nele.
Por exemplo, qndo eu estava estudando, uma das coisas q queria aprender é fazer algo parecido com strava. Fazer o app completo é exagero, então ao invés de fazer algo grande, deixei simples e rápido de fazer, não dando chances pro desanimo de programar algo por meses sem nenhum resultado. Eu simplesmente decidi q quero colocar um mapa no app pra funcionar. Tanto q aprendi como mexer no google maps em flutter e tbm aprendi sobre outras coisas q são pagos e precisam de google cloud para usá-lo. Coisas q vc só aprende se vc precisar. Viu como é simples? Aprendi um monte de coisas, com um simples objetivo de colocar o mapa no app. Tbm lembro q fiz um joguinho da velha pra aprender a desenhar na tela, e outros. O segredo é vc ter um objetivo claro e q não seja um monstro. No final vc acaba aprendendo a usar coisas novas a cada mini-projeto, pois qnto mais vc faz, mais contato vc tem com coisas novas. E se um dia precisar delas, meu, vc já teve um breve contato, isso irá facilitar mto seu trabalho qndo precisar colocar em algo real.

Outra coisa q vc tbm pode fazer é usar aqueles sites como beecrowd. Eu comecei a recomendar, pois esses sites são bons para treinar algoritmos. Não necessariamente os algoritmos padrões, mas sim pensar em maneiras de usar eles para solucionar problemas q eles oferecem. Dá uma olhada lá e veja se vc curte isso. Não é obrigatório, mas é um bom jeito de se desafiar.

Então assim, é o q disse. Tente não ficar mudando mto de tecnologia, priorize sempre aquela q vc usa no trampo ou aquela q vc curte mais. Claro q aprender outros são legais, mas não use como objetivo se vc não é essas pessoas q amam comparar tecnologias, pois existem maneiras melhores de vc aprender, como disse anteriormente.

Boa sorte ai na sua aprendizagem.

Edit: ah, uma coisa q esqueci de comentar. Não foque mto em cursos a não ser q vc tenha um motivo pra aquilo. Eu não recomendo pq cursos são limitados. Eu ainda acho q é mais legal vc aprender algo q vc queira do q ficar fazendo um monte de cursos. Vc já tem conhecimento e experiência o suficiente para arriscar coisas fora do be-a-bá de cursos. Só recomendo assistir se precisar aprender tal coisa, por exemplo, um curso ensina a implementar usando banco de dados tal. Assista, pois é algo q vc necessita naquele momento. Ou uma q vi, por exemplo, no Full Cycle q era um sistema de rastreamento. Isso não tem nada haver com a tecnologia q domino ou q quero aprender, mas decidi fazer apenas para ter o conhecimento de como implementar aquilo (e não terminei pq o google maldito não deixou eu cadastrar pra ter créditos free para usar no google cloud,.... kkkk). Mas eu vi os vídeos e consegui pelo menos ter uma noção de como aquilo funciona msm sem implementar. Sou pró naquilo? Óbvio q não, ainda mais q nem sou backend. Porém se um dia precisar fazer algo, eu já sei como buscar pelo assunto e prováveis tecnologias q poderei usar.

1

Apesar de não ter tanto tempo de carreira, tenho algumas opiniões sobre o que você disse, e todas elas são baseadas na minha experiência pessoal.

Você fica ligado à tecnologia com a qual trabalha. Se você trabalha com a linguagem X, vai estudar a linguagem X; se trabalha com a linguagem Y, vai estudar a linguagem Y. Mesmo que veja conteúdos de outra tecnologia, em algum momento vai acabar voltando para a que utiliza no dia a dia. Além disso, essa questão de superprodutividade em aprender várias stacks é algo adoecedor, ainda mais se você trabalha full time e estuda por fora. O seu desempenho em aprender é bem reduzido, na minha visão. Por exemplo: eu trabalho com PHP e JavaScript em um sistema legado. Depois de um tempo, parei de consumir conteúdo dessas duas linguagens, mas volta e meia vejo algo, mesmo estudando Go e Java em alguns momentos.

Sobre o que estudar, depende da sua vontade, objetivo e tempo. Quer trabalhar com o quê? Hoje em dia é complicado ser especialista em algo tão cedo, ainda mais pelas vagas que têm aparecido, que geralmente pedem front, back, ops, um pouco de tudo. Então fugir disso é meio incoerente, o que volta no que disse anteriormente.

Sobre projetos, vou ser clichê em dizer isso, mas olhe algo simples do seu convívio ou rotina que desperte curiosidade de entender ou resolver. Mesmo que seja simples, algo feito é melhor que nada. Pegue algum programa que você usa, mas não gosta de como funciona, ou que faria diferente, e crie algo simples que aplique sua ideia/identidade. Inclusive, eu mesmo estou seguindo isso que estou falando, pois sou vítima do meu próprio pensamento de “por que vou fazer isso se já existe?”.

De forma geral, na área de tecnologia, os fundamentos importam mais do que a stack. Um loop ainda é um loop independente da stack. POO ainda é POO independente da stack (desde que a stack suporte, né rs). Obviamente, cada uma tem características específicas, mas isso representa uma porcentagem bem menor que todo o resto. Você vai ter que aprender a sintaxe de X, Y, Z e W, mas se já sabe X, aprender Y vai ser o menor dos problemas.

0
1

Essa é uma situação muito recorrente — e, por incrível que pareça, já aconteceu ou ainda acontece com quase todos nós que trabalhamos com tecnologia. A sensação de estar sempre pulando de stack em stack, sem se aprofundar em nenhuma, é quase um “ritual de passagem” na carreira dev.

O que costumo reforçar (e que muitas vezes é negligenciado no início) é que:

A stack é apenas um meio, não o fim. A tecnologia deve servir aos seus objetivos profissionais e pessoais, e não o contrário.

Seu foco principal deve ser tornar-se um profissional sólido. Isso inclui saber resolver problemas, entender lógica, padrões de projeto e boas práticas. A linguagem ou framework é apenas a ferramenta.

Busque orientação de quem já está no caminho. Conversar com profissionais experientes que atuam com a stack que você deseja pode encurtar muito a curva de aprendizado e até abrir oportunidades.

Além disso, é importante lembrar: não se deixe levar apenas pela “vibe” do momento ou pelo que está em alta no mercado. Cada tecnologia nasceu para resolver um problema específico, e nunca haverá consenso sobre qual é a melhor. No fim do dia, a melhor stack é a que paga as contas e te ajuda a entregar valor real.

Talvez o grande ponto de virada seja inverter a lógica: em vez de escolher a stack e depois procurar o que fazer com ela, pense primeiro nos problemas que gostaria de resolver (ou até nas dores que você já teve como usuário). A partir daí, escolha a tecnologia que melhor se encaixa. Isso dá mais clareza, evita a sensação de estar sempre “recomeçando” e gera motivação real, porque você estará construindo algo com propósito.

1

Como estou desempregado, algo que poderia resolver minha dor seria um app que eu vá adicionando as vagas que me candidatei para não me perder e poder fazer follow up com o recrutador via linkedin. Porém, quando penso nesse exemplo, já desisto porque não consigo imaginar como ficaria a interface dele, e aí penso que, para fazer isso, precisaria fazer um curso de Figma ou UX para conseguir imaginar a interface antes de colocar em prática. Vê o problema? Não sei muito bem como sair desse hell loop.

Obrigado pelo comentário.

1

Meus 2 cents,

Para sair do "hell loop": um passo para tras e respire.

Por exemplo, voce nao precisa de um app para isso - uma planilha no excel/libreoffice ja da conta do recado.

Logico que um app ficaria mais bonito e como projeto acaba sendo interessante - mas se o objetivo eh controlar as vagas e seus dados, nao precisa inventar muito.

Eh um caso de "overengineering" - novamente, exceto se for um projeto pessoal, o que nao parece ser o caso.

De boa, as vezes imaginamos solucoes complexas para coisas triviais.

De qualquer forma, ficam meus votos e oracoes para que voce tenha sucesso em sua procura por um emprego - estes sao dias desafiadores.

Saude e Sucesso !