Propaganda
Programação é duro. As únicas pessoas que dizem o contrário são aquelas que têm anos de experiência em programação. É normal ficar sobrecarregado! Há um muito aprender e você provavelmente esquecerá as coisas tão rápido quanto as aprender. Acredite em mim: isso é normal.
Mas só porque é normal, não significa que não seja frustrante. Verdade seja dita, aprendendo a codificar Como aprender a programar sem todo o estresseTalvez você tenha decidido buscar programação, seja por uma carreira ou apenas como um hobby. Excelente! Mas talvez você esteja começando a se sentir oprimido. Não é tão bom. Aqui está uma ajuda para facilitar sua jornada. consulte Mais informação pode ser extremamente estressante se você não o abordar com a mentalidade e atitude certas.
Você quer aprender essa nova linguagem, biblioteca ou estrutura o mais rápido possível, certo? Isso é compreensível. Felizmente, há um punhado de dicas que podem ajudá-lo a reter melhor todas as informações pesadas de programação que ficam entrando por um ouvido e saindo pelo outro.
No More Cram Sessions
Ninguém quer ouvir, mas estudar é a pior maneira de aprender a programar. Se você for como eu, estudar foi o seu modo de operação tudo em toda a escola e universidade. É a única maneira de você saber estudar.
Mas aprenda com meus erros: quanto mais você tenta empinar, menos você vai se lembrar. Isso é muito verdadeiro para qualquer assunto baseado em conhecimento, mas é especialmente verdadeiro quando se trata de programação.
A base desta afirmação vem de um estudo de 2008 pela Universidade da Califórnia, San Diego:
“Os alunos têm melhor desempenho quando espaçam suas sessões de estudo, em vez de quando tentam enfiar tudo em suas cabeças durante uma sessão.”
Porque? Provavelmente devido ao efeito de posição serial:
“O efeito da posição serial é a tendência de uma pessoa de se lembrar melhor do primeiro e do último item de uma série, e dos itens do meio, pior.”
Em outras palavras: em qualquer sessão de estudo, é mais provável que você retenha as informações que aprendeu perto o início e o fim da sessão e com maior probabilidade de esquecer as informações do meio do sessão.
Você deseja maximizar o número de começos e fins. É por isso que é melhor ter várias sessões curtas em vez de algumas sessões longas quando se trata de aprender e absorver novo material.
Na próxima vez que você se sentar para aprender código, escolha um tópico por vez e faça uma pequena pausa entre cada tópico. (Apenas certifique-se de evitar que suas pausas se transformem em procrastinação!)
Review, Review, Review
Outra razão pela qual estudar é a antítese da retenção de conhecimento de longo prazo é porque a memória enfraquece com o tempo. Isso nem sempre é verdade - tenho certeza de que todos nós temos algumas memórias de infância que nunca irão desaparecer - mas parece ser o caso geral de memórias que não estão ligadas à emoção.
Há algum debate se a própria memória se deteriora devido ao tempo (teoria da decadência) ou simplesmente é empurrado para fora e substituído por novas memórias ao longo do tempo (teoria da interferência). Qualquer que seja a teoria que você subscreva, o resultado é que as memórias mais antigas têm maior probabilidade de desaparecer.
É aqui que a revisão entra em jogo.
Pense nisso como caminhar por uma floresta de memórias. Cada vez que você deseja acessar uma memória, você deve rastreie a via neural a fim de encontrá-lo. Cada vez que você rastreia essa memória, o caminho fica gravado um pouco mais - assim como um caminho de terra se forma naturalmente quando as pessoas seguem o mesmo caminho repetidamente. Se você parar de percorrer o caminho, ele pode desaparecer e a memória acaba perdida em algum lugar da floresta.
Deixando de lado toda a psicologia pop, aqui está a lição: quando se trata de programação, não é suficiente aprender um tópico apenas uma ou duas vezes. Você tem que revisitá-lo dezenas ou até centenas de vezes. Cada revisão grava aquele tópico em seu cérebro um pouco mais profundamente.
Eu sei como isso pode ser difícil se você for um crammer natural, mas ficará surpreso com a rapidez com que começa a reter o material depois de fazer um esforço para revisá-lo regularmente.
Use vários recursos diferentes
O aspecto mais difícil da programação - pelo menos para novos programadores - é a grande amplitude de detalhes e nuances que precisam ser internalizados. Até que a internalização aconteça, você estará em um estado perpétuo de coçar a cabeça.
Dependendo do idioma, você precisará memorizar centenas de regras de sintaxe (por exemplo, palavras-chave, ponto e vírgula, espaço em branco). Algumas linguagens são mais rígidas, outras menos, e ainda outras têm suas próprias abordagens exclusivas de sintaxe que não são usadas em nenhum outro lugar. Tudo isso pode ser confuso se você não tiver experiência anterior em codificação.
Sem mencionar todas as informações conceituais que transcendem as linguagens individuais. Tópicos como programação orientada a objetos, sistemas de componentes de entidade e padrões de observador podem realmente fazer sua cabeça girar na primeira vez que você tenta aprendê-los.
Já compartilhei esta ilustração antes, mas é tão precisa que vale a pena repetir:
“Suponha que alguém lhe mostre a fotografia de uma estátua. Pode fornecer uma imagem suficiente para você ter uma noção adequada da estátua, mas você não obteria a imagem completa. Uma foto com menos zoom perderia detalhes intrincados, enquanto uma foto com mais zoom perderia o senso de perspectiva. No entanto, com fotos adicionais tiradas de outros ângulos, você pode realmente começar a ver o plenitude da estátua na textura, no tamanho, nos detalhes, da frente para trás, de lado a lado e de cima para baixo. ”
Aprender a programar pode ser surpreendentemente arbitrário. Todos podem elogiar o Recurso A como a melhor maneira de aprender a Língua X, mas talvez não faça sentido para você. Talvez todo mundo odeie o Recurso B, mas você dá uma olhada e faz todo o sentido! Quanto a outra pessoa, talvez eles divaguem ao estudar os Recursos A e B, mas se beneficiem muito do Recurso C.
É por isso que é tão importante que você esteja disposto a consumir todos os tipos de recursos que existem. Todo mundo aprende de maneira diferente. Se você está tendo problemas com um determinado tópico, pesquise outro recurso. Talvez aquele seja mais adequado para você. Talvez não.
Mesmo se você achar que entende certos tópicos, é possível que haja mais para aprender sobre isso. Também é possível que a explicação de outra pessoa solidifique o conceito em sua mente para sempre. Você nunca sabe, então por que não consumir tantos recursos quanto puder?
Observe que os jogos podem ser um recurso extremamente útil! Veja estes jogos de codificação divertidos e educacionais Os 9 melhores jogos de codificação para desenvolver suas habilidades de programaçãoOs jogos de codificação ajudam você a aprender mais rápido com a prática e a experiência prática. Além disso, eles são uma maneira divertida de testar suas habilidades de programação! consulte Mais informação .
Ensine conceitos à medida que os aprende
Existe um belo conceito em programação chamado depuração de pato de borracha Os princípios de programação mais estranhos dos quais você nunca ouviu falarOs princípios a seguir o ensinarão a ser sábio com seu código. Alguns são estranhos e muitos são engraçados, mas são todos igualmente práticos e importantes. Fique atento! consulte Mais informação , que descreve a técnica de explicar o código de uma pessoa, linha por linha, para um pato de borracha inanimado. É usado quando um determinado segmento de código é quebrado, mas não há razão óbvia para isso.
Estranhamente, a maioria dos programadores tem um "Eureka!" momento no meio da explicação do código, pois de repente eles veem onde ocorre o erro na lógica de codificação. A verbalização ativa uma área diferente do cérebro, forçando você a ver o problema de um novo ângulo.
Este conceito também pode ser usado para ajudá-lo a aprender um novo material. Você pode ter encontrado esta citação popular frequentemente atribuída a Albert Einstein:
“Se você não consegue explicar de maneira simples, não entende bem o suficiente.”
Com exceção de alguns campos que lidam com conhecimentos teóricos avançados, esse ditado é verdadeiro. Quanto mais você entende um tópico, mais bem equipado você está para explicá-lo de tal forma que alguém que não tem conhecimento sobre o assunto possa vir a entendê-lo.
O oposto disso também é verdadeiro. Ao tentar ensinar um tópico, você encontrará certos conceitos que não consegue explicar de maneira clara. Essa não é apenas uma maneira incrível de diagnosticar as fraquezas em seu conhecimento, mas o processo real de encontrar a explicação adequada pode ajudar a solidificar o conceito em sua mente.
É chamado de aprendizado por ensino e é basicamente uma variação na depuração de pato de borracha.
Agora, eu não estou dizendo que você deveria na realidade ensinar outros; em vez disso, a cada novo tópico de programação que você aprender, tente ensiná-lo a um pato de borracha (ou um amigo invisível). Pode parecer bobo no início, mas você pode achar que é extremamente proveitoso quando se trata de retenção de memória.
A prática deliberada leva à perfeição
A noção de talento é um lixo completo. Ninguém sai do útero como violinista, lutador ou programador de classe mundial. Claro, algumas pessoas podem ser mais inclinadas a certas disciplinas, mas talento sem experiência é inútil Não deixe seus talentos ocultos morrerem: 7 maneiras de encontrá-los novamenteA má notícia é que você precisa trabalhar muito com a intenção de aperfeiçoar seus talentos ocultos. A boa notícia é que há mais oportunidades do que nunca para revelar seus talentos. consulte Mais informação . Da mesma forma, o trabalho árduo é sempre mais valioso do que o talento.
Dito isso, nem todas as formas de trabalho árduo são iguais. Malcolm Gladwell cunhou a infame Regra das 10.000 horas, que diz que você deve investir pelo menos 10.000 horas em um assunto para se tornar um mestre nele. Embora o sentimento possa ser verdadeiro, muitas pessoas interpretam mal o que ele estava tentando dizer.
Para encurtar a história, um compromisso de 10.000 horas não garante realmente o domínio. Você conhece o ditado: “A prática não leva à perfeição. A prática perfeita leva à perfeição. ” Para que seja significativo, a prática deve ser intencional Quer se tornar um especialista em algo? Experimente a prática deliberadaÉ muito fácil sentir-se desanimado quando se tenta arduamente melhorar uma determinada habilidade. Use o poder da "prática deliberada" para superar esses platôs irritantes. consulte Mais informação . A maestria só pode ser alcançada por meio de 10.000 horas de prática deliberada.
Como você pratica é muito mais importante do que quanto tempo você passa praticando.
Ler é passivo. Assistir às aulas do YouTube é passivo. Ouvir podcasts é passivo. Como um programador novato, você pode ficar tentado a flutuar de tutorial em tutorial, abordando assunto após assunto sem realmente aplicar nenhum desses conhecimentos de forma prática. Resista a essa tentação.
Uma coisa é entender um exemplo antes de você, mas outra é sintetizar uma solução do zero. Se você deseja acelerar o processo de aprendizagem, deve estar disposto a ser ativo em vez de passivo. A prática ativa é o único tipo que importa no final.
Experiência com projetos pessoais
Para mim, o dever de casa era a pior parte da escola. Parecia apenas um estratagema elaborado para matar a diversão e manter os alunos ocupados - o que, para ser justo, às vezes era verdade. Mas agora que olho para trás, a importância do dever de casa finalmente faz sentido. Isso me forçou a aplicar o conhecimento recém-adquirido de forma ativa.
Se você está inscrito em cursos e aulas de programação Os 11 melhores sites para cursos online gratuitos de programação de computadoresUsando esses cursos de programação de computadores online gratuitos, você pode se tornar um grande programador sem um diploma de ciência da computação. consulte Mais informação , não subestime a eficácia do dever de casa. Leve isso a sério, sempre tratando-o como uma chance de consolidar ainda mais o que você aprendeu na memória de longo prazo.
Mas muitas vezes, o dever de casa ainda não é suficiente. (E se você está aprendendo a programar sozinho sem um instrutor de verdade, provavelmente não tem dever de casa para começar.)
Qual é a solução? Crie alguns projetos paralelos descartáveis!
Pense em um poucas ideias de projeto 5 ideias de projetos para ajudá-lo a aprender a programar com mais rapidezExistem algumas maneiras de facilitar a curva de aprendizado de programação. Suje as mãos e aprenda mais rápido com projetos paralelos que você pode iniciar a qualquer momento. Brinque com esses cinco. consulte Mais informação que você gostaria de implementar. Para iniciantes absolutos, você pode considerar um jogo de Tic-Tac-Toe ou Hangman. Para programadores experientes que estão tentando aprender uma nova estrutura, tente programar um aplicativo móvel simples ou um jogo da web. Contanto que seja do seu interesse em um nível pessoal, vá em frente!
A beleza dessa abordagem é dupla.
Primeiro, é mais provável que prenda sua atenção. Estudos têm mostrado que os alunos aprendem melhor quando podem seguir tópicos de seu interesse. Isso é exatamente o que um projeto pessoal oferece. Você tem uma meta final que realmente deseja alcançar, portanto, é mais provável que retenha as informações que o levarão até lá.
Em segundo lugar, não há pressão para você ter sucesso. Embora o sucesso seja bom, a falta de formalidade permite que você seja experimental e criativo. Você inevitavelmente terá problemas, mas é mais como brincar com Lego do que lição de casa. É mais divertido e não tão estressante.
Relaxe e marque tudo
A verdade é que nenhum programador se lembra tudo eles aprenderam. Mesmo depois de trabalhar com uma biblioteca ou estrutura específica por um tempo, não é incomum se você não consegue lembrar todas as funções ou variáveis de cabeça.
Na verdade, tentar memorizar tudo pode acabar sendo uma grande perda de tempo e esforço. As folhas de referência existem por um motivo. Por que guardar uma enciclopédia inteira na memória quando você pode simplesmente abri-la sempre que precisar?
Então, quando memorizar e quando fazer referência?
Quando se trata de material conceitual, sempre internalize-o com o melhor de sua capacidade. Com isso quero dizer compreender a teoria, mesmo que você não possa convertê-la em código real (e a teoria deve ser clara o suficiente para você ensiná-la com clareza).
Para todo o resto - como nomes de funções específicas, listas de parâmetros ou até mesmo peculiaridades de linguagem - Eu não me preocuparia em me comprometer na memória. Sinta-se à vontade para consultar uma folha de referência. Às vezes, você fará referência a algo com tanta frequência que acaba memorizando. Se isso acontecer, tudo bem. Se não, tudo bem também.
Pessoalmente, tenho centenas de marcadores na Internet para várias APIs, guias e tutoriais. Se eu precisar implementar algum tipo de algoritmo de pathfinding, posso consultar um guia para me ajudar a codificá-lo antes de esquecê-lo novamente. Ajuda a compreender os conceitos subjacentes, mas tento não me preocupar com os detalhes da implementação.
Pensamentos finais
Vou repetir um milhão de vezes se precisar: programar é difícil e está tudo bem se você lutar com isso. Tenho programado como hobby há mais de uma década e ainda me sinto intimidado quando tenho novos conceitos para aprender.
Não se culpe se você não consegue se lembrar de tudo imediatamente. Esperamos que as dicas acima sejam úteis para você e, mesmo que não sejam, você sempre pode contar com as referências marcadas como último recurso.
Você acha a programação difícil? Que tipo de truques e dicas você conhece que podem ser úteis para programadores iniciantes? Compartilhe sua sabedoria conosco nos comentários abaixo!
Créditos de imagem: Programador binário via Shutterstock, Apagador de memória via Shutterstock, Código ofuscado via Shutterstock, Patinho de borracha via shutterstock, Digitador de teclado via Shutterstock, Código-fonte PHP via Shutterstock, Pastas de arquivos via Shutterstock
Joel Lee tem um B.S. em Ciência da Computação e mais de seis anos de experiência profissional em redação. Ele é o Editor-chefe da MakeUseOf.