Às vezes, ficar bom em algo parece ser um processo mágico. Mas, na realidade, há um processo claro a seguir.

Anders Ericsson, professor da Universidade Estadual da Flórida, é um dos principais pesquisadores de artistas especializados. Ele estuda o processo de aquisição de habilidades e o que é preciso para se tornar um especialista.

Através de seus anos de pesquisa, ele conclui que o que separa os melhores desempenhos de todos os outros é a quantidade de tempo gasto em algo que ele chama de prática deliberada.

Ele acredita que “o tipo certo de prática por um período suficiente leva a melhorias. Nada mais."

Acredito que a estrutura de prática deliberada desenvolvida pelo Dr. Ericsson possa ser usada para ajudar as pessoas que aprendem a programar.

A implementação de práticas deliberadas me ajudou na minha vida pessoal e acredito que pode ajudá-lo a aprender a programar com mais eficiência.

Abaixo, explicarei cada componente da prática deliberada e como você pode incorporar a prática deliberada na sua prática de codificação.

Desconstrução

O primeiro passo da prática deliberada é desconstruir e analisar sua habilidade desejada.

A desconstrução exige que você tenha uma visão geral do seu objetivo geral e quebre em pequenos componentes gerenciáveis. Você está tentando encontrar o caminho mais eficiente de onde você está para onde deseja ir.

Existem duas maneiras de desconstruir uma habilidade. Você pode quebrar os componentes você mesmo ou aprender com alguém que já adquiriu a habilidade.

Para alguém que aprende a codificar, recomendo aproveitar o conhecimento de outros desenvolvedores em vez de reinventar a roda.

A maior parte do material disponível (como o freeCodeCamp) foi criada por pessoas que se esforçaram para desconstruir o processo de aprendizado e iteraram no material.

Você pode aproveitar a experiência e o esforço deles ao procurar seu próprio caminho a seguir.

Percorra alguns sites de codificação diferentes ou leia o Sumário de vários livros de codificação (você pode visualizar livros na Amazon gratuitamente). Além disso, leia alguns blogs ou pergunte a um amigo desenvolvedor sobre sua opinião.

Depois de um tempo, você terá uma idéia do melhor caminho a seguir.

Além disso, verifique se seus interesses têm voto. É difícil aprender rapidamente se você não está interessado no material.

A rota mais eficiente para aprender a codificar é a interseção entre o que os especialistas recomendam e o que você está interessado.

Não fique obcecado em desconstruir perfeitamente o caminho para se tornar um programador. Você nunca encontrará a rota perfeitamente eficiente.

É melhor fazer uma pequena pesquisa, começar em algum lugar e reajustar à medida que avança.

Metas de alongamento

O próximo componente chave da prática deliberada é a criação de metas extensivas.

Uma meta esticada é uma pequena tarefa que o empurra para fora de suas habilidades atuais e o move ao longo de seu caminho de aprendizado desconstruído.

Criar metas extensivas não significa ter uma lista enorme de tarefas que você precisa concluir. A parte mais importante é configurar o seu aprendizado de uma maneira que ultrapasse os limites de suas habilidades de programação.

Nós, humanos, naturalmente favorecemos as coisas que são fáceis e automáticas.

No entanto, se nos empurrarmos para fora de nossas zonas de conforto por tempo suficiente, nosso corpo tentará normalizar o novo comportamento e torná-lo um hábito.

O objetivo de um objetivo de alongamento é colocar-se conscientemente fora da sua zona de conforto e esperar o seu corpo se adaptar.

O truque para criar uma meta extensa está dificultando a tarefa, mas ainda é possível.

Se o objetivo for muito difícil, você se perderá e não saberá como avançar. Se o objetivo for fácil demais, você não se desenvolverá o mais rápido possível (ou não o fará).

Levará algum tempo para encontrar o ponto ideal.

No início, uma meta estendida poderia ser simplesmente uma lição sobre o freeCodeCamp. À medida que o tempo passa, uma meta abrangente pode estar implementando um botão no site do seu portfólio sem usar o Google.

O principal a lembrar é que, se uma tarefa parecer fácil, você provavelmente não estará se esforçando o suficiente.

Foco e atenção

O foco é um componente fundamental da aquisição de memória e habilidade.

