Aprender a codificar pode ser um empreendimento frustrante, porque você está destinado a encontrar muitos erros vermelhos ao longo do caminho. O que torna um programador bem -sucedido não está evitando erros – nenhum programador pode evitá -los.
Grandes programadores entendem que os erros fazem parte do processo e sabem como encontrar a solução para cada um enquanto aprende algo novo deles. Neste artigo, ensinaremos você a pensar sobre erros em seu código de maneira um pouco diferente.
Aprenda algo novo de graça
Vermelho é uma cor linda
Estamos condicionados pela sociedade a ter medo da cor vermelha. Pare, perigo, não entre, todos os altos sinais vermelhos nos dizendo para nos virar, não entre lá, você se machucará. É tão fácil levar essa mentalidade para a codificação que muitos novos programadores ficam desencorajados e perturbados com as mensagens de erro vermelho que seus compiladores cuspiram.
Eles pensam: “Oh não, eu fiz algo errado de novo” e “Clear Coding não é para mim, mesmo o computador sabe”, mas essa é a maneira errada de pensar! Todo programador, mesmo os mais experientes, encontra erros o tempo todo. De fato, acredite ou não, os programadores experientes provavelmente encontram muito mais erros do que um novo programador jamais o fará.
Erros em seu código significam que você está tentando fazer algo authorized
Considere o gráfico totalmente inventado abaixo:
À medida que seu código aumenta na complexidade, o número de erros que você encontrará aumenta a uma taxa semelhante. Um erro significa que você está tentando fazer algo que pode ser um pouco complicado (ou muito complicado), e ainda não funciona, mas de modo algum é um sinal de que você deve parar de tentar!
De fato, existem funções inteiras de engenharia construídas em torno de encontrar e corrigir erros. UM Engenheiro de confiabilidade do native Encontra e relate erros em plataformas da internet. UM Engenheiro de teste cria testes automatizados para descobrir erros no software program e garantir que ele atenda aos padrões de uma empresa.
Quase todas as principais empresas de tecnologia oferecem recompensas em dinheiro a programadores intrépidos que podem encontrar bugs em seu software program. GoogleAssim, Amazone Microsoft Todos incentivam os usuários a procurar bugs e relatar qualquer um que possam encontrar.
Por que eles fazem isso? Por que uma grande empresa de tecnologia deseja que seus usuários tentassem quebrar seu software program? Porque eles entendem que encontrar bugs é uma das melhores maneiras de melhorar seu código. Os bugs mostram onde estão as fraquezas, fazem você realmente considerar o que deseja que seu código understand e o guie para a construção de produtos mais confiáveis e seguros.
Okay, okay, eu entendi, eu não deveria ter medo das minhas mensagens de erro, mas apenas mudar de como me sinto não me ajuda a superar essa mensagem de erro bem na minha frente! O que devo fazer!
Você está certo, pessoa imaginária na minha cabeça, comemorar um erro não fará esse erro desaparecer. Você deve ser capaz de interromper o erro para realmente começar a melhorar. Vamos descrever algumas etapas a serem tomadas para resolver quaisquer erros do compilador – os erros que imprimem para o console à medida que você codifica – que você pode encontrar.
As 6 etapas a seguir o guiarão através de um erro padrão que pode ser lançado no seu caminho enquanto você aprende a codificar, e eles mostrarão que os erros não são tão assustadores quanto parecem. De fato, as etapas são principalmente uma combinação de ler o erro com cuidado ou copiar colando -o em uma pesquisa no Google!
Enfrentar erros em seu código sem medo
1. Disseca o erro.
Quando um erro aparecer pela primeira vez na tela, encontre a linha no erro específico do seu código. Muitas mensagens de erro têm toneladas de detalhes de caldeira que não são importantes para o erro actual. Você deseja encontrar essa parte no erro que lhe dá uma visão do que aconteceu.
Recentemente, gravei um erro quando estava tentando criar um programa que pudesse armazenar uma lista de notas para um monte de aulas que um aluno fictício poderia estar participando. Eu tinha uma lista de aulas e uma lista de notas e queria combiná -las em lista de (class, grade)
Pares dos quais eu poderia adicionar e remover aulas e notas.
Quando corri meu código, encontrei o seguinte erro:

Com qual linha nos importamos? Bem, os três primeiros estão apenas falando onde O erro ocorreu, não o que foi o erro. Mas a quarta linha:

