Varanda Casa Azul

Programador: “E agora? O que aprender?”

173 1

Texto por Murilo Parente, atual diretor de produto e tecnologia da Digital Influencers e desenvolvedor desde os 13 que viu no empreendedorismo uma forma de unir o que mais ama: Construir ideias; Inovar; Impactar a vida das pessoas.

 

Se você é programador, você precisa saber programar, e a tecnologia é totalmente indiferente nesse caso. Os conceitos e paradigmas básicos de programação podem ser encontrados em 90% das linguagens. Para aprender a programar, você não precisa de uma linguagem robusta, à prova de falhas, que consegue achar a localização do planeta habitável mais próximo em 0.5ms, você só precisa que ela funcione. A minha dica é que ela seja a mais básica possível. Não ter aquela biblioteca que vai fazer tudo por você ou aquela função ResolveAnyProblem() vai te forçar a trabalhar sua lógica, criando soluções da sua maneira, e isso é o que importa. C, C++ e Java são clássicos que ainda funcionam muito bem.

Agora que você já sabe o básico, é hora de aprender as tecnologias que estão em alta para conseguir aproveitar as oportunidades de mercado! Eu tenho uma péssima notícia, você não vai conseguir ser excelente em todas, mas isso não é de longe um problema pra quem está começando. Você já sabe o básico, qualquer tecnologia que você tiver que aprender, vai conseguir com uma facilidade muito maior e em bem menos tempo. A minha dica é: foque na que te empolga mais, porque quando se trabalha com uma tecnologia que você gosta, tudo fica mais fácil. Das outras que restarem, escolha uma que você vai chamar de linguagem secundária e dedique tempo a ela de acordo com a oferta de oportunidades.

“Mas meus problemas são os frameworks!”

Eu sei, meu amigo! Tem vaga exigindo que você saiba pelo menos uns 30, mas não se assuste! Framework não é problema, é solução! Se você tem dominância na linguagem em que o framework foi desenvolvido, você vai perceber que todos eles são apenas ferramentas pra te ajudar a ser mais produtivo. O problema é quando se pula direto para o framework. Além da curva de aprendizado ser muito maior, você fica preso a ele, não conseguindo ter uma migração suave para outros frameworks da mesma linguagem, ou até mesmo, impactando na sua qualidade de código na linguagem quando se remove o framework.

Note que em nenhum momento eu falei que tecnologia, linguagem ou framework você deve aprender (tirando os clássicos, que é básico), porque isso não importa!

“Certo, entendi. Agora que eu já sei de que ponto vou partir, como posso melhorar e agilizar meu aprendizado?”

Você está me perguntando como aprender rápido, certo? Eu diria que essa é a pergunta de $ 1m para quem é programador! O mundo em que vivemos está em constantes mudanças, onde tecnologias novas aparecem a todo instante. Aprender rápido é uma habilidade que precisa ser desenvolvida, e posso te adiantar que você está no caminho certo! Começar corretamente é sem dúvidas um investimento que vai te fazer economizar muito tempo mais na frente.

Mas o que importa é como posso te ajudar a aprender a linguagem que você escolheu (vamos denominar ela de WW, também conhecida como Wade Wilson). Eu não me importo com qual paradigma você escolheu ou para qual finalidade WW foi criada, porque isso não interfere nas técnicas para te ajudar a aprender. Se virar e tentar encaixar é o grande desafio. Não importa se você vai fazer isso a partir do terminal, criar um interface pro usuário ou até mesmo uma página na WEB, o importante é você resolver o problema.

Os desafios:

CRUD

Create, Read, Update and Delete (CRUD) são operações básicas vistas comumente em banco de dados relacionais. Mas como isso pode te ajudar?
Primeiro você precisa imaginar uma situação real, para você passar por problemas reais, como por exemplo, um programa de gerenciamento de agenda de uma clínica médica, ou então, um programa de gerenciamento de delivery de restaurantes. Pegue algo que você possa observar e tentar aplicar ao máximo no seu projeto, depois comece.

Vamos usar o exemplo de delivery de restaurantes. O que você vai precisar fazer?
Primeiro, liste as features, por exemplo:
– Criar um restaurante (Create);
– Listar todos os restaurantes (Read);
– Visualizar um restaurante (Read);
– Atualizar um restaurante (Update);
– Apagar um restaurante (Delete);

Viu quanta coisa que você vai ter que fazer? E não estou nem na metade, ainda tem a parte de cadastramento de pratos, pedidos, usuários, avaliação etc.
É assim que você vai aprender! Com problemas reais e não com desafios do tipo ache a raiz quadrada de 242034 a vigésima potência mostrando todos os números primos, porque você não vai ver isso quando for trabalhar.

Depois, vá aperfeiçoando seu projeto, refazendo partes antigas, aplicando coisas novas que você aprendeu, melhorando o código e a interface, implementando um banco de dados etc. Isso nada mais é que a prova clara da sua evolução. Por último, mas não menos importante, defina metas! Quando você encontra um grande desafio ou problema, as coisas tendem a ficar chatas, e se você ignorar isso, será de grande prejuízo. As metas servem pra te proteger e te dar a sensação de inacabado. Esse incomodo é muito importante, porque quando você concluir todas as metas, a sensação de dever cumprido será muito maior e você vai ficar mais confiante quando estiver colocando a mão na massa profissionalmente.

Código fonte

Sabe o que um programador precisa saber fazer tão bem quanto escrever código? Ler código!

A habilidade de ler código é essencial no mercado, e ninguém dá a devida atenção a isso, todos levam a vida da forma utópica de que todos os seus parceiros de trabalho vão escrever um código impecável, documentado e totalmente autoexplicativo. Se você pensa dessa forma, você está muito enganado. Você precisa saber ler código, sendo ele bom ou ruim. Quando se trabalha em grandes projetos, não se tem tempo para fazer tudo, nem de refazer as coisas a sua maneira. Não saber ler código é um dos grandes gargalos em times jovens de desenvolvimento, atrasam projetos em meses, e como você deve saber muito bem, tempo é dinheiro. A empresa não vai gostar de ter um time de desenvolvimento caro e improdutivo.

E sabe como você aprende a ler código? Lendo códigos! Óbvio, não é? Parece que não, porque quase ninguém faz isso. Quantas vezes você já abriu o src/daquela biblioteca que você usa diariamente para saber como ela trabalha? Quantas vezes já entrou no GitHub, pesquisou bibliotecas ou frameworks e tentou entender exatamente como ele funciona? Abriu arquivo por arquivo, criando linhas de pensamento e tentando pensar logicamente como os desenvolvedores chegaram naquela solução? Aposto que poucas vezes, e ainda desistiu quando encontrou o primeiro bloco de código que não conseguiu entender. São nessas dificuldades que você aprende a ler código, e de tabela, você ainda melhora sua lógica e aprende features da ferramenta que você nem sabia que existia. Fazendo isso, quando você encontrar aquele código que pede um exorcismo, você vai entender exatamente o que ele faz, porque você já passou por casos bem piores.

Espero ter te ajudado, boa sorte!

Recomendado para você