Como a música e o desenho me ensinaram a programar



De um tradutor: Xijiang Yang, um programador de Nova York, fala sobre como a arte o ajuda a praticar a codificação.

A programação é semelhante à arte. Ao mesmo tempo, outras formas de arte, em particular música e desenho, podem ensinar muito a um programador. Espero que eles o ajudem da mesma maneira que me ajudaram no devido tempo.

A Skillbox recomenda: Curso prático de dois anos "Eu sou um desenvolvedor Web PRO" .

Lembramos que: para todos os leitores de "Habr" - um desconto de 10.000 rublos ao se inscrever em qualquer curso Skillbox usando o código promocional "Habr".

Concentre-se no básico


O que ensinamos?

Se você gosta de algoritmos, quero dizer, realmente gosto, como o fato de que no início da manhã você começa imediatamente a recursão e segmenta árvores, parabéns. Você é um programador puro. Mas nós, o resto, somos pessoas comuns, às vezes nos perguntamos: por que resolver esses quebra-cabeças? Apenas para passar nas entrevistas com sucesso?

De fato, quando você pratica algo, precisa entender por que está fazendo isso. Deseja adquirir certas habilidades? Ou fortalecer fraquezas?

Acredito que todos esses quebra-cabeças para programadores não apenas permitem que você obtenha conhecimento específico, mas também entendam melhor os elementos básicos do processo de criação e escrita de código. Obter ou melhorar habilidades básicas.

Quanto aos quebra-cabeças, eles não são necessários para resolver o problema, mas para estudar o processo de encontrar uma solução. Essas são coisas diferentes.

O que você faz com o problema - divida em pequenos componentes? O que ajuda você a melhorar seu nível? Quais são as diferenças entre algumas estruturas de banco de dados e outras? As habilidades básicas são semelhantes aos principais harmônicos nos quais a sonata é construída.

O que sabem profissionais experientes?


Eu diria que um artista experiente não sabe desenhar o Central Park em Nova York no outono. Mas ele sabe o básico necessário para criar uma imagem. Utilizando-os, ele pinta uma paisagem, e o resultado é uma imagem incrivelmente bonita.

Um artista experiente não sabe desenhar folhas nas árvores. Não, ele é fluente em cores e suas combinações. Ele sabe como as cores se comportam na tela.

Portanto, um programador experiente não precisa conhecer todas as nuances do React, Vue, Ember ou outras estruturas. Um programador experiente sabe como o JavaScript funciona e como o navegador funciona. Um programador experiente entende os benefícios da programação funcional; ele sabe por que o React é fundamental em um caso específico.

Aprenda o básico, e tudo o que foi descrito acima se juntará em uma imagem clara.

Esboços da vida


Copiar e colar versus fonte

Meus amigos, artistas que levam a sério o ofício, sempre fazem esboços da vida. O que isso significa? Eles desenham tudo o que vêem, tudo o que lhes interessa.

Eles não desenham uma fotografia ou modelo, mas desenham o que vêem.

Quando alguém desenha uma paisagem a partir da imagem de alguém, ele não inventa, mas copia. Na programação, o equivalente a esse comportamento são trechos de copiar e colar com Estouro de Pilha.

O código copiar e colar nunca fornecerá a oportunidade de obter conhecimentos fundamentais. Copiar o código de outra pessoa tem um significado semelhante: você obterá uma solução, mas não a experiência. Vença a batalha, mas perca a guerra.

Conhecimento universal


O conhecimento fundamental pode ser chamado de universal. Se você tentar resolver o problema sozinho, está enganado e, finalmente, encontra uma solução, obtém exatamente esse conhecimento. Você estuda os princípios do trabalho que podem ser usados ​​em projetos futuros.

Raramente são decisões comuns quando "um tamanho serve para todos". Para obter as chaves para bloqueios diferentes, você precisa trabalhar. Às vezes, é útil fazer o trabalho sem a influência da decisão de alguém, por conta própria.

Prática


Repetição direcionada

Quando um músico estuda uma obra, ele não tenta reproduzi-la do começo ao fim, repetidas vezes, milhares de vezes. Ele procura fraquezas em seu trabalho e as elimina.

Caso contrário, o desempenho estará longe do ideal, conter as notas erradas (no caso de programação - bugs).

Embora a repetição cega não seja a melhor maneira de aprender alguma coisa, a repetição focada permite que você obtenha a experiência certa. Você trabalha em seus pontos fracos e se torna melhor.