Essa é a nossa mensagem de erro! Foi isso que deu errado. Podemos ainda não saber exatamente o que isso significa, mas estamos no caminho de descobrir! Sabemos que usamos um zip
Objeto em nosso código, para que esse possa ser um ótimo lugar para começar.
2. Pergunte a si mesmo, a solução está no erro?
Muitas vezes, você encontrará erros de sintaxe que mostram exatamente onde ocorreu o erro e qual foi o erro. Quando você obtém esses tipos de erros, você pode voltar diretamente ao seu código e corrigi -los. Aqui está um exemplo de um erro de sintaxe:

Aqui esqueci de incluir um :
No remaining do meu for
declaração. Observe que, neste caso, o compilador geralmente aponta para exatamente onde o erro ocorreu com o ^
símbolo, facilitando a fixação.
3. Pesquise outras pessoas que encontraram esse erro.
Muitas vezes, a etapa dois não se aplica e você terá que mergulhar um pouco mais fundo no erro. Vamos voltar ao erro do livro que encontrei na etapa um. Como a solução não é imediatamente óbvia, vou ter que fazer um pouco de pesquisa on -line.
Copie e cole a parte importante da mensagem de erro em um mecanismo de pesquisa e procure várias páginas, se necessário, até encontrar alguém que também tenha encontrado esse problema. O Google é sempre um bom lugar para verificar, mas outro excelente recurso para pesquisar é Pilha estouroque é uma comunidade maravilhosa de programadores que compartilham conhecimento e construindo coisas legais.
Eu quero resolver o erro AttributeError: 'zip' object has no attribute to 'append'
então vou pesquisar no Google essa linha e ver o que surgir. O primeiro resultado Acho que não está tremendous relacionado, mas tudo bem!
4. Examine o caso de uso deles com o seu.
Muitas vezes, você não encontra alguém que estava tentando fazer exatamente a mesma coisa que estava tentando fazer, mas que ainda encontrou o mesmo erro. Leia um pouco o código deles e veja se é comparável ao seu.
Mesmo que o código deles seja extremamente diferente, uma ou duas linhas que lançaram o erro pode ser muito semelhante ao seu código, para que a solução possa acabar sendo a mesma.
Considere meu AttributeError
. Eu encontrei um resultado Isso não parecia relacionado, mas rolar para a terceira resposta que vejo:

Hmm, estou executando o Python 3, e tudo o que ele tinha que fazer para consertar seu código foi mudar photos = zip(bufferArray(:,0))
para photos = listing(zip(bufferArray(:,0)))
. Vale a pena um tiro!
5. Tente implementar a solução.
Ajuste um pouco o código para combinar com seu estojo de uso e dar uma foto! A pior das hipóteses é que o erro não desaparece e você pode tentar novamente. O melhor caso é que ele está corrigido e você aprendeu o que estava causando seu erro!
Cada solução que você implementa é uma nova ferramenta que você pode adicionar à caixa de ferramentas do seu programador e outro erro que você saberá como resolver no futuro.
Felizmente, thortom
A solução foi capaz de resolver meus problemas com o .zip()
objeto. Tudo o que eu precisava fazer period convertê -lo em uma lista.

No processo de descobrir esse erro do compilador, aprendi que zip()
Não retorna uma lista, ele retorna um iterador. Também aprendi que esse é um novo recurso do Python 3 que não existia com o Python 2.7. Veja, todo erro é uma oportunidade de aprender!
6. Se não funcionar, repita as etapas 2-4.
Proceed pesquisando através do Google e Stack Overflow. A resposta estará lá! Às vezes, é útil para o Google partes da mensagem de erro, não a linha inteira. Considere o AttributeError
. Se eu pesquisei apenas no Google “.zip()
Objeto ”, eu aprenderia muitas das mesmas informações que obtive ao pesquisar no Google o erro completo.
As soluções para seus erros estão lá fora, e o processo de encontrá -los fará de você um programador mais forte e confiante. À medida que você cresce e aprende, espere encontrar inúmeros erros e espere que cada um seja sua própria oportunidade de aprendizado única.
Agradecimentos especiais a Natalia Rodríguez por contribuir com este artigo.
Este weblog foi publicado originalmente em julho de 2018 e foi atualizado para incluir mais etapas para aprender com erros em seu código.