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.