Comment la musique et le dessin m'ont appris Ă  programmer



D'un traducteur: Xijiang Yang, un programmeur de New York, explique comment l'art l'aide Ă  pratiquer le codage.

La programmation s'apparente à de l'art. Dans le même temps, d'autres formes d'art, en particulier la musique et le dessin, peuvent beaucoup apprendre au programmeur. J'espère qu'ils vous aideront de la même manière qu'ils m'ont aidé en temps voulu.

Skillbox recommande: Cours pratique de deux ans "Je suis un développeur Web PRO . "

Nous vous rappelons: pour tous les lecteurs de «Habr» - une remise de 10 000 roubles lors de l'inscription à un cours Skillbox en utilisant le code promo «Habr».

Focus sur les bases


Qu'enseignons-nous?

Si vous aimez les algorithmes, je veux dire, vraiment comme ça, comme le fait que tôt le matin, vous commencez immédiatement à faire des récursions et des segments d'arbres, félicitations. Vous êtes un pur programmeur. Mais nous, le reste, sommes des gens ordinaires, parfois nous nous posons la question: pourquoi résoudre ces énigmes? Juste pour réussir les entretiens?

En fait, lorsque vous pratiquez quelque chose, vous devez comprendre pourquoi vous le faites. Vous souhaitez acquérir certaines compétences? Ou renforcer les faiblesses?

Je crois que toutes ces énigmes pour les programmeurs vous permettent non seulement d'acquérir des connaissances spécifiques, mais aussi de mieux comprendre les éléments de base du processus de création, d'écriture de code. Obtenez ou améliorez vos compétences de base.

Quant aux puzzles, ils ne sont pas nécessaires pour résoudre le problème, mais pour étudier le processus de recherche d'une solution. Ce sont des choses différentes.

Que faites-vous avec le problème - casser en petits composants? Qu'est-ce qui vous aide à améliorer votre niveau? Quelles sont les différences entre certaines structures de base de données et d'autres? Les compétences de base s'apparentent aux principales harmoniques sur lesquelles la sonate est construite.

Que savent les professionnels expérimentés?


Je dirais qu'un artiste expérimenté ne sait pas dessiner Central Park à New York à l'automne. Mais il connaît les bases nécessaires pour créer une image. En les utilisant, il peint un paysage et le résultat est une image incroyablement belle.

Un artiste expérimenté ne sait pas dessiner des feuilles sur les arbres. Non, il parle couramment les couleurs et leurs combinaisons. Il sait comment les couleurs se comportent sur la toile.

Un programmeur expérimenté n'a donc pas besoin de connaître toutes les nuances de React, Vue, Ember ou d'autres frameworks. Un programmeur expérimenté sait comment JavaScript fonctionne et comment fonctionne le navigateur. Un programmeur expérimenté comprend les avantages de la programmation fonctionnelle; il sait pourquoi React est primordial dans un cas particulier.

Apprenez les bases, et tout ce qui précède se réunira dans une image claire.

Croquis de vie


Copier-coller vs source

Mes amis, artistes qui prennent au sérieux leur métier, font toujours des croquis de la vie. Qu'est-ce que cela signifie? Ils dessinent tout ce qu'ils voient, tout ce qui les intéresse.

Ils ne dessinent pas une photographie ou un modèle, mais dessinent ce qu'ils voient eux-mêmes.

Quand quelqu'un dessine un paysage Ă  partir de l'image de quelqu'un, il n'invente pas, mais copie. En programmation, l'Ă©quivalent de ce comportement est des extraits de copier-coller avec Stack Overflow.

Le code copier-coller ne fournira jamais l'occasion d'acquérir des connaissances fondamentales. Copier le code de quelqu'un d'autre a une signification similaire: vous obtiendrez une solution, mais pas d'expérience. Gagnez la bataille, mais perdez la guerre.

Connaissance universelle


Les connaissances fondamentales peuvent être appelées universelles. Si vous essayez de résoudre le problème vous-même, vous vous trompez et trouvez finalement une solution, alors vous obtenez exactement ces connaissances. Vous étudiez les principes de travail pouvant être utilisés dans de futurs projets.

Les décisions sont rarement courantes quand «une taille unique». Pour obtenir les clés des différentes serrures, vous devez travailler. Parfois, il est utile de faire le travail sans l'influence de la décision de quelqu'un, par vous-même.

Pratique


Répétition ciblée

Lorsqu'un musicien étudie une œuvre, il n'essaie pas simplement de la jouer du début à la fin, encore et encore, des milliers de fois. Il cherche des faiblesses dans son travail et les élimine.

Sinon, les performances seront loin d'être idéales, contiennent les mauvaises notes (dans le cas de la programmation - bugs).

Bien que la répétition aveugle ne soit pas la meilleure façon d'apprendre quelque chose, la répétition ciblée vous permet d'obtenir la bonne expérience. Vous travaillez sur vos points faibles et devenez meilleur.

