Na minha situação, como eu poderia aprender a programar sem um mentor? [fechadas]

4

Assim, meu problema pode ser relativamente raro, pelo menos a maioria das perguntas "como aprender a codificar" que eu já vi lidam com a falta de compreensão fundamental de computadores ou idiomas. Sou fluente em Linux, consertando PC's até certo ponto, aprender novas linguagens não é um problema para mim (aprendi um pouco de Scheme para entregar tarefas de laboratório em um único dia), etc. Estive no código aberto do KDE projeto e corrigido bugs e segfaults com sucesso, embora este último necessitasse de alguma assistência, uma vez que eu não tinha o conhecimento necessário do SO. Mas , há um problema enorme.

Não consigo escrever código do zero, especialmente na minha linguagem C ++ favorita. Eu entendo a linguagem em si, sem problemas. Sempre que eu tenho que projetar um conjunto de classes para o meu programa (uma muito simples), para dividir responsabilidades entre funções, para escolher um idioma ou um recurso de biblioteca para usar entre os disponíveis, eu venho para uma barraca e passo dias começando na maldita tela. Eu tenho um ótimo PC, display e logo um novo teclado. Eu tenho muito tempo, mas é desperdiçado vagando, incapaz de fazer uma escolha ou decisão de design. A essência do problema é, provavelmente, que eu não sei o que é mais correto ou apropriado e, mais importante, qual é a maneira "comum" de fazer isso ou aquilo - eu não quero reinventar a roda ou pegar o errado abordagem - veja o último parágrafo do porquê é assim.

A raiz como eu sinto é aqui: eu estou em uma necessidade extrema de entrada em minhas idéias, para que elas sejam validadas ou rejeitadas, ou pelo menos discutidas. Minha universidade, e nenhuma universidade russa (ou nenhuma Uni no mundo? Como é feito no Ocidente?) Não oferece um serviço de "consultoria", e ninguém realmente se importa com o código real que eu escrevo. Ontem eu aprendi que uma vez que o curso acabou, eu não tenho permissão para pedir ajuda ao professor em projetos, o que é compreensível, uma vez que eles têm uma quantidade finita de tempo livre e os estudantes são muitos. Eu aprendi inglês com uma professora muito grande, que me ensinou a falar, em vez de apenas conhecer a gramática. Talvez eu possa ou deva encontrar um mentor para me fazer passar pelas barracas no começo?

Como posso resolver isso? Como todas as pessoas que postam código no GitHub escrevem isso em primeiro lugar, obviamente não há validação ou revisão para projetos pessoais?

Caso você se pergunte de onde vem, na minha escola matemática fomos ensinados a atuar em probems de uma maneira "alfabetizada" e receber feedback, bem como seguir as regras e práticas estabelecidas. No entanto, ainda consegui encontrar minhas próprias soluções, e elas foram, é claro, aceitas. Mas com esse problema de programação que estou descrevendo, sinto que simplesmente não conheço regras ou exemplos suficientes para seguir ...

    
por iksemyonov 19.03.2016 / 16:00
fonte

1 resposta

24

Blogs e podcasts são seus mentores. Livros são seus mentores. Vídeos são seus mentores. A Internet tornou possível ter essas coisas em abundância. Persiga-os com vigor.

Eu sei que isso vai me fazer soar como um veterano, mas quando eu tinha a sua idade eu não tinha nenhum mentor. Não havia mentores, porque eles não existiam. A Internet não existia. Boas aulas de programação não existiam. Tudo o que estava disponível para mim era meu intelecto e um computador. Eu sabia mais do que qualquer outra pessoa à minha volta na época. Isso não é um orgulho; é apenas o jeito que foi. Os únicos mentores possíveis seriam Bill Gates, Steve Jobs ou Steve Wozniak, mas tenho certeza de que nenhum desses caras viria à minha casa e me ensinaria como programar.

Então aqui está o acordo. Até que você tenha escrito, testado, depurado, refatorado e reescrito, digamos, cem mil linhas de código em um aplicativo real, seu código vai sugar . Você tem que descobrir o que funciona e o que não funciona, no momento em que você está escrevendo código. Dessa forma, não é diferente de aprender um instrumento musical; você tem que colocar na prática.

Certamente, incentivo você a ler livros, ouvir podcasts e assistir a vídeos. Eles ensinarão os princípios básicos. Mas nenhuma dessas ferramentas vai te ensinar como programar até que você pratique programação escrevendo muitos códigos bons. E aqui está o problema: ninguém vai te orientar até que você saiba os fundamentos, que você pode obter sem instruções supervisionadas, se você tiver talento suficiente para ser um programador.

Uma nota de advertência: não fique muito envolvido em regras, "melhores práticas" ou padrões de software até entender os fundamentos da programação bem o suficiente para entender por que essas máximas existem. Se você nunca escreveu nenhum código, é muito cedo para estudar o Princípio da Responsabilidade Única, porque você não vai entender e vai aplicá-lo mal. Não seja sugado para os "padrões de software" muito cedo. Se você tiver que perguntar "qual martelo eu devo usar para consertar este telhado", então você ainda não sabe o suficiente para consertar o telhado.

E, finalmente, um aviso: se você está começando a programar por qualquer motivo que não seja amá-lo e ser o melhor possível (razões como dinheiro, estilo de vida etc.), você será infeliz e você fará todos ao seu redor miseráveis. A programação está agravando o suficiente sem que seja uma chamada, e há muitos programadores marginais por aí. Faça um favor ao mundo e seja bom nisso, ou não faça nada.

    
por 19.03.2016 / 16:46
fonte