E para um iniciante, a repetição cega é útil. Isso desenvolve a memória muscular, que no caso da programação pode ser considerada capacidade cognitiva. Depois disso, você pode prosseguir para trabalhos complexos.

Trabalho de alto nível


Se você é novo no uso de qualquer estrutura, pratique. Aprenda seus elementos básicos, crie algo básico.

Selecione uma porta, crie uma rota, envie uma solicitação e responda. Então repita isso.

Quando um músico termina de estudar a parte difícil de uma peça, ele não aperta as mãos e não diz para si mesmo: sim, bem, isso acabou. Não, ele repete isso para excluir a possibilidade de erro.

É o mesmo com um programador: se você escreve um programa complexo, resolve um problema, pode pular o erro de sintaxe mais simples, após o qual todo o mecanismo se recusará a trabalhar. Tem que procurar um problema. Se você elaborar a sintaxe do automatismo, a probabilidade de um problema será reduzida.

Então você não precisa se preocupar. Um músico que domina suas habilidades de automatismo não se preocupará em tocar notas individuais de um concerto. Ele se concentra na melodia como um todo, e não em seus elementos individuais.

Treinamento e estrutura de tópicos


Exemplo de da vinci

Se você já estudou o trabalho de grandes artistas, por exemplo, Leonardo da Vinci, provavelmente já sabe quantos esboços, rascunhos e telas de treinamento eles criaram. Leonardo era famoso por sua atenção aos detalhes - ele fazia esboços de partes do corpo, plantas, animais, pessoas e seus grupos.

Os artistas iniciantes também praticam muito, por exemplo, pintam constantemente naturezas mortas. Mas por que, porque eles não são nerds? Não, tudo isso é treinamento direcionado. Iniciantes ganham experiência e conhecimento ao trabalhar com cores, luzes e sombras.

Alguns programadores trabalham de maneira semelhante, dividindo um grande problema em vários pequenos e depois trabalhando em todos eles.

Programadores Sketchbook

Como me lembro dessa função, em que contexto é usada? Preciso chamar super () em cada componente React, ou vale a pena estudar um pouco as aulas de ES6? Como integrar solicitações HTTP assíncronas?

Você pode entender tudo isso abrindo Repl ou JSBin. Pequenos estudos podem aprofundar a compreensão de coisas mais gerais, aprender a trabalhar com grandes projetos.

Quando um artista desenha uma maçã ou uma árvore, isso não significa que um objeto em particular seja do seu interesse. Ele simplesmente elabora o pequeno para usar a experiência no grande.

Olhe para as mãos da Mona Lisa - elas são ideais em termos de tecnologia.

Retratos e árvores de dependência


Composição:

Eu acho que a principal tarefa de muitos fins (incluindo programadores) é a composição. É sobre como combinar o quociente no todo de tal maneira que uma obra-prima seja obtida.

Existem vários métodos para conseguir isso. Uma delas é começar com uma camada com um mínimo de dependências. E já a partir desta camada de base sobe.

Se você faz uma analogia com o artista, ele não começa com os cílios. Ele começa com uma cartilha. Os mesmos cílios, sua localização depende da forma e tamanho da pálpebra. Depende do tamanho e da posição do globo ocular, que, por sua vez, está associado às características estruturais do crânio. O retrato inteiro, se estamos falando sobre o retrato, é um monte de dependências.

Se um elemento é colocado incorretamente, a impressão de harmonia e integridade desaparece. A mesma coisa com um projeto de software. Tendo cometido um erro, você começa a produzir entidades que estragam todo o trabalho.

Camada após camada

Ao criar um aplicativo de pilha completa, cuide da camada de dados. Execute testes. Verifique todos os itens. Somente nesse caso você pode ter certeza da confiabilidade de todo o projeto. Mas, inicialmente, é necessário entender sua essência e ver toda a imagem. Se houver entendimento, você pode trabalhar nos detalhes.

Codificadores - Codificação


Cada um na sua. Músicos - música, artistas - pinturas. Para programadores - um código. Começamos o artigo com as palavras de que o trabalho de um programador também é uma arte. E é mesmo. Vale lembrar que apenas essa habilidade pode e deve ser aprimorada praticando, estudando e explorando. Com a ajuda da prática, programadores iniciantes poderão se concentrar no básico, melhorar suas criações e, eventualmente, criar um projeto interessante, tão grande quanto as ambições do criador.

Source: https://habr.com/ru/post/pt432016/


All Articles