Répétition pour un programmeur: pourquoi il est important de résoudre des problèmes similaires



D'un traducteur: Aujourd'hui, nous publions pour vous un article de la développeur novice Amy Haddad. Il explique pourquoi les programmeurs devraient revenir aux problèmes déjà résolus.

De nombreux développeurs donnent le même conseil: résoudre autant de problèmes que possible afin d'acquérir constamment de nouvelles expériences et connaissances. C'est un bon conseil, car la résolution de problèmes avec le code vous permet d'apprendre de nouvelles choses et d'améliorer les compétences existantes. Mais je considère également qu'il est important de répéter: le même problème peut être résolu de différentes manières. Et une telle répétition permet également au programmeur de réaliser un profit sous forme d'amélioration des compétences.

Skillbox recommande: un 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».

Je sais ce que je ne sais pas


Si j'ai réussi à résoudre le problème pour la première fois, cela ne signifie pas que je puisse y faire face à nouveau.

Je me souviens de la situation avec une bibliothèque et d'une erreur. J'ai réussi à résoudre ce problème, même si je suis resté coincé dessus pendant longtemps. Mais quelques jours plus tard, j'ai de nouveau rencontré le même problème et j'ai déjà oublié la solution initiale. Donc, au lieu de vous faufiler rapidement dans cet endroit et de passer à autre chose, vous avez dû passer du temps à nouveau.

Ensuite, il est devenu clair pour moi que je devais travailler davantage avec des opérateurs et des fonctions conditionnelles. J'ai également réalisé à quel point l'étude des problèmes est importante - cela me permet de tester mes propres connaissances et de voir les lacunes qui doivent être comblées.

Travailler avec du code buggy donne une nouvelle expérience, comme discuté ci-dessus. C'est formidable de pouvoir résoudre le problème avec les cours au moment où je les étudie. Dans ce cas, tout semble assez simple. Mais que se passe-t-il si cela m'arrive dans un avenir proche? Dans ce cas, je pourrai comprendre si j'ai acquis de nouvelles connaissances acquises plus tôt, ou s'il vaut la peine de les consolider.

Anciens problèmes, nouvelles solutions


Même lorsque je me souviens de mes actions lorsque je travaille sur une tâche pour la première fois, dans la seconde j'essaie de trouver une nouvelle solution pour améliorer mes compétences. Par exemple, j'ai résolu l'un des problèmes du code en utilisant Loop. La deuxième fois, j'ai trouvé une nouvelle solution et le code est devenu plus logique et lisible. J'ai réussi à réduire son volume de 50% dans la zone à problème et, par conséquent, j'ai non seulement compris comment tout devait fonctionner, mais j'ai également compris les nuances du processus.

Dans une autre tâche similaire, Loop a réduit le code et l'a rendu plus lisible. Mais dans le cadre de la «répétition», j'ai résolu le problème sans cela - pour m'assurer que je pouvais trouver une solution alternative.

Je peux dire que l'étude des problèmes m'a fait sortir de ma zone de confort, alors j'ai commencé à sortir des sentiers battus. C'est uniquement à cause de cela qu'il a été possible de trouver une solution alternative.

Apprendre à écrire des tests


C'est la troisième fois que je lis un livre de Brian Hogan Exercises for Programmers. J'analyse ses exemples et à chaque fois j'essaye de trouver une nouvelle solution. Cette fois, je m'entraîne à écrire mes propres tests.

Voici comment cela fonctionne: je sélectionne un exercice aléatoire dans un livre et m'assois pour coder. J'ai divisé le programme résultant en plusieurs fichiers, où chacun est responsable d'une solution distincte. Et puis j'écris des tests.

En fin de compte, je veux d'abord apprendre à écrire un test, puis à coder, mais cela reste à venir. Maintenant, je m'entraîne à créer et à mettre en évidence des fonctions et à importer des fichiers.

La répétition constante des exercices vous permet de créer des motifs qui se déposent dans la tête. De plus, ils peuvent être utilisés comme modèle mental pour résoudre de nouveaux problèmes. Soit dit en passant, j'ai vu ce conseil dans le livre de George Paul, How to Solve It. Il conseille dans la résolution d'un nouveau problème pour rechercher un lien avec toute expérience existante.

«Pensez à ce qui vous a aidé dans une situation similaire par le passé. Recherchez quelque chose de familier dans le problème actuel, essayez d'utiliser votre expérience. "

Paul a raison. J'utilise très souvent l'expérience précédente pour résoudre des problèmes d'un nouveau type. Par exemple, j'ai récemment travaillé avec des anagrammes. J'ai réussi à résoudre l'un des problèmes actuels à l'aide de l'expérience acquise à l'époque. Bien que la tâche précédente ait été plus simple, elle a permis de trouver une nouvelle solution.

L'étude des problèmes donne au programmeur beaucoup de choses utiles. Nous formulons de nouveaux concepts, renforçons les anciens et créons une base de connaissances qui forme ensuite la base du travail.

Skillbox recommande:

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


All Articles