Quando você tenta codificar novas informações em seu cérebro, a força da codificação está diretamente ligada à intensidade do seu foco.

Quando seu foco é fraco, as novas informações serão menos visíveis, resultando em aprendizado mais lento e mais tempo estudando.

Uma característica comum entre as pessoas que aprendem a programar rapidamente é que elas têm a capacidade de se concentrar intensamente em qualquer tarefa que estejam realizando por longos períodos de tempo.

Pense em como qualquer artista de classe mundial pratica. Eles provavelmente não estão verificando seus telefones a cada 5 minutos. Eles provavelmente estão mentalmente presos a qualquer tarefa que estejam realizando.

Ter um bom foco significa eliminar todas as distrações indesejadas.

Existem dois tipos de distrações, internas e externas. Diminuir as distrações externas significa desligar o telefone, ir para uma sala silenciosa e / ou colocar um bloqueador de sites no computador.

Domar distrações internas significa não deixar que pensamentos internos consumam seu tempo. Isso pode ser feito praticando meditação ou tendo um caderno para escrever o que estiver em sua mente.

A chave é criar um ambiente livre de distrações e ter um plano quando uma distração surgir inevitavelmente. Você provavelmente já está bem ciente de todas as coisas que o distraem.

(Se você quiser mais informações sobre aonde o seu tempo vai, recomendo usar algo como RescueTime)

Melhorar seu foco é um processo. No começo, tente ficar totalmente focado por alguns minutos. À medida que o tempo passa, diminua lentamente a duração da sua codificação focada.

Ao praticar deliberadamente sua habilidade de programação, é melhor estar 100% focado por um período mais curto do que 70% focado por um período maior.

Pode parecer impossível manter o foco, pois vivemos em um mundo que constantemente tenta chamar nossa atenção. No entanto, você deve encontrar um caminho.

Realizar

A única maneira de melhorar algo é realmente fazê-lo.

As pessoas freqüentemente confundem adquirir conhecimento com adquirir habilidade. O conhecimento é útil, mas não substitui a tentativa de algo.

O conhecimento, de várias maneiras, fornece uma falsa sensação de progresso. Você pode assistir a 100 tutoriais de codificação e sentir que é capaz de codificar seu próprio site. No entanto, quando você sai e tenta construir um para si, acaba caindo de cara no chão.

É como a diferença entre assistir beisebol e jogar beisebol. Assistir ajuda você a jogar, mas você não pode se tornar um bom jogador de beisebol apenas assistindo seu time de beisebol profissional favorito.

A aquisição de habilidades exige que você saia para o mundo e teste seu conhecimento contra a realidade.

Isso nem sempre é fácil. Praticar algo novo irá atacar seu ego e fazer você se sentir incompetente. Você vai querer sair ou voltar para algo que seja mais confortável.

Infelizmente, é impossível aprender algo novo sem parecer incompetente (pelo menos a princípio). Você também pode se acostumar com isso.

Como falamos acima, o aprendizado não acontece dentro da sua zona de conforto. Não se surpreenda se você começar a se sentir desconfortável ao codificar. Desconforto geralmente é um sinal de que você está indo na direção certa.

Certifique-se de testar constantemente seu conhecimento em relação ao mundo real. Não aceite ler tutoriais ou assistir a vídeos. Coloque os dedos no teclado e escreva um código que você possa executar.

Comentários

É impossível melhorar em qualquer coisa sem feedback.

Imagine tentar melhorar seu jogo de golfe, mas você não consegue ver onde a bola cai. Não há como saber se você está melhorando.

Feedback é a maneira como a realidade se comunica com você. Ele permite que você veja a diferença entre o que você pensa que sabe e o que realmente sabe.

Existem duas maneiras de obter feedback. Você pode obtê-lo através do auto-estudo ou de outra pessoa.

O auto-estudo exige que você compare o que tentou com a solução correta que alguém postou.

Isso acontece naturalmente quando você acessa sites como o Stack Overflow ou o GitHub para encontrar uma resposta para um problema. O feedback acontece quando você descobre a diferença entre sua resposta e a resposta correta.

Quando você acessa sites como o Stack Overflow, não deixe de entender por que um pedaço de código funciona e como ele é diferente. Copiar e colar sem entender a diferença vai lhe tirar um feedback importante que ajudará a melhorar e atualizar suas habilidades.

