Qual conselho daria pra quem está começando do extremo zero na programação? O que gostaria de ter ouvido no inicio da sua jornada?
O inicio no mundo da programação é algo assombroso, muitos conteúdos de diversas fontes e filtrar o que de fato importa não é uma tarefa nada fácil. Ter boas referências influência muito na jornada e a melhor dica que recebi estando no inicio foi: Não se prenda a uma linguagem, aprenda o que de fato é programar. Assuntos como lógica de programção, algoritmos e estrutura de dados é o ponta pé inicial, tem funcionado muito pra mim. Para quem já está a mais tempo na área, quais outros conselhos tem para agregar?
O que eu diria pra quem tá começando é: "Comece pelo simples e não tenha medo de errar". Acho que tem muito conteúdo "muito bom por sinal" na Internet de SOLID ou sobre frameworks e coisas legais que podem ser feitas com programação, mas olhando em retrospectiva hoje sinto que me faltava muito do tentar fazer alguma coisa, mesmo que mal feito, mesmo que de forma procedural, mas que desse algum resultado. Hoje vejo que a profissão de programador é 99% tentativa e erro em um processo que estamos buscando melhorar a cada iteração.
O que eu realmente queria ter escutado no inicio é, não tenha vergonha de errar, não desanime, não se frustre por não saber fazer, não tenha vergonha dos seus scripts.
A minha experiência de ensino veio diretamente de um curso do SENAI de Técnico de Informática, então vou dar o meu ponto de vista, mas saiba que não existe só essa maneira.
Se sua vontade é de estudar por conta própria programação, e quer focar 100% na prática de programar, o melhor caminho de estudo é procurar atividades de lógica de programação em alguma linguagem da sua preferência (normalmente são usadas como linguagens de entrada: portugol no VisualG, C++, Python)
Depois das atividades de lógica, caso queira aprender a fazer sites, comece com HTML, CSS e JS. Aprendendo por videos do youtube mesmo, que já te ensinam a como utilizar o básico até o avançado por meio de atividades como montar um slider, uma landing page, formulários e entre outros.
A próxima parte que se deve aprender é banco de dados, no meu caso aprendi MySQL mas se quiser utilizar outro não tem problema, o importante é aprender como a informação deve ser guardada em relação ao sistema que vai utilizar toda essa informação, o que mais será abordado é a relação entre as tabelas sendo 1:1, 1:n, n:n. Mas isso tu vai acabar aprendendo nas aulas.
Plataformas que possa encontrar os cursos:
- YouTube: Têm diversas videoaulas
- Rocketseat: Contém aulas já com um fluxo de aprendizado para desenvolver de graça
- Alura, Udemy: Normalmente é utilizado para procurar cursos específicos, mas também têm outros que mostram um caminho completo
Acredito que tenham mais formas de aprendizado, mas esse é um caminho que eu acabei usando para aprender uma nova linguagem por conta própria que eu precise. Aprendi ReactJS dessa forma, ainda não estou 100%, mas já consigo formar um sistema utilizando-o juntamente com GraphCMS(não é um banco de dados mas utilizei para armazenar as informações).
Espero que tenha ajudado de alguma forma!
Algo que pra mim foi uma virada de chave, é que eu sempre me frustrava quando o código não funcionava, normal não é? Mas o problema é que eu via isso como uma falha minha, como se eu não fosse capaz, como se eu fosse mais burro que os outros, mas mesmo assim permaneci e fui vendo que eu sempre resolvia o problema, aos poucos fui percebendo que os erros que antes me tiravam 1 a 2 dias de sossego, agora eram resolvidos em questão de minutos, então meu conselho é o seguinte: Tenha sempre em mente, "Você vai resolver o problema, só não sabe o quanto de tempo vai levar pra resolver".
Pode até parecer besteira, mas quando você passa a pensar assim, você percebe que tem sim, a capacidade de resolver tudo o que vier pela frente!
Consistência é a chave
Também estou começando na programação, ainda não trabalho na área, mas tenho um objetivo de 6 meses conseguir uma primeira vaga, mas depois de pesquisar bastante sobre o assunto na internet, "como começar na área de programação?", "qual a melhor linguagem para começar a programar?", "quanto tempo leva para conseguir o primeiro emprego?" e coisas do tipo, eu conseguir ter uma noção das coisas, irei passar algumas dicas que acredito que pode te ajudar.
1- Escolha uma área
Você precisa saber qual área você deseja seguir dentro desse mundo da programação, afinal de contas, acredito eu, você está estudando programação para atuar no mercado profissionalmente, então é bom escolher uma área que deseja seguir antes de começar a estudar
Quais as áreas de programação que existem?
Há diversas áreas, irei apresentar algumas como:
- Programação Mobile
- Programação Front-End
- Programação Back-End
- Programação Full Stack Web (Back e Front-End)
- Programação de Games
- Programação voltada para Dados e Inteligência Artificial
Então como escolher uma área de programação?
Bem, acredito que para escolher uma área você deve ter um autoconhecimento e levar em consideração 2 parâmetros:
- Gosto pessoal
- Vagas no mercado
1- Gosto pessoal vai de cada pessoa, você tem que pesquisar, assistir vídeos no YouTube e práticar você mesmo sobre as áreas e decidir qual você gostou mais.
Dedica 1, 2 dias para experimentar um pouco de cada área para você "sentir o gostinho" e depois escolhe a área que mais gostou.
2- Vagas no mercado porque quanto maior as vagas para aquela área, maior as chances de você conseguir uma oportunidade de trabalho e é no trabalho mesmo que você aprende e se desenvolve mais, chegando nesse ponto (experiência profissional) ai, acredito eu, fica mais fácil de realizar transição para outras áreas que você queira, por 2 motivos:
- 1- Você já vai ter uma boa experiência e as empresas vão disputar por você, te dando uma certa segurança de conseguir trabalho
- 2- Você já vai ter uma boa base de programação e assim fica mais fácil explorar outras áreas
Enfim, escolha uma área
2- Escolha uma linguagem usada na área que você vai seguir
Fez a escolha? Agora pesquisa quais são as principais linguagens usadas nessa área que você escolheu e escolha uma, por exemplo:
- Front-End = HTML, CSS e JavaScrip HTML e CSS não são linguagens de programação, mas se for para o Front-End vai precisar dessa tríade
- Back-End = Python ou PHP ou Ruby ou Java
Escolha uma linguagem de programação
3- Estude a base de programação e a linguagem escolhida
O que seria a base? É "a base" usada na programação independente da linguagem, que seria:
- Lógica de Programação
- Algoritmo
- Abstração
- Estrutura de dados
Esse vídeo do Código Fonte TV explica mais sobre "a base"
Depois de aprender isso, vai aprender sobre a linguagem escolhida, aprender sobre:
-- Programação Estruturada:
- Variáveis
- String
- Condições (if)
- Laço de repetição (for, while)
- Listas, Dicionário
- Funções
-- Programação Orientada a Objeto (POO)
- Classe, métodos, etc
Obs: "A base" muitas das vezes já é ensinada junto com a Programação Estruturada utilizando a linguagem escolhida e algumas vezes é ensinada usando uma pseudo-linguagem de programação. Eu recomendo aprender já com a linguagem que você escolheu, mas vai de cada pessoa.
Estude "A Base" e a Linguagem escolhida
4- Aprenda uma ou as principais Frameworks da sua linguagem voltada para a área que você escolheu
Primeiro, o que é Framework?
"Framework é um conjunto de códigos prontos que podem ser usados no desenvolvimento de aplicativos e sites. O objetivo dessa ferramenta é aplicar funcionalidades, comandos e estruturas já prontas para garantir qualidade no desenvolvimento de um projeto"
Uma definição que eu encontrei no Google, mas utilizando uma metáfora, pense que a parte que você estudou de Programação Estruturada é como um Bloco Único de Lego e você deseja construir um Prédio todo feito em Lego.
Você pode pegar um Bloco de cada vez e construir o prédio? Claro que pode, mas você também pode usar as Frameworks, que seriam "conjuntos de blocos já prontos".
Então ao invés de pegar Bloco por Bloco e construir uma parede, você pode já pegar a "Framework Parede" (conjunto de blocos) e juntar com outras 3 e terminar uma sala. Depois com mais outros conjuntos de blocos terminar o primeiro andar e depois o segundo andar e assim por diante.
Espero que eu tenha sido claro na metáfora
Veja quais são as Frameworks mais requisitadas no mercado (na sua área e linguagem) e estude elas
Alguns exemplos de Frameworks:
- Front-End: Bootstrap, React, Angular.js, Vue.js, jQuery
- Back-End: Django, Flask, ASP.Net, etc
5- Algumas coisas a mais para estudar
Alguns assuntos que você vai precisar estudar a mais durante essa sua jornada
Enquanto estiver estudando Programação Estruturada, você pode estudar também:
- GIT - Versionamento de código
- GITHUB - Repositórios Remotos, Fork, Branch, Pull Requests, etc
- Ambientes Virtuais e Gestão de Dependências
Esses conteúdos você vai ter que aprender de qualquer forma, então estude sobre eles durante a Programação Estruturada ou depois dessa parte.
OBS: A depender da área que você escolheu seguir, você pode precisar aprender mais conteúdos extras, como não sei qual área você escolheu, você vai precisar pesquisar sobre o que mais você precisa aprender além da Linguagem e Frameworks.
6- Crie Projetos e Teste o Mercado
Você sabe a área que quer seguir, aprendeu a linguagem principal da área e sabe as principais frameworks. Agora para consolidar mesmo tudo que aprendeu, comece a criar projetos!
Quanto mais você aprender sobre programação mais você aumenta a sua habilidade de "Criação", e para provar para o mercado que você tem essa habilidade e domínio da linguagem e/ou framework você precisa criar Projetos que utilize essa Linguagem e/ou Framework.
Tente resolver algum problema real, pesquise projetos que você pode fazer que seja da sua área, vai anotando essas ideias e depois desenvolve ela e deixa registrado no GitHub.
Obs: esses projetos podem ser feitos na etapa de estudos de Programação Estruturada, Programação Orientada a Objeto (POO) e estudos de Frameworks. Na verdade, você vai perceber que você só aprende mesmo, quando tenta criar um projeto, quando tenta criar algo, é nesse momento que o conhecimento é consolidado. Então uma dica importante: não assista só aulas, pratique, crie pequenos projetos para praticar o que está estudando.
Feito isso, teste o mercado!
Depois de tudo isso, foi mal pelo artigo gigante kkkkk, teste o mercado, vai para as entrevistas, realiza processo seletivo e se joga!
Uma dica que um professor meu fala: "Não realize o trabalho do RH"
Ou seja, não fica pensando "eu não sou bom para essa vaga", "eu não sei tudo que eles estão pedindo", isso é realizar o trabalho do RH.
O RH que vai decidir se entre todos os candidatos você é o melhor ou não, se você sabe 2 das 10 coisas que eles estão pedindo, não liga para isso, se joga e dá o seu melhor!
Você só vai ganhar um "sim" se você se expor a ganhar um "não"
DICA VALIOSA
Consistência é a chave
Muitos vão olhar para isso que eu escrevi e se assustar e desistir, outros vão gostar, se organizar e seguir em frente, e desses que se organizaram, de 10 apenas 2 vão até o final e conseguem um trabalho. (Dado não oficial)
É triste, mas é assim para a maior parte das coisas na vida que exige esforço e consistência.
Por isso eu digo, consistência é a chave, alguns demoram 4 ou 6 meses para estudar e conseguir uma vaga, outros 1 ano ou 2 anos, mas eles conseguem porque tem consistência.
Existe muitas variáveis que pode influência em quanto tempo vai demorar para conseguir o primeiro emprego, como:
- Tempo livre para estudar
- Facilidade de aprender sobre o tema
- Ambiente adequado para estudar
- Condição Financeira
- Por onde está estudando (curso pago ou sozinho)
Enfim, não se compare com os outros, são muitas variáveis, isso não é justo consigo mesmo, então apenas tenha consistência e siga em frente e saiba o que você tem que fazer hoje e amanhã. Consistência é a chave.
Observações finais
Como eu disse, eu também estou começando na área, já tenho um certo conhecimento, mas ainda não trabalho na área, então caso tenha algum erro no que eu escrevi, POR FAVOR ME CORRIJAM, principalmente os programadores mais experientes.
Enfim, esse é o "passo a passo" que estou seguindo e espero que possa ajudar alguém a se organizar e começar na área de programação.
E obrigado por ler esse TCC até aqui kkkkkk
Concordo contigo que os fundamentos são mais importantes que uma linguagem em sí, mas pra quem está começando, eu ficaria com o conselho "se prenda a uma linguagem" até ter confiança e experiencia o bastante. O foco faz parte do aprendizado, aprender o básico de uma linguagem e já trocar para outra atrapalha no desenvolvimento.
Tenha foco. No início será muito tentador ficar testando e estudando diversas tecnologias, mas isso prejudicará o seu aprendizado. Foco é dizer não a essas tentações. Mantenha-se no seu plano o máximo que puder (caso você ainda não tenha um, recomendo dar uma olhada neste site e escolher um caminho: https://roadmap.sh/ - o de Frontend costuma ser uma ótima opção para a maioria das pessoas).
Saiba que o aprendizado é como uma montanha russa, tem seus altos e baixos. É completamente normal se sentir muito feliz num momento por ter absorvido um conteúdo que "virou uma chave" no seu cérebro, mas alguns dias depois se sentir desanimado, desmotivado, por acreditar que parou de evoluir... É só se manter firme no propósito e não deixar esses dias ruins te fazer desistir e seguir em frente.