Categorias

Você está aprendendo JavaScript errado

Aprender uma nova linguagem ou mesmo dar os primeiros passos em uma carreira em desenvolvimento é um território pelo qual muitos de nós já passamos e muitos mais estão chegando todos os dias. Esse é um momento de incerteza e indecisões: aprender sozinho? Fazer um curso? Comprar um livro? Aprender fazendo?

O tempo é o senhor de todas as respostas e a experiência de quem já passou por isso pode jogar um pouco de luz no caminho dos outros.

Benjamín Calderón é um engenheiro de software norte-americano com mais de 8 anos em desenvolvimento, especializado em tecnologias web, computação de alta performance e otimização de baixo nível. Em um artigo publicado na internet, ele relata o que diria para si mesmo mais jovem, quando ainda estava estudando JavaScript.

Com sua autorização, traduzimos e reproduzimos o artigo na íntegra:

“Um amigo meu, que está aprendendo JavaScript, me mostrou com orgulho um relógio em uma página HTML. Ele me disse que depois de 7 horas ele finalmente conseguia atualizar a cada minuto! Sorri para ele e disse: “Acho que você está pronto para aprender um framework de JavaScript“.

Essa mesma pessoa anteriormente teve muita dificuldade em tentar entender JavaScript, por que no mundo eu precisaria de uma função? Por que minha função não está funcionando, eu já a escrevi? – ele não havia chamado – Por que preciso de uma matriz? Eu posso apenas ter algumas variáveis ​​…

De maneira semelhante, conheci muitas pessoas que evitam a codificação porque é “difícil” ou “você precisa ser um gênio para obtê-la“, ou elas podem fazer tudo o que quiserem com HTML / CSS e JQuery.

Quando eu estava aprendendo JavaScript, lembro-me de pensar, enquanto lia  Eloquent JavaScript pela terceira vez: “por que as pessoas se importariam com a herança ou com isso ou com as matrizes? Por que não usar apenas uma variável e terminar com ela? Por que eles estão apenas complicando as coisas colocando-as em um objeto? ”.

A experiência foi muito parecida quando eu lecionava álgebra em uma escola secundária. “a – b = a + -b“, eu diria com os olhos fixos de meus alunos frustrados olhando para mim. Era intrigante para mim como eles não conseguiam entender algo “tão lógico“. E então, a visão! Havia uma atividade que precisávamos organizar, mas não conseguimos encontrar um número porque não tínhamos certeza de algo que pudesse mudar (variar? Como nas variáveis ​​… OI?). E com um novo interesse, demos uma olhada nessas equações e fórmulas estranhas que o Sr. B (sou eu) as estava ensinando e … elas finalmente fizeram sentido! Eles foram realmente úteis! (Você quer dizer que a matemática pode ser usada para mais do que apenas saber quantas melancias o pequeno Johnny tem?) Os alunos ficaram entusiasmados e eu também! A matemática tinha uma resposta para as perguntas que eles tinham formulado. Antes disso, a matemática era apenas dar respostas a perguntas que não tinham formulado.

Aprender matemática NÃO é aprender coisas sobre números (bem, é um pouco). Aprender matemática é principalmente sobre como usar diferentes métodos e ferramentas, para resolver problemas, sejam eles de ciências, culinária, finanças pessoais, exploração do espaço ou quantas maçãs a pequena Laura deixou.

Acredito que a mesma coisa acontece ao aprender JavaScript, ou qualquer outro idioma ou habilidade. Fora de contexto, um livro ou curso on-line ou curso universitário está dando respostas a perguntas que o aluno não fez.

Aprender JavaScript NÃO é aprender (memorizar) JavaScript, é aprender uma ferramenta para resolver problemas.

Recentemente, li um excelente artigo sobre como ser um desenvolvedor melhor, aprendendo a meta habilidade de resolução de problemas. Embora eu concorde plenamente com esse artigo, acredito que, para entender o desenvolvimento, você precisa estar um pouco exposto aos problemas que está tentando resolver.

Trabalhando como CTO de uma startup, tive a oportunidade de lidar com alguns estagiários de Ciência da Computação e foi uma experiência decepcionante. Parecia que esses alunos haviam aprendido muita teoria, memorizado como escrever um for ou um switch, mas não tinham ideia do motivo pelo qual eles eram realmente usados.

Isso acontece ainda mais quando a pessoa é autodidata e decide pegar um livro ou se inscrever em um curso on-line para aprender, por exemplo, JavaScript. Pode ser muito frustrante e confuso porque o livro ou curso está fornecendo respostas para perguntas que a pessoa ainda não formulou e o cérebro tem dificuldade em descobrir onde armazenar essas informações e como processá-las. Passei muito tempo tentando explicar a alguém por que eles gostariam de aprender o que é uma função e como ela funciona. A pergunta deles era: “Por que eu precisaria de uma função para poder ter todo o meu pequeno aplicativo de calculadora em um arquivo?” Foi frustrante, para dizer o mínimo. Porém, assim que essa pessoa tentou fazer algo um pouco mais complicado do que uma calculadora, foi simplesmente maravilhoso ver suas idéias sobre funções e quão úteis elas realmente eram!

Então, o que você pode fazer para aprender melhor JavaScript?

Primeiro, não entre em pânico!

Com muitos cursos, você é instruído a praticar, praticar e praticar … mas pratica o que? QUALQUER COISA! Tente criar algo um pouco exagerado, use seu conhecimento atual, inicie o Adobe Muse ou o Dreamweaver, se é isso que você sabe e tente criar algo (um aplicativo de tarefas é um bom lugar para começar). Não olhe para o código de ninguém e não copie / cole do StackOverflow ainda … descubra onde estão os limites das ferramentas atuais que você conhece e o conhecimento que você tem e, então, e somente então, você estará pronto para adquirir e entender novos conhecimentos!

Muitos cursos oferecem desafios e exercícios … não os pule porque você acha que já pegou o conteúdo (eu costumava fazer isso o tempo todo), eles são projetados para desafiá-lo, alongá-lo um pouco, levá-lo ao ponto em que você percebe que não sabe. Então você percebe que não fica frustrado porque não sabe! NÃO, muito pelo contrário, quando você sabe que não sabe, é quando está pronto para aprender o que não sabe!

Deixe-me apenas dizer que, quando você encontra uma montanha no seu caminho, é o momento em que você está pronto para aprender uma maneira de escalá-la! Seria muito difícil entender por que você precisaria de uma corda de rapel se nunca viu uma montanha.

E acima de tudo, não pare de aprender! Quando você está fazendo algo que parece um pouco complicado ou difícil demais, geralmente eu descobri que estou fazendo errado, e há uma ferramenta ou habilidade para fazer isso de uma maneira mais fácil e eficiente. Um exemplo é um colega de trabalho que carregava um arquivo em um servidor da Web todas as manhãs às 5:00 da manhã nos últimos 5 anos … uau! Mas tem cron. Em outra ocasião, um amigo estava tentando apagar alguns milhares de arquivos, mas mantinha outros milhares, assim a solução aparente era selecionar todos os arquivos a serem apagados no localizador e apagá-los. Depois de um fim de semana de frustração, pensamos: e se houver um script BASH que possa ser escrito para corrigir isso? E tinha! Cinco minutos depois, a tarefa terminou!

Ou tente criar um aplicativo de tarefas apenas com JQuery … Você entende o que quero dizer.

Então, continue sendo incrível e aprendendo e construindo coisas legais!”

Publicado originalmente como “You are learning JS wrong” em 13 de abril de 2018. Traduzido e republicado com autorização do autor.