O que eu aprendi depois de anos estudando programação
Reflexões de um estudante eterno de programação
Vou ser honesto contigo: eu não sou nenhum mega ninja da programação com décadas de experiência na indústria. Na verdade eu sou um estudante e aspirante a programador profissional, assim como você. Mas eu já estou nessa há algum tempo (provavelmente mais que você) e pude refletir nos meus erros (muitos) e acertos (poucos), no por que de ainda não ser programador profissional e aqui estão algumas das lições que eu aprendi com os anos. O objetivo é que, se você está entrando no mundo da programação e da TI agora ou começou faz pouco tempo, não cometa os mesmos erros que eu cometi. O que pode parecer uma boa ideia agora pode na verdade te atrasar muito.
Evite trocas de curso desnecessárias
Um dos maiores pecados na minha tragetória foi o constante vai-e-vem entre cursos, tutoriais, livros, vídeos etc. Eu comecei centenas de cursos no decorrer dos anos, mas se terminei 10 deles, foi muito. A internet é cheia de conteúdo de alta qualidade custando muito pouco ou nada, e isso é ótimo, mas por conta de exatamente isso, acaba sendo fácil demais pular de uma coisa para outra. Sempre vai haver um novo curso bonito e brilhante sobre aquela nova tecnologia que todo mundo está falando.
Essa abundância de conteúdo educativo acessível é ótima para a universalização do conhecimento, mas é a inimiga do estudo concentrado. Principalmente para quem está começando e precisa absorver e fortalecer os fundamentos, esse vai-e-vem pode ser especialmente danoso. Por isso, seja inteligente na escolha de que material vai usar para estudar e, tanto quanto possível, atenha-se a ele. Esse foco inicial será decisivo no seu progresso futuro.
Claro, não há nada de errado em explorar e descobrir mais. Às vezes um conteúdo ali cobre falhas no conteúdo aqui, ou então o formato do curso não funciona bem para você. Trocar tendo em vista como você aprende mais efetivamente é sábio. Mas fique atento, porque o que a princípio pode parecer uma incompatibilidade entre você e o curso, pode ser na verdade você enfrentando um desafio que não quer encarar.
Não é obrigatório, mas a minha recomendação é que iniciantes comecem com os cursos que sejam mais abrangentes e apresentem a eles as situações mais próximas o possível da realidade de um programador. Por mais que eu adore iniciativas como o freeCodeCamp, como toda a programação é feita no ambiente interativo do site, muito da realidade da programação "de verdade" é abstraída. Iniciantes não sabem o que não sabem. A realidade da programação hoje exige que o profissional esteja familiarizado com todo um conjunto de tecnologias que podem fazer a cabeça de qualquer um girar. Sim, JavaScript vai ser o que você vai usar 90% do tempo no seu trabalho como desenvolvedor web, mas você ainda assim vai precisar saber como usar a linha de comando e git nos outros 10% do tempo. Da mesma forma, não adianta entender os mínimos detalhes de como Java funciona e ignorar ferramentas como Spring, por exemplo.
Cursos no Udemy no estilo bootcamp como o do Andrei Neagoie ou o da Angela Yu, por exemplo, podem ser uma bela mão na roda nesse sentido. Você vai ter, num curso só, toda a visão do fluxo de trabalho de um desenvolvedor fullstack. No início é muito mais importante abrangir o conhecimento do que aprofundar.
Identifique todas as suas procrastinações
Procrastinação é o mecanismo do cérebro que é ativado toda vez que precisamos realizar alguma tarefa que vemos como dolorosa, e nem sempre funciona de maneiras óbvias e previsíveis. É perfeitamente possível que você esteja fazendo uma atividade que você creia produtiva mas na verdade está procrastinando outra tarefa (inclusive, é exatamente o que eu estou fazendo agora escrevendo esse texto hehehe). Uma forma sutil de procrastinação é se engajar numa pesquisa sem fim de cursos e artigos para estudar, sob o pretexto de garantir ter informações da mais alta qualidade. A verdade é que você provavelmente vai se entulhar de coisas que nunca vai ler ou ver em vez de simplesmente escolher um ou alguns poucos e avançar.
Tente estudar sempre nos mesmos horários para criar um hábito de estudo, e use o método pomodoro para evitar a exaustão do estudo prolongado ao mesmo tempo que torna a experiência mais prazerosa.
Comece um projeto pessoal o mais rápido possível
Muitos cursos online no YouTube ou Udemy têm poucos ou nenhum exercício. Isso é um problema. Seguir as aulas nos dá a ilusão de que estamos aprendendo quando na realidade estamos meramente entendendo. A diferença se dá no fato de que aquela compreensão vai se esvanecer no momento em que tentar aplicá-la. Copiar o código mostrado na tela faz parte da compreensão do que está sendo explicitado na aula, mas é só uma parte do processo. É no ato da aplicação da habilidade, na falha do resultado e na subsequente correção que o aprendizado mora. Por isso, se está aprendendo HTML e CSS, por exemplo, vai ser tentando construir uma página que você vai de fato passar a entender como abrir e fechar tags, estruturar o conteúdo, estilizar a página usando classes e pseudo-classes etc. Se estiver estudando Python ou JavaScript, vai ser criando um pequeno programa que você vai entender como a sintaxe funciona, as melhores maneiras de estruturar o código, como lidar com erros. Os cursos meramente mostram a você o como, mas o aprendizado de fato é responsabilidade sua.
Criar projetos pessoais têm o poder não só de te dar experiência prática mas também evidenciam as lacunas no seu aprendizado. Você nunca vai saber o que não sabe sobre map()
, filter()
e reduce()
até usá-los em situações reais. E nem vai saber em que situação usá-los também.
Claro, é difícil criar um projeto pessoal quando você não sabe o que projetar. Felizmente existem muitos lugares com listas de projetos para você escolher e pôr as mãos na massa. Por exemplo, o Frontend Mentor fornece designs no Figma para você praticar suas habilidades de construção de páginas, assim como de implementação de recursos básicos como acessar APIs ou alternar temas.
Outra opção que pouca gente faz, se estiver estudando com video aulas fazendo code-alongs (ou seja, copiando o código que aparece na tela), é fechar ou minimizar o vídeo e tentar reescrever o código de cabeça a cada tantos minutos, ou então personalizar o projeto do jeito que quiser e dar a sua cara. Isso é especialmente importante se tiver a intenção de usar o projeto do curso no portfólio. Nunca use o projeto do curso no portfólio sem alterações!
Mostre o seu trabalho!
Honestamente, essa sempre foi uma das minhas maiores dificuldades e eu luto com isso até hoje. Eu tendo a sempre achar que o que eu estou fazendo é simples e mundano demais para mostrar ao mundo, e mesmo os projetos que concluo acabam ficando relegados aos confins de alguma pasta do meu PC ou então num repositório do GitHub configurado como privado porque eu tenho vergonha demais de mostrar.
Mas a verdade é que isso é uma tolice. Mostrar o seu trabalho é importante, porque evidencia para o mundo o seu progresso, e mostra para o mundo o quanto você é esforçado e dedicado.
Mostrar o seu trabalho também te abre a oportunidade para receber feedbacks. Feedbacks são parte importante do aprendizado, quando são de alta qualidade. É verdade que nem todo feedback é de qualidade ou válido, mas com o tempo (e selecionando bem de quem o feedback vem) você pode aprender a identificar a crítica útil no meio do barulho. Os feedbacks mais úteis são aqueles que te fazem enxergar o seu trabalho sob um ponto de vista que você nunca veria sozinho, principalmente se for para destacar seus defeitos.
Mas acredito que o maior vantagem para você em publicar seus projetos é que, bem, tem gente por aí olhando. Recrutadores estão caçando talentos a torto e direito e uma das maneiras pelas quais eles avaliam a qualidade de um programador é olhando para o que eles fizeram. Publicar seus projetos é a maneira mais simples de chamar a atenção do empregador.
Sobre o autor
Meu nome é Matheus Ribeiro. Sou de Niterói, RJ, formado em Letras Português/Alemão e cursando Engenharia de Software desde que descobri que é mais fácil aprender linguagens de programação do que linguagens humanas. Este é o meu primeiro texto aqui na TabNews, completamente improvisado, escrito sem a devida revisão mas com muito amor (e sono). Espero que gostem!