Et pour un débutant, la répétition aveugle est utile. Cela développe la mémoire musculaire, qui dans le cas de la programmation peut être considérée comme des capacités cognitives. Après cela, vous pouvez passer à des œuvres complexes.

Travail de haut niveau


Si vous êtes novice dans l'utilisation de n'importe quel framework, pratiquez. Apprenez ses éléments de base, créez quelque chose de basique.

Sélectionnez un port, créez un itinéraire, envoyez une demande et répondez. Répétez ensuite cela.

Quand un musicien a fini d'étudier la partie difficile d'une pièce, il ne lui serre pas la main et ne se dit pas: ouais, c'est fini. Non, il le répète afin d'exclure la possibilité même d'une erreur.

C'est la même chose avec un programmeur: si vous écrivez un programme complexe, résolvez un problème, vous pouvez ignorer l'erreur de syntaxe la plus simple, après quoi tout le mécanisme refusera de fonctionner. Faut chercher un problème. Si vous travaillez sur la syntaxe de l'automatisme, la probabilité d'un problème est réduite.

Ensuite, vous n'avez pas à vous inquiéter. Un musicien qui a maîtrisé ses compétences en automatisme ne se souciera pas de jouer des notes individuelles d'un concert. Il se concentre sur la mélodie dans son ensemble, et non sur ses éléments individuels.

Formation et aperçu


Exemple Da Vinci

Si vous avez déjà étudié le travail de très grands artistes, par exemple Léonard de Vinci, alors vous savez probablement combien de croquis, de dessins, de toiles de formation qu'ils ont réalisés. Leonardo était célèbre pour son souci du détail - il a fait des croquis de parties du corps, de plantes, d'animaux, de personnes et de leurs groupes.

Les artistes débutants pratiquent également beaucoup, par exemple, ils peignent constamment des natures mortes. Mais pourquoi, parce que ce ne sont pas des nerds? Non, tout cela est une formation ciblée. Les débutants acquièrent de l'expérience et des connaissances en travaillant avec la couleur, la lumière et l'ombre.

Certains programmeurs fonctionnent de manière similaire, divisant un gros problème en plusieurs petits, puis travaillant sur chacun d'eux.

Carnet de croquis des programmeurs

Comment puis-je me souvenir de cette fonction, dans quel contexte est-elle utilisée? Dois-je appeler super () dans chaque composant React, ou cela vaut-il la peine d'étudier un peu les classes ES6? Comment intégrer des requêtes HTTP asynchrones?

Vous pouvez comprendre tout cela en ouvrant Repl ou JSBin. Les petites études peuvent approfondir la compréhension de choses plus générales, apprendre à travailler avec de grands projets.

Lorsqu'un artiste dessine une pomme ou un arbre, cela ne signifie pas qu'un objet particulier l'intéresse. Il travaille simplement sur le petit pour utiliser l'expérience sur le grand.

Regardez les mains de la Joconde - elles sont idéales en termes de technologie.

Portraits et arbres de dépendance


La composition

Je pense que la tâche principale à de nombreuses fins (y compris les programmeurs) est la composition. Il s'agit de combiner le quotient dans l'ensemble de manière à obtenir un chef-d'œuvre.

Il existe plusieurs méthodes pour y parvenir. L'un d'eux est de commencer avec une couche avec un minimum de dépendances. Et déjà à partir de cette couche de base montez.

Si vous faites une analogie avec l'artiste, il ne commence pas par les cils. Il commence par une amorce. Les mêmes cils, leur emplacement dépend de la forme et de la taille de la paupière. Cela dépend de la taille et de la position du globe oculaire, qui, à son tour, est associée aux caractéristiques structurelles du crâne. Le portrait entier, si nous parlons du portrait, est beaucoup de dépendances.

Si un élément est mal placé, l'impression d'harmonie et d'intégrité disparaît. Même chose avec un projet logiciel. Après avoir fait une erreur, vous commencez à produire des entités qui gâchent tout le travail.

Couche après couche

Lorsque vous créez une application à pile complète, prenez soin de la couche de données. Exécutez des tests. Vérifiez tous les éléments. Ce n'est que dans ce cas que vous pouvez être sûr de la fiabilité de l'ensemble du projet. Mais au départ, il est nécessaire de comprendre son essence et de voir l'ensemble du tableau. S'il y a compréhension, vous pouvez travailler sur les détails.

Encodeurs - Encoder


À chacun le sien. Musiciens - musique, artistes - peintures. Pour les programmeurs - un code. Nous avons commencé l'article avec les mots que le travail d'un programmeur est aussi un art. Et ça l'est vraiment. Il convient de se rappeler seulement que les compétences peuvent et doivent être améliorées en pratiquant, en étudiant et en explorant. Avec l'aide de la pratique, les programmeurs novices pourront se concentrer sur les bases, améliorer leurs créations et éventuellement créer un projet cool, aussi grand que les ambitions du créateur.

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


All Articles