Bom, vou ser direto, olha a diferença entre o seu github e o meu:
seu: https://prnt.sc/4tTO4L08AzVm
meu: https://prnt.sc/yk5_O1eXWrmg (antes de procurar por um emprego em 2021)
Acho q o problema pode começar ai. Vc está realmente programando? Ou vc só está assistindo vídeo? Pq assistir não é aprender a programar, programar é codificar. É igual ganhar um certificado. Ele comprova só a participação, mas a aprendizagem msm vc só comprova com código no github.
Só quis mostrar isso pra ver o quão longe vc ainda está de ser contratado. Vc pode até ter sorte, mas lembre q depender de sorte é igual pular de um avião com um saco de supermercado. Eu sugiro não correr esse risco. Claro q a comparação tbm é desigual, já q nesse momento eu era mais ou menos no nível pleno, mas isso mostra quantitativamente q vc ainda precisa codificar mais.
Então antes de sair tentando vagas aleatória, eu recomendaria vc pelo menos 1 ano no mínimo focar só no estudo (o bom q vc está na facul, então ainda dá tempo pra aprender mais), então esquece essa coisa de currículo, esquece essa coisa de ficar aplicando pra vagas. Vc pode tentar aplicar pra vaga? Óbvio, mas lembre q vc só estará perdendo tempo e energia, pois vc não está preparado pra competir com outros, ainda mais nesse cenário atual onde a competição entre iniciantes está maior.
O q recomendo, primeiro é definir uma stack, tipo, backend, frontend, mobile, jogos, devops, etc. Definindo algo q vc quer fazer, já filtra 90% da tecnologia pra vc aprender por agora (no futuro vc pode aprender outras coisas, mas sua etapa agora é aprender a virar um programador júnior). Definindo o q vc quer, sugiro mto só focar em 1 tecnologia, pois isso vai ajudar a vc estudar melhor. Vc pode até ter mais de 1 tecnologia, mas vai por mim, sem a base de programação, tu vai sofrer mais pra aprender mais de 1 tecnologia. Eu vi q vc está tentando python e vc já fez algo em typescript pra facul. Bem, escolha apenas um. Vai facilitar na hora do estudo. Ai no python por exemplo, vc acha algum framework desejável.
Agora vamos para os estudos.
Primeiro eu recomendo q vc aprenda a dominar o básico da linguagem. Não precisa dominar 100%, até pq as linguagens de programação estão sempre em evolução. Mas vc precisa estudar pq vc precisa entender o mínimo dela para iniciar a programar. Isso vai desde if, else, funções, blablabla, até como usar estrutura de dados, POO, etc. Uma coisa q recomendo é vc iniciar pelo https://judge.beecrowd.com/en ou pode ser sites similares. Ele simplesmente permite q vc escolha um exercício, ai vc implementa aquele exercício na linguagem q vc escolher lá e executa. Ele dará uma resposta se o código funcionou ou não. Isso é mto bom pra vc treinar lógica e tbm algoritmos e estrutura de dados da linguagem. E lembre, quanto mais fizer, mais vc aprende. Vc pode até colocar no currículo.
Se vc não souber de algo, simplesmente pesquise. Hj o q não falta é informação de como programar. Vc pode achar nos docs oficiais da linguagem, vc pode achar em blogs, youtube, comunidades, pode até perguntar em grupos de discords específicos para linguagem/framework q sempre terá alguém q pode ajudar lá.
Vc tbm pode usar livros de algoritmos para aprender, mas sinceramente... só use isso pra consulta, pq é chato pacas. Por isso dei a alternativa de vc ter esses exercícios, pois são legais pra vc aplicar os algoritmos.
Agora vamos para a segunda etapa. Começando o processo do estudo mais real. Eu sugiro mto q desista a nesse momento criar um super projeto. Infelizmente isso é um mata-iniciante, pois além de ser algo complexo pra alguém q iniciou, as pessoas tendem a demorar pq desanima no meio do caminho pq não consegue finalizar. Ao invés disso eu recomendo focar na msm coisa q o algoritmo do quick sort utiliza: dividir pra conquistar. Ao invés de fazer o projetão, faça mini-projetos. Ou seja, cada mini projeto precisa ter um começo meio e fim bem definidos e com foco único. Não tente fazer um frankstein pq só irá te atrapalhar.
Por exemplo: comece com um todo list, onde vc só irá focar na parte lógica e visual dela. ai todos dados vc salva na memoria, nada de API ou comunicação externa, apenas fazer funcionar e ficar bonitinho. Se futuramente vc quiser adicionar coisas, duplique o projeto e melhore ele, ou coloque uma Tag (ve como faz isso no github) pra marcar como finalizado essa primeira etapa. Mas vc pode focar em outras coisas, pois exemplos não faltam. por exemplo, colocar o google maps dentro de uma página web, fazer um formulário, fazer uma API pra comunicar a todo list com servidor, fazer um chat (esse é um pouco mais complexo, mas é possível), fazer uma tabela simples estilo google sheets (observe q destaquei simples, oks?), como integrar um gps no site, como fazer aqueles troços de senha de 4 dígitos q vc ve em SMS, fazer um paint simples e aprender a manipular imagens, fazer um carrousel de imagens na tela, aprender a usar banco de dados em algum dos seus projetos já feitos, fazer uma playlist de mp3 simples, etc. Pode até pensar em um joguinho, como jogo da velha ou bricks, bem ideia é o q não falta. E pode até pedir pra IA dar ideias de projetos simples. Só não vai pedir pra ela gerar código, oks? Pois vc ainda está na fase de aprendizagem.
Vc percebe q com isso, além de praticar a linguagem/framework, vc estará aprendendo a fazer mais coisas diferenciadas. Por isso focar em pequenas coisas e com isso vc vai aprendendo a lidar com isso. E o melhor q vc vai acostumando a fazer o q nós fazemos. Nós não sabemos tudo, estamos sempre em constante aprendizado. Por isso se por exemplo, eu precisar um dia criar um site q ache a localização da pessoa, se eu já tiver mexido com gps, meu, eu já tenho noção do que correr atrás, pois eu já tive uma breve experiência no passado. Saber um pouco de cada coisa vai ajudar no seu futuro.
E é a msm coisa q o outro, quanto mais vc fizer, melhor pra vc msm. Eu recomendo no mínimo uns 10, mas sugiro passar de 20 mini-projetos pra vc praticar msm.
Extra: comece a fuçar os githubs dos outros e veja como é a documentação do README. APRENDA ISSO. Ninguém vai te ensinar como fazer, então apenas vai olhando, vendo o q parece legal e aplique no seus projetos. Como vc terá um monte de projetos, vc pode fazer variações, e com o tempo, vc vai perceber q vc irá achar o seu jeito de documentar. Não existe o jeito certo, só existe documentações boas de ler e documentações péssimas. Cabe a vc praticar e ir melhorando os seus. O msm vale pra commit. Sinceramente nem eu sei ql é o melhor jeito de escrever um commit, mas sei q ela precisa conter uma descrição direta e sucinta sobre o q vc fez e onde. Imagino q só isso basta.
Por último é a hora do portfólio. Isso é uma coisa q não pode faltar. Esse é uma coisa q vc terá q por em prática. É aqui q entra os projetões e devops. É nesse momento q vc terá q aprender a lidar com algo a ser feito do início ao fim. Claro q vc pode usar seus projetos de estudo aqui, mas não recomendo lotar, pois aqui os projetos principais é onde vc irá mostrar o q vc aprendeu na etapa anterior com a união de todo conhecimento.
Nesse eu recomendo vc fazer de 3 a 5 projetos. No mínimo 1 tem q estar online e funcional. Se for site, q seja site, se for mobile, play store, se for jogo, itch.io, e assim vai. Além disso, vc terá q documentar bem, pois é nesse momento q vc terá q saber tudo q vc fez e o pq fez aquilo. É como se fosse uma apresentação de final de ano, pois se perguntarem o q vc fez em tal projeto, é obrigação sua explicar sobre aquilo.
Agora o q fazer? Bem, depende do q vc quer fazer. Qndo eu disse projetão, vc não precisa fazer algo completo, oks? Até pq isso é qse impossível pra iniciante. Mas vc precisa é saber integrar visual, lógica e dados (e saber colocar online). Como? É ai seu desafio. Um deles q até recomendo é vc fazer um site sendo o site sua própria página para apresentar o portólfio. E é ai q entra a criatividade, qnto mais chamativo, melhor.
Recomendações extras:
- Aprenda a usar git (a ferramenta msm, e não só o github).
- Aprenda devops (se possível aprenda sobre CI/CD).
- Recomendo utilizar a IDE mais popular q normalmente a comunidade utiliza para tal linguagem/framework, pois isso facilita na aprendizagem.
- De uma olhada no clean code, tem um pessoal q condena, mas é pq esses são pessoas ranzinzas, não vai na delas. O clean code é bom, mas não precisa seguir a risca, lembre disso. Um bom código é um código legível e o clean code ensina algumas técnicas para fazer isso.
Se eu fosse contratar alguém, eu focaria mais no github dela ao invés do currículo dela (claro q isso é pra mim, não respondo pelas outras empresas). Eu por exemplo, fui contratado pela empresa q trabalho até hj, pq eu apliquei partes dessa técnica de estudo e eles contrataram pq gostaram do meu app q tinha postado na play store (eu sou dev mobile).
Por isso eu divulgo esse estilo de estudo, pois percebi q além de aprender coisas bastante diferenciadas, eu consigo demonstrar o q fiz, como eu fiz e q sou capaz de fazer. Se vc não tem nada disso, ninguém vai querer te contratar, afinal assim como vc espera entrar em uma boa empresa e ganhar bem, a empresa tbm espera q vc seja bom para resolver o problema q ela tem. Não espere caridade, são raríssimas empresas q fazem isso, e é o q disse, não conte com a sorte, pq no fundo, quem constrói sua carreira não é a empresa e sim vc e apenas vc.
Espero q com isso ajude a dar um norte no seu trajeto. Boa sorte e bons estudos.