Essa pergunta vem sempre vindo à tona na minha cabeça: qual o nível de conhecimento eu preciso chegar numa linguagem para falar que eu sei programar nessa linguagem? Por exemplo, sei HTML, sei usar as tags, parametros e tudo mais, porém quando estou programando, sempre tenho que buscar uma coisa ou outra no Google pois nem sempre lembro a estrutura correta da tag em questão (logicamente tags menos usadas), porém como sou uma pessoa perfeccionista, eu nunca acho que sou suficiente para me candidatar para vagas com medo de ser taxado como “não sabe”. Alguma indicação de livro, curso, video que fale a respeito disso? Obrigado.
Quando souber criar um CRUD completo com autorização.
Quando você conseguir pensar em um projeto, imaginar formas de implementa-lo e conseguir fazer isso sem muita dificuldade, você pode dizer que sabe, e isso também inclui a sua habilidade de pesquisa. Mas é normal ter dúvidas e ter que pesquisar, até mesmo seniors passam por isso. Ninguém precisa saber tudo de ponta-a-ponta, as vezes só é necessário saber onde e como encontrar suas respostas
Você tem que ver os requsitos da vaga e ver se você cumpre a maioria deles. Quanto mais, melhor. Não é uma ciência exata.
Quase ninguém sabe “tudo” ou se lembra de “tudo”. Claro, existem as pessoas que são pontos fora da curva, que memorizam tudo e têm uma mente privilegiada, mas isso é a exceção da exceção. Pessoas “normais” como eu e provavelmente você vão precisar consultar quando vão fazer algo que não tem costume de fazer todo santo dia. Posto isso, não se preocupe em precisar buscar por algo que não lembra, faz parte.
Dizem que a maturidade ou fluência em uma linguagem de programação vem após cerca de 20 anos usando aquela linguagem para programar de verdade, não para desenvolver programinhas de brinquedo para testar conceitos. Veja então que o processo é lento e esse conhecimento que você busca é incremental e incessante.
HTML nem linguagem de programação é. HTML é uma linguagem declarativa apenas. Claro que é importante e é o alicerce de muita coisa que é feita hoje em dia, mas escrever código HTML não é bem programar.
Uma citação famosa do professor Niklaus Wirth, criador de várias linguagens de programação importantes como a linguagem Pascal, é “Algoritmos + Estruturas de Dados = Programas”, ou seja, programas são construídos usando algoritmos (uma sequência de instruções organizadas de forma lógica) e estruturas de dados (formas eficientes de armazenar e recuperar dados). Sendo assim, apra saber programar, independente de decorar comandos, instruções e a sintaxe de uma linguagem de programação, o essencial na verdade é dominar algoritmos conhecendo várias técnicas para construí-los como estruturas de decisão, de repetição, recursividade, programação dinâmica, backtracking, divisão e conquista etc. e entender como as principais estruturas de dados funcionam como pilhas, filas, listas, árvores, tabelas de dispersão etc.
Eu tenho a impressão que você está no começo de sua trilha de aprendizado, então não desanime. Vc tem um longo caminho ainda para trilhar. Lógico, não é necessário ter domínio completo das coisas que citei e de muitas outras que existem para conseguir programar um CRUD como o @javaflex disse. Um CRUD é o arroz com feijão mais básico para você implementar qualquer sistema, mas o desenvolvimento de uma aplicação não se resume a só isso e mesmo que se resumisse, alguns CRUDs, dependendo das regras de negócio que você precisa materializar no sistema, podem ser bastante desafiadores e é aí que saber modelar apropriadamente um banco de dados relacional e dominar as principais estruturas de dados vai te auxiliar e normalmente viabilizar que você consiga resolver o problema que precisa ser atacado.
Minha visão é baseada tanto no mercado quanto na academia, pois sou professor há vários anos e também estou antenado do que acontece no mundo real. Tem gente que as vezes reclama que minha visão é muito elitista ou até retrógrada e fica incomodada com o que eu falo, mas foi assim que eu cheguei onde cheguei e acho que o caminho é esse de fato. Não caia na cilada de se basear em respostas do ChatGPT por exemplo para tirar suas dúvidas. Daqui uns anos talvez, mas por enquanto, procure por fontes confiáveis e oficiais das tecnologias que você vai usar para tirar suas dúvidas, use livros bons -que na grande maioria das vezes não tem tradução para português- e tente se manter atualizado. Nossa atualização com novas tecnologias vai ficando cada vez mais difícil ao passo que você vamos envelhecendo, mas os algoritmos e as estruturas de dados não vão mudar. Alinhe a prática com a teoria. Faça um curso técnico legal para dar o pontapé inicial e depois uma faculdade para ter uma visão mais abrangente de como as coisas funcionam. Dependendo do curso, você vai ter uma visão mais voltada ao mercado, sem aprender tantos os meandros da computação, por exemplo em Sistemas de Informação ou Análise e Desenvolvimento de Sistemas e em outros cursos você terá mais contato com os problemas básicos da computação, como Ciência ou Engenharia da Computação, mas também vendo a parte de mercado que no final das contas vai ser o ganha pão da maioria das pessoas.
Sobre as vagas que você se sente inseguro, você só vai ter certeza quando conseguir se encaixar no mercado. Você provavelmente não vai ser cobrado de fazer tudo em um primeiro momento. Normalmente vai ter gente pra te colocar no trilho e aí que vem a parte mais legal, a do desafio de fazer algo funcionar e é só aí que você vai aprender muita coisa com a experiência que vai ter. Boa sorte.