Você também pode ler o código de alguém no Github e compará-lo com o seu próprio código (ou compará-lo com o seu entendimento atual de como codificar).

Ben Franklin usou uma estratégia semelhante quando estava melhorando suas habilidades de escrita.

Ele lia um artigo de seu jornal favorito algumas vezes. Então ele desconstruiria as técnicas usadas pelo autor. Ele guardava o artigo e tentava reproduzi-lo de maneira semelhante. Depois de escrever sua versão, ele compararia os resultados e analisaria sua execução.

A outra maneira de obter feedback é permitir que um desenvolvedor mais experiente veja e comente seu código.

Ter um novo par de olhos pode ajudá-lo a resolver problemas individuais e também a voltar aos trilhos se estiver indo na direção errada.

Pode ser assustador ter alguém olhando para o seu código (ou mesmo conversando com um desenvolvedor experiente). Nenhum de nós quer parecer burro. Se você consegue superar seu medo, obter feedback de outras pessoas pode ter um grande impacto.

Um dos meus maiores arrependimentos quando eu estava me ensinando a codificar era o fato de não receber feedback suficiente. Meu código estava uma bagunça e eu estava perdendo muito tempo com coisas sem importância.

Obter feedback de um desenvolvedor mais experiente me pouparia muito tempo e esforço. Eles viram instantaneamente o que eu estava fazendo de errado e me colocaram em um caminho mais reto.

Pense no feedback de um desenvolvedor experiente como uma bússola. Eles não o levarão fisicamente ao seu destino, mas garantirão que você esteja indo na direção certa.

Ajustar

O feedback é inútil se você não o usar.

Aprender a codificar é como passar por um quarto escuro. Você começa a andar, esbarra em alguns móveis, ajusta sua rota e tenta novamente.

Com base nos comentários que você recebe, é importante dedicar algum tempo para refletir sobre a diferença entre o que você queria fazer e o que realmente aconteceu. Com base nessa lacuna, faça ajustes à medida que avança.

Se você não fizer ajustes, não melhorará.

Você precisará ajustar linhas específicas ao código para fazer seu programa funcionar. Às vezes, você também precisará ajustar sua abordagem no nível macro.

Nosso instinto inicial quando não estamos progredindo é tentar mais. Isso só é eficaz até certo ponto.

Se você não estiver obtendo os resultados desejados, tente atacar coisas de diferentes ângulos. Pode levar algumas experiências para acertar.

Repetir

Executar uma tarefa uma vez não é suficiente.

Nossas mentes não armazenam informações como computadores. Tendemos a esquecer novas informações tão rapidamente quanto as aprendemos.

Para aprender algo novo, é necessário repetir uma tarefa várias vezes antes que ela continue.

A repetição é um sinal para o nosso cérebro de que uma nova informação ou um novo comportamento é valioso e não deve ser esquecido.

O estágio de repetição da aquisição de habilidades não é fácil. Não deveria ser. Você está conscientemente tentando reprogramar seu cérebro e seu corpo naturalmente quer fazer o que é familiar.

Você precisará aplicar esforços consistentemente para aprender a se tornar proficiente.

A única maneira infalível de falhar ao aprender a codificar é parar. Se você não sair e manter a consistência, poderá repetir o importante material de codificação e tudo acabará fazendo sentido.

Não importa o quão difícil seja, desenvolva um hábito de estudo consistente. É quase impossível aprender a codificar sem um.

Para se aprofundar em como você pode ser mais consistente, Eu escrevi um artigo sobre técnicas específicas que você pode usar.

Conclusão

O processo de aquisição de habilidades é simples, mas não é fácil. Você é seu maior inimigo no processo.

É difícil quebrar velhos hábitos. Cada nova habilidade é sua própria batalha a ser vencida.

Mantenha o foco, verifique se está se esforçando, ajuste com base no feedback, enxágue e repita.

Se você seguir a estrutura da prática deliberada, acredito que você se surpreenderá com a velocidade com que adquire a programação.

Boa sorte.

Se você quiser ouvir sobre outras idéias que aprendi ao longo do caminho, siga minha conta Zero to Programmer no Twitter. O objetivo da conta é ajudar você a aprender a programar com mais eficiência.