Eu sou um engenheiro de software iniciante (agora no segundo ano, formado em CS) e realmente luto para entender os programas de outras pessoas. Quero saber se essa habilidade (ou falta dela) pode ser uma desvantagem para mim e, se sim, como posso desenvolvê-la?
reading-code
James Bond
fonte
fonte
Respostas:
É essencial.
A maneira como você o desenvolve é escrevendo seu próprio código (muitos deles) e, sim, lutando para ler o código de outras pessoas.
O problema, é claro, é que nem todo mundo pensa da mesma maneira que você. Eu estava em uma aula de Java do primeiro ano há muito tempo e recebemos uma tarefa. Ao contrário do que eu pensava (que era que as respostas convergiriam em três ou quatro soluções comuns), todos os alunos tinham uma solução única para a tarefa.
Daqui resulta que você deve ler um bom código.
Esse é um dos motivos pelos quais os Design Patterns se tornaram tão populares e por que você deve estudá-los. Os Padrões de Design fornecem um vocabulário comum para os programadores se comunicarem e ajustam sua mente para "melhores" maneiras de resolver problemas de computação.
Você também deve estudar algoritmos e estruturas de dados.
Corolário: você deve sempre se esforçar para escrever código que outros desenvolvedores possam entender prontamente.
fonte
Isso é muito importante.
Depois que você se formar e sair para o mundo, a maioria dos projetos nos quais você trabalhará já terá código contribuído por outras pessoas. Lucky é o programador que passa o tempo todo em projetos greenfield!
É uma habilidade adquirida através da prática e paciência e, em muitos casos, é uma habilidade na qual muitas pessoas não têm muita oportunidade de trabalhar até depois de se formarem e conseguirem o primeiro emprego. Relaxar!
(embora sua escola possua um programa cooperativo, isso lhe daria uma experiência de pré-graduação para trabalhar em grandes projetos que são escritos principalmente por outras pessoas E isso lhe dá créditos acadêmicos!
fonte
É uma habilidade importante , dependendo das especificidades de onde você trabalha, pode até ser mais importante do que escrever o próprio código.
Como outras habilidades, a prática leva à perfeição! Tente ler o código de outro programador, depure-o e o que me ajuda pessoalmente, é refatorar ou melhorar pequenos pedaços de código e expandir a partir daí.
fonte
Existem habilidades distintas na leitura e na escrita de código.
Quanto à leitura versus escrita. Sim, a leitura é essencial.
Algumas máximas que ajudam muitos de nós são:
ESTÁ BEM. Então, isso é ótimo. Agora, vamos ao que você provavelmente está enfrentando.
omg, essa enorme base de código com dezenas de milhares de linhas de código-fonte e classes com centenas de linhas com dependências malucas e toda vez que tento seguir algo, tenho que manter 10 níveis na cabeça, etc. etc.
Parece familiar ? Sim. Respiração profunda. relaxar. É normal. É disso que os sistemas de produção são feitos. As pessoas sobrevivem (e florescem) nessas situações aparentemente incompreensíveis porque:
fonte
A maioria dessas respostas se concentra na importância da leitura de código para o auto-aperfeiçoamento. Eu concordo plenamente e apoio.
Há outro ângulo em que se deve tomar cuidado - mesmo se você fosse um prodígio que não pudesse se beneficiar com a leitura de outras abordagens (impossível, mas por uma questão de argumento ...), ainda precisaria saber ler código por causa de uma conceito que basicamente não existe no cenário universitário: a grande maioria dos projetos da indústria são projetos de campo marrom (ou seja, integrados a uma base de código preexistente).
A necessidade de ler o código apenas para entender a base de código e os processos existentes é real. Sempre é possível fazer perguntas a outros desenvolvedores sobre código, mas isso pode levar tanto tempo. As pessoas saem, trocam de projeto ou o tempo passa simplesmente. Os detalhes de baixo nível desaparecem da memória e os programadores de manutenção aplicam patches. Em algum momento, não há uma única fonte de verdade, exceto o próprio código.
Uma boa higiene do código, guias de estilo, revisões de código e ajuda na documentação, mas em algum momento o código é a fonte da verdade para o que acontece e a única maneira de encontrar a resposta será obtê-lo você mesmo. Além de seus usos no autodesenvolvimento, a capacidade de ler códigos é uma habilidade distinta da escrita.
fonte
Compreender o código de outras pessoas é algo que você não pode escapar, pois provavelmente trabalhará em equipe, mesmo que não em equipe você pesquise no Google coisas diferentes e precisará entender o código de exemplo. Então, sim, é uma obrigação.
O que eu sinto é que todo mundo percebe que esse sentimento pode ser um pouco menor do que outro, especialmente no início. Você entende seu código melhor do que o código dos outros, pois passa muito mais tempo com seu próprio código do que o código de outra pessoa, pois você não apenas lê, mas escreve e estrutura isso em sua mente. Se você começar a gastar mais tempo com o código de outras pessoas e primeiro tentar ver que tipo de estrutura / fluxo está sendo usado, isso certamente fará com que você entenda melhor o código.
Para tornar meu argumento ainda mais convincente, se você tiver algum código que você escreveu há um ano, tente entendê-lo novamente e posso ter certeza de que você levará mais tempo, mas menos que o código de outros, para ter idéia de como estruturar seu código. código.
Espero que esta ajuda, não fique desapontado, é perfeitamente normal. Gaste mais tempo com o código e você poderá obtê-lo.
fonte
Bem, acabei de receber um projeto com cerca de 100.000 linhas de código escritas por uma equipe em um país diferente, e preciso fazer algumas alterações muito significativas em uma cópia do código nos próximos meses, deixando o mesmo código em comum quanto possível.
Você me diz como eu posso fazer meu trabalho sem a capacidade de ler o código de outras pessoas, rápido. Se você não consegue ler o código de outras pessoas, está completamente, totalmente preso.
fonte