paint-brush
Ce que j'ai appris en utilisant ChatGPT en tant que mentor en programmationpar@zawistowski
5,165 lectures
5,165 lectures

Ce que j'ai appris en utilisant ChatGPT en tant que mentor en programmation

par Wojciech Zawistowski22m2023/05/08
Read on Terminal Reader

Trop long; Pour lire

Rien n'accélère votre croissance comme un mentor expérimenté. ChatGPT peut-il servir de substitut raisonnable ? Je suis un développeur avec plus de 20 ans d'expérience et je l'ai mis à l'épreuve.
featured image - Ce que j'ai appris en utilisant ChatGPT en tant que mentor en programmation
Wojciech Zawistowski HackerNoon profile picture
0-item
1-item

Rien n'accélérera votre croissance comme un mentor expérimenté. Cependant, en trouver un peut être difficile et leur disponibilité est souvent limitée.


D'un autre côté, les agents d'IA comme ChatGPT sont disponibles 24h/24 et 7j/7 et semblent également très bien informés. Un tel agent pourrait-il servir de substitut raisonnable à un véritable mentor humain ?


Ce qui m'intéresse particulièrement, ce sont des conseils plus "méta" - les petits trucs et astuces, acquis uniquement grâce à une vaste expérience, qui vous aideront à grandir et à mûrir en tant que développeur - pas simplement à générer ou à expliquer du code.


En tant que personne avec plus de 20 ans d'expérience, qui a encadré plusieurs développeurs juniors, je suis curieux de savoir à quel point les conseils de ChatGPT seraient solides, complets et exploitables pour un débutant.


Prenons-le pour un essai routier rapide!

TL; DR.

Si vous êtes curieux de connaître la qualité des conseils de ChatGPT mais que vous ne voulez pas parcourir toute la discussion et mon commentaire détaillé étape par étape, n'hésitez pas à passer directement à la dernière section.

Une courte légende.

💬 Mes invites.


🤖 ChatGPT répond.


🤔 Mes pensées/commentaires.

La mise en place.

💬 Agir en tant que développeur de logiciels professionnel chevronné avec plus de 10 ans d'expérience. Imaginez que vous encadrez un collègue plus jeune et junior, avec pas plus de 2-3 ans d'expérience. Je vais vous poser différentes questions liées à la programmation et à la carrière de développement de logiciels. Je leur demanderai en tant que jeune développeur. Répondez-y de la manière qui me sera la plus utile pour devenir un meilleur développeur et évoluer professionnellement.


🤖 Bien sûr, je suis là pour vous aider ! N'hésitez pas à poser toutes vos questions sur la programmation ou votre carrière en développement de logiciels, et je ferai de mon mieux pour vous guider en fonction de mon expérience.


🤔 Jusqu'ici, tout va bien. Commençons!


La question "Million $": 10 astuces pour devenir un meilleur développeur.

💬 Veuillez partager 10 astuces qui sont rapides et faciles à mettre en œuvre et qui m'aideront immédiatement à devenir un meilleur développeur.


🤖 Bien sûr ! Voici 10 astuces que vous pouvez rapidement mettre en œuvre pour améliorer vos compétences en tant que développeur :


  1. Utiliser les raccourcis clavier : apprenez et utilisez les raccourcis clavier spécifiques à l'IDE ou à l'éditeur pour naviguer et manipuler le code plus rapidement. Cela vous fera gagner du temps et augmentera votre productivité.


  2. Suivez la technique Pomodoro : divisez votre travail en petits intervalles gérables (généralement 25 minutes) suivis d'une courte pause. Cette technique peut vous aider à rester concentré et à maintenir un rythme de travail constant.


  3. Maîtrisez le contrôle de version : Familiarisez-vous avec Git ou un autre système de contrôle de version. Cela vous aidera à suivre les modifications apportées à votre code, à collaborer avec d'autres et à revenir aux versions précédentes si nécessaire.


  4. Automatisez les tâches répétitives : utilisez des scripts ou des outils pour automatiser les tâches banales telles que le formatage du code, le changement de nom de fichier ou l'échafaudage de projet. Cela vous fera gagner du temps et réduira les risques d'erreur humaine.


  5. Lire et écrire du code propre : Adoptez un style de codage propre, facile à lire et à comprendre. Suivez les meilleures pratiques en matière de conventions de dénomination, d'indentation et de structure de code. Cela rendra votre code plus maintenable et réduira le temps consacré au débogage.


  6. Commentez votre code : Écrivez des commentaires significatifs pour expliquer le but et la fonctionnalité de votre code. Cela permettra aux autres de comprendre plus facilement votre code et vous permettra de vous souvenir de votre processus de réflexion lorsque vous revisiterez le code plus tard.


  7. Demandez des révisions de code : demandez à vos collègues ou mentors de réviser régulièrement votre code. Cela vous aidera à identifier les domaines à améliorer et à apprendre de leur expertise.


  8. Restez curieux : explorez constamment de nouveaux langages, frameworks et outils. Cela vous aidera à rester à jour avec les dernières tendances de l'industrie et à élargir vos compétences.


  9. Décomposez les problèmes en petits morceaux : Lorsque vous êtes confronté à un problème complexe, décomposez-le en tâches plus petites et plus gérables. Cela vous aidera à rester concentré et vous évitera d'être submergé.


  10. Prenez soin de vous : Priorisez votre bien-être physique et mental. Faites de l'exercice régulièrement, dormez suffisamment et faites des pauses si nécessaire. Un esprit et un corps sains vous aideront à être plus productif et concentré dans votre travail.


N'oubliez pas que devenir un meilleur développeur est un processus continu, qui demande du temps et du dévouement. Mais en mettant en œuvre ces astuces, vous pouvez accélérer votre croissance et améliorer continuellement vos compétences.


🤔 La liste semble généralement solide, bien qu'un peu aléatoire et pas particulièrement révolutionnaire. Cependant, j'ai demandé des conseils à ChatGPT pour les débutants, donc les réponses relativement évidentes sont compréhensibles.


Certains de ces conseils ne semblent pas si rapides et faciles à mettre en œuvre (ce qui faisait partie de mon invite). Quelques autres sont un peu vagues et nécessitent des explications supplémentaires - mais puisque ChatGPT est conçu pour être utilisé de manière itérative, creusant de plus en plus profondément avec des questions de suivi, je suppose que c'est bien. Il y a quelques points avec lesquels je ne suis pas entièrement d'accord, mais je les considère plus comme une question d'opinion plutôt que comme une erreur. Dans l'ensemble, pas mal !


Plongeons un peu plus dans chaque suggestion :


  1. Utiliser les raccourcis clavier : Un bon conseil. Rapide et facile à mettre en œuvre, il boostera sans aucun doute votre productivité. Une chose qui me surprend, c'est pourquoi seulement de simples raccourcis clavier ? L'utilisation de fonctionnalités plus avancées telles que l'intelligence de code, les extraits de code, les formateurs automatiques, les générateurs de code et les assistants d'IA comme GitHub Copilot (ou ChatGPT lui-même, duh) serait tout aussi facile à utiliser et fournirait un coup de pouce beaucoup plus important.


  1. Suivez la Technique Pomodoro : De bons conseils. Vous devriez certainement l'essayer. Si vous n'avez jamais entendu parler de Pomodoro auparavant, vous devrez peut-être le rechercher sur Google ou poser une question de suivi à ChatGPT, mais c'est par ailleurs assez simple et explicite.


  1. Contrôle de version maître : Bon conseil, mais certainement pas un lifehack. Même le mot "maître" montre clairement que ce n'est pas une solution rapide et facile. Je dirais également que le contrôle de version fait partie intégrante de votre pile technologique principale, similaire à votre langage de programmation, votre cadre principal ou votre base de données, plutôt qu'un "hack" pour améliorer votre productivité. Mais sinon, les conseils sont corrects.


  1. Automatiser les tâches répétitives : Des conseils solides, mais encore une fois, il faut une exploration plus approfondie. C'est trop haut niveau pour être implémenté immédiatement.


  1. Lire et écrire du code propre : lire beaucoup de code propre (ou de code en général) est un conseil fantastique – et facile à mettre en œuvre. La seule partie délicate est de savoir, en tant que débutant, quel code est propre et où le trouver. Cela nécessite à nouveau une enquête plus approfondie. Écrire du code propre, cependant, est une question complètement différente. Cela fait partie d'une maîtrise permanente de votre métier, et des livres entiers sont écrits sur le sujet. Vous devriez absolument l'étudier, mais tout comme pour maîtriser le contrôle de version, c'est très loin d'être un lifehack.


  1. Commentez votre code : C'est le premier conseil que je trouve discutable (bien que, comme je l'ai dit plus tôt, non pas parce que c'est évidemment faux mais à cause de préférences personnelles). Il existe deux positions concernant les commentaires : commenter fortement ou rendre le code si explicite que vous n'avez pas besoin de commentaires (à moins que vous n'ayez besoin d'expliquer l'objectif commercial derrière votre code). Je suis fortement dans le deuxième camp, donc les "écrire des commentaires" très autoritaires de ChatGPT ne résonnent pas avec moi. D'autre part, il est également indiqué d'écrire des commentaires significatifs et d'expliquer le but de votre code, ce avec quoi je suis tout à fait d'accord. Mais il dit aussi d'expliquer la fonctionnalité de votre code, ce que je considère comme une mauvaise pratique et une perte de temps. Donc, j'ai des sentiments mitigés sur celui-ci.


  1. Rechercher des revues de code : Ce conseil est aussi solide et facilement applicable que possible. Vous devez absolument rechercher autant que possible des revues de code, surtout en tant que débutant.


  1. Restez curieux : C'est le deuxième conseil que je trouve un peu discutable. Explorer de nouveaux langages, frameworks et outils est globalement un bon conseil (bien que je dirais "constamment" - cela sent le développement axé sur les mots à la mode), mais ce n'est peut-être pas la meilleure stratégie pour un débutant avec seulement un an ou deux de expérience. En tant que junior, vous devriez vous concentrer davantage sur la construction d'une base solide de meilleures pratiques et de principes et sur leur apprentissage en profondeur, ce qui est plus facile lorsque vous vous concentrez sur la maîtrise d'une seule pile pendant un certain temps. Mais, franchement, je pinaille ici, et je ne qualifierais pas ce conseil de mauvais.


  1. Décomposez les problèmes en plus petits morceaux : des conseils solides, mais encore une fois, c'est un niveau trop élevé. Décomposer efficacement les problèmes n'est pas anodin. Pour mettre en œuvre cela dans la pratique, un approfondissement supplémentaire serait nécessaire.


  1. Prenez soin de vous : Des conseils très bons et applicables. C'est en fait bien que ChatGPT ait inclus des conseils comme celui-ci, qui ne sont pas directement liés aux compétences techniques.


Très bien, nous avons parcouru tous les conseils. Pas mal, pas mal du tout. Cependant, tous ne sont pas immédiatement applicables. Examinons-en quelques-unes pour voir à quel point nous pouvons nous rapprocher du cœur

Raccourcis clavier - creuser plus profondément.

💬 Approfondissons l'astuce "Utiliser les raccourcis clavier". Pouvez-vous élaborer un peu si je dois apprendre tous les raccourcis possibles, ou s'il y a des catégories particulières de raccourcis sur lesquelles je devrais me concentrer ?


🤖 Certainement ! En ce qui concerne les raccourcis clavier, la clé est de se concentrer sur l'apprentissage de ceux qui auront le plus d'impact sur votre productivité et votre efficacité. Vous n'avez pas besoin d'apprendre tous les raccourcis disponibles, mais plutôt de prioriser ceux qui vous feront gagner le plus de temps et vous aideront à rationaliser votre flux de travail.


Voici quelques catégories de raccourcis clavier sur lesquels se concentrer :


  1. Raccourcis de navigation : ces raccourcis vous aident à naviguer rapidement dans votre code, à passer d'un fichier ou d'un onglet à l'autre et à trouver des symboles ou des instances spécifiques d'un mot-clé. Les exemples incluent « Aller à la définition », « Aller à la ligne » et « Rechercher toutes les références ».


  2. Raccourcis d'édition : ces raccourcis vous aident à manipuler le code en coupant, copiant, collant et formatant du texte. Les exemples incluent « Dupliquer la ligne », « Déplacer la ligne vers le haut/bas » et « Basculer le commentaire ».


  3. Raccourcis de refactorisation : La refactorisation est un élément essentiel pour maintenir un code propre et efficace. Les raccourcis qui vous aident à refactoriser rapidement le code peuvent vous faire gagner beaucoup de temps. Les exemples incluent « Renommer le symbole », « Méthode d'extraction » et « Modifier la signature ».


  4. Raccourcis de débogage : Le débogage est une partie cruciale du processus de développement. Les raccourcis qui vous aident à gérer les points d'arrêt, parcourir le code et inspecter les variables peuvent rationaliser vos sessions de débogage. Les exemples incluent "Toggle Breakpoint", "Step Over" et "Step Into".


  5. Raccourcis spécifiques à l'IDE : Votre IDE ou éditeur de code peut avoir des fonctionnalités ou des outils uniques accessibles via des raccourcis. Familiarisez-vous avec ces raccourcis pour tirer le meilleur parti de l'environnement de développement que vous avez choisi.


Gardez à l'esprit que les combinaisons de touches réelles pour ces raccourcis peuvent varier en fonction de l'IDE ou de l'éditeur de code que vous utilisez. Reportez-vous à la documentation ou aux paramètres de votre éditeur pour découvrir et personnaliser ces raccourcis selon vos préférences.


Lorsque vous apprenez des raccourcis, commencez par vous concentrer sur quelques-uns à la fois. Au fur et à mesure que vous vous familiarisez avec eux, intégrez progressivement plus de raccourcis dans votre flux de travail quotidien. Au fil du temps, l'utilisation de ces raccourcis deviendra une seconde nature et vous remarquerez une amélioration significative de votre productivité et de votre efficacité.


🤔 C'est une excellente catégorisation ! Je suis impressionné. J'aime aussi les exemples concrets pour chaque catégorie. Ce niveau de conseil est déjà exploitable - vous pouvez facilement rechercher des "raccourcis de navigation" ou "Aller à la définition" dans la documentation de votre IDE. De plus, les catégories sont bien choisies. Ce sont vraiment eux qui donneront un coup de pouce significatif à votre productivité.


Il ne me manque qu'une seule chose : les boosters de productivité les plus importants, comme la saisie semi-automatique ou les extraits de code. Je ne veux pas poser de questions explicites à leur sujet, car je fais semblant de ne pas savoir qu'ils existent. Cependant, contournons un peu les règles :


💬 Vous avez dit que je devrais apprendre des raccourcis "pour naviguer et manipuler le code plus rapidement", que "la clé est de se concentrer sur l'apprentissage de ceux qui auront le plus d'impact sur votre productivité et votre efficacité", et de "prioriser ceux qui vous faire gagner un maximum de temps et vous aider à rationaliser votre flux de travail". Existe-t-il d'autres outils ou fonctionnalités IDE, en dehors des raccourcis clavier, qui pourraient m'aider à atteindre ces objectifs ?


🤖 Absolument ! Outre les raccourcis clavier, il existe de nombreux autres outils et fonctionnalités IDE qui peuvent vous aider à augmenter votre productivité et votre efficacité. En voici quelques uns:


  1. Extraits de code et modèles : de nombreux IDE et éditeurs prennent en charge des extraits de code ou des modèles qui peuvent générer des structures de code couramment utilisées ou du code passe-partout en quelques frappes. Ceux-ci peuvent vous faire gagner du temps et vous aider à maintenir la cohérence de votre code.


  2. Auto-complétion et IntelliSense : les IDE et les éditeurs de code modernes fournissent souvent une complétion de code intelligente, qui suggère des complétions pour les variables, les méthodes ou les mots clés en fonction du contexte actuel. Cela peut accélérer votre processus de codage et réduire les risques de fautes de frappe ou d'erreurs de syntaxe.


  3. Débogage intégré : les outils de débogage intégrés à votre IDE vous permettent de définir des points d'arrêt, de parcourir votre code et d'inspecter des variables sans quitter votre environnement de développement. Cette expérience de débogage transparente peut vous aider à trouver et à résoudre les problèmes plus efficacement.


  4. Intégration du contrôle de version : De nombreux IDE offrent un support intégré pour les systèmes de contrôle de version comme Git. Cette intégration peut simplifier les tâches courantes de contrôle de version, telles que la validation des modifications, la création de branches et la résolution des conflits, le tout dans votre IDE.


  5. Analyse de code et linting : Les outils d'analyse de code et de linting en temps réel peuvent vous aider à identifier les problèmes potentiels, tels que les erreurs de syntaxe, les variables inutilisées ou les violations de style de code, lorsque vous écrivez votre code. Cela peut vous faire gagner du temps lors du débogage et vous assurer que votre code respecte les meilleures pratiques.


  6. Outils de refactorisation : certains IDE ont des outils intégrés qui peuvent automatiquement refactoriser votre code, comme extraire des méthodes, renommer des variables ou modifier les signatures de méthode. Ces outils peuvent vous aider à maintenir un code propre et efficace sans effort manuel.


  7. Gestion des tâches et des projets : De nombreux IDE et éditeurs ont des fonctionnalités qui vous permettent de gérer les tâches, de créer des listes de tâches et de suivre la progression de vos projets. Cela peut vous aider à rester organisé et à hiérarchiser votre travail plus efficacement.


  8. Personnalisation : La plupart des IDE et des éditeurs offrent un haut niveau de personnalisation, y compris des thèmes, des plugins et des options de configuration. Adapter votre environnement de développement à vos préférences peut vous aider à travailler plus confortablement et plus efficacement.


  9. Terminal intégré : Avoir un terminal intégré dans votre IDE peut vous faire gagner du temps en vous permettant d'exécuter des commandes, de construire votre projet ou d'interagir avec le contrôle de version sans basculer entre les fenêtres.


Ces outils et fonctionnalités peuvent considérablement améliorer votre expérience de codage, vous rendant plus efficace et productif. Prenez le temps d'explorer les capacités de votre IDE ou de votre éditeur de code, et n'hésitez pas à essayer de nouveaux outils ou plugins qui peuvent améliorer votre flux de travail.


🤔 Maintenant on parle ! La liste n'est pas entièrement exhaustive (par exemple, il manque des formateurs automatiques de code, et étonnamment, il manque toujours des assistants IA - ChatGPT n'est-il pas conscient de ses propres capacités ? Ou est-il simplement trop humble ?) mais il est solide et suffisamment large pour être vraiment utile pour un développeur débutant. De plus, maintenant que vous êtes conscient de la richesse des outils de développement modernes, vous pouvez progressivement creuser encore plus profondément.

Contrôle de version - passer à des astuces plus exploitables et de la taille d'une bouchée.

💬 L'un des conseils que vous m'avez donnés était "Maîtriser le contrôle de version". Mais est-ce vraiment une astuce simple et rapide ? Cela me semble être un long processus pour maîtriser pleinement le contrôle de version. Existe-t-il des conseils rapides liés au contrôle de version, qui pourraient être mis en œuvre immédiatement ?


🤖 Vous avez raison de dire que la maîtrise du contrôle de version peut être un processus plus long, mais il existe quelques conseils rapides et meilleures pratiques que vous pouvez mettre en œuvre immédiatement pour utiliser plus efficacement les systèmes de contrôle de version comme Git. Voici quelques-uns:


  1. Commitez fréquemment et par petites unités : faites de petits commits ciblés qui contiennent un seul changement logique. Cela facilite la compréhension de l'historique du projet, la localisation des problèmes et l'annulation des modifications si nécessaire.


  2. Rédigez des messages de validation descriptifs : lorsque vous validez des modifications, rédigez des messages de validation clairs et concis qui décrivent les modifications et leur objectif. Cela vous aide, vous et votre équipe, à comprendre l'historique du projet et facilite la recherche ultérieure de modifications spécifiques.


  3. Utiliser des branches : créez des branches pour les nouvelles fonctionnalités, les corrections de bogues ou les expériences. Cela maintient votre branche principale stable et vous permet de travailler sur plusieurs tâches en parallèle sans affecter la base de code principale.


  4. Fusionner régulièrement : fusionnez régulièrement les modifications de la branche principale dans vos branches de fonctionnalités pour les maintenir à jour et minimiser les conflits de fusion lorsqu'il est temps d'intégrer vos modifications.


  5. Pull before you push : Avant de pousser vos modifications vers le référentiel distant, extrayez toujours les dernières modifications de la télécommande pour vous assurer que votre référentiel local est à jour. Cela peut aider à prévenir les conflits et assurer une expérience de collaboration plus fluide.


  6. Adoptez .gitignore : utilisez un fichier .gitignore pour exclure les fichiers qui n'ont pas besoin d'être suivis, comme les fichiers temporaires, les artefacts de construction ou les fichiers spécifiques à l'IDE. Cela permet de garder votre référentiel propre et concentré sur le code essentiel.


Ces conseils rapides peuvent vous aider à utiliser plus efficacement les systèmes de contrôle de version et à rationaliser votre flux de travail. Bien qu'ils ne fassent pas de vous un maître du contrôle de version du jour au lendemain, ils peuvent vous servir de base solide sur laquelle vous appuyer pour continuer à apprendre et à affiner vos compétences.


🤔 Assez lisse. Bien que ces conseils ne vous conduisent pas à une maîtrise complète du contrôle de version, ils sont désormais plus exploitables - et dans l'ensemble, ils sont plutôt corrects, compte tenu de ce conseil pour les débutants.


Certains points restent un peu flous, par exemple, "Utiliser les branches". Les stratégies de branchement de contrôle de version sont un sujet vaste et complexe, et ce point particulier n'est pas très exploitable sans une exploration plus approfondie. Cependant, il s'agit d'une seule valeur aberrante et fournit au moins un point de départ clair pour des recherches plus approfondies.


Dans l'ensemble, pas mal !

Lire du code propre - couper à travers l'ambiguïté.

💬 Vous m'avez donné une astuce pour "Lire le code propre". Mais comment saurai-je, en tant que débutant, quel code est propre ? Comment le reconnaître ? Et où trouver un tel code à lire?


🤖 En tant que débutant, il peut être difficile de reconnaître un code propre au premier coup d'œil. Cependant, avec la pratique et l'exposition à un code bien écrit, vous commencerez à développer une compréhension de ce qui constitue un code propre. Voici quelques directives générales et caractéristiques du code propre :


  1. Lisibilité : Le code propre est facile à lire et à comprendre. Il a une structure claire, des noms de variables et de fonctions significatifs et une indentation appropriée. Il suit également des conventions de dénomination et des directives de style cohérentes.


  2. Modularité : le code propre est organisé en petites fonctions ou méthodes ciblées qui exécutent une seule tâche. Chaque module doit avoir une responsabilité unique et le code doit être divisé en composants logiques.


  3. Maintenabilité : Un code propre est facile à modifier, étendre et refactoriser. Il évite la duplication de code (principe DRY) et suit les meilleures pratiques pour minimiser les risques d'introduction de bogues lors de modifications.


  4. Documentation et commentaires : Le code propre est bien documenté avec des commentaires qui expliquent le but et la fonctionnalité du code. Les commentaires doivent être concis et ne fournir que des informations qui ne ressortent pas immédiatement de la lecture du code lui-même.


  5. Efficacité : Un code propre est efficace en termes de performances et d'utilisation des ressources. Cela évite une complexité inutile et les algorithmes et les structures de données utilisés sont bien adaptés au problème à résoudre.


Pour trouver du code propre à lire et à apprendre, considérez les sources suivantes :


  1. Projets open source populaires : De nombreux projets open source populaires sur des plateformes comme GitHub ont un code de haute qualité qui a été révisé et affiné par plusieurs contributeurs. Explorez des projets dans le langage ou le framework avec lequel vous travaillez pour trouver des exemples de code propre.


  2. Meilleures pratiques de codage : recherchez des articles, des livres ou des cours sur les meilleures pratiques de codage pour le langage de programmation avec lequel vous travaillez. Ces ressources fournissent souvent des exemples de code propre et des instructions sur la façon de l'écrire.


  3. Revues de code : Participez aux revues de code au sein de votre équipe ou sollicitez les commentaires de développeurs ou de mentors expérimentés. Observer leurs commentaires et suggestions peut vous aider à apprendre à reconnaître un code propre et à améliorer votre propre style de codage.


  4. Défis de codage : Des sites Web comme LeetCode, HackerRank ou Codewars proposent des défis de codage ainsi que des solutions soumises par d'autres utilisateurs. L'examen de ces solutions peut vous aider à apprendre différentes approches de résolution de problèmes et vous exposer à des exemples de code propres.


N'oubliez pas que reconnaître et écrire du code propre est une compétence qui se développe au fil du temps. Au fur et à mesure que vous lisez et écrivez plus de code, vous deviendrez plus apte à identifier le code propre et à adopter les meilleures pratiques dans votre propre travail.


🤔 Cette fois, le résultat est au mieux.


La première partie de la réponse indique essentiellement que vous pouvez reconnaître un code propre par le fait qu'il adhère à des principes vagues et de très haut niveau d'être un code propre (dont certains, comme les commentaires et l'efficacité, sont même discutables - par exemple, est-ce que le code a vraiment besoin d'être efficace pour être propre et lisible ?).


La deuxième partie est également aléatoire. Participer aux révisions de code est un bon conseil (bien qu'il soit plus important de souligner que vous ne devriez pas seulement faire réviser votre code, mais aussi faire autant de révisions que possible vous-même, pour apprendre du code des développeurs plus expérimentés). La lecture de livres et d'articles sur les meilleures pratiques de codage est un conseil judicieux, mais plutôt évident, qui n'ajoute pas beaucoup de valeur. Apprendre à partir de projets open source et de sites Web de défi de codage est un conseil potentiellement fantastique, mais ces sources contiennent souvent également du mauvais code, et cela ne résout toujours pas l'énigme de savoir comment un débutant peut reconnaître lequel est lequel.


Essayons de creuser un peu plus :


💬 Vous avez dit que pour trouver du code propre à lire et à apprendre, je peux consulter des projets open source populaires, car beaucoup d'entre eux ont un code de haute qualité. Mais de nombreux projets open source ont également un code de mauvaise qualité. Comment puis-je reconnaître quel projet open source est de haute qualité et lequel ne l'est pas ?


🤖 Vous avez raison, tous les projets open source n'ont pas de code de haute qualité. Pour identifier des projets open source de haute qualité, vous pouvez prendre en compte les facteurs suivants :


  1. Popularité : Les projets avec un grand nombre de stars, de forks ou de watchers sur des plateformes comme GitHub indiquent généralement que le projet est bien considéré par la communauté. Bien que la popularité ne soit pas une garantie de qualité du code, elle peut être un indicateur utile.


  2. Mainteneurs et contributeurs actifs : Les projets de haute qualité ont tendance à avoir des mainteneurs actifs et un groupe diversifié de contributeurs. Recherchez des projets avec un historique de validations régulières, de mises à jour et de corrections de bogues. Un bon nombre de contributeurs et une communauté active peuvent être le signe que la base de code est continuellement améliorée et affinée.


  3. Documentation claire : Des projets bien documentés sont souvent le signe d'une base de code bien entretenue et de haute qualité. Recherchez des projets avec des fichiers README complets, une documentation API et des guides d'utilisation.


  4. Revues de code et discussions : Vérifiez les demandes d'extraction du projet et les discussions sur les problèmes. Un projet sain aura des révisions de code approfondies, des commentaires constructifs et des discussions actives sur les améliorations et les corrections de bogues.


  5. Respect des normes de codage : Les projets de haute qualité suivent généralement les normes de codage et les meilleures pratiques pour le langage de programmation ou le cadre qu'ils utilisent. Recherchez une mise en forme, des conventions de nommage et une organisation du code cohérentes.


  6. Tests automatisés : Les projets avec une suite robuste de tests automatisés indiquent que les responsables se soucient de la qualité du code et s'assurent que le logiciel fonctionne comme prévu. Recherchez des projets avec une couverture de test élevée et un pipeline d'intégration continue (CI) qui exécute des tests à chaque demande de validation ou d'extraction.


  7. Dépendances et licences : Les projets de haute qualité doivent avoir une liste claire des dépendances, ainsi que leurs licences correspondantes. Cela montre que les mainteneurs sont attentifs aux aspects juridiques et opérationnels du projet.


Pour commencer votre recherche de projets open source de haute qualité, vous pouvez explorer des listes ou des collections organisées, comme Awesome Lists sur GitHub, qui regroupent des projets populaires et appréciés dans divers domaines. Vous pouvez également consulter des projets gérés par des organisations réputées ou des développeurs bien connus dans l'industrie.


N'oubliez pas que même les projets de haute qualité peuvent avoir des domaines qui pourraient être améliorés. Au fur et à mesure que vous acquerrez de l'expérience, vous développerez une meilleure compréhension du code propre et serez mieux équipé pour évaluer la qualité de divers projets open source.


🤔 Cette réponse est encore une fois décente. Bien que des facteurs tels que la popularité du projet ou une bonne documentation ne garantissent pas nécessairement un code propre, tous combinés constituent un proxy décent - probablement aussi bon que possible, car il n'y a jamais de garanties concrètes. Et le conseil de regarder les listes organisées, bien qu'elles soient plus un indicateur de popularité plutôt que nécessairement de qualité, fournit un point de départ raisonnable. Ce n'est pas exhaustif, car la recherche GitHub, par exemple, est également un excellent moyen de trouver des projets open source populaires et actifs. Mais étant donné que la reconnaissance du code propre est un sujet très subjectif et difficile, cette réponse est tout à fait correcte. Nous pourrions essayer de creuser encore plus profondément - mais je dois garder la longueur de ce message sous contrôle...

Commenter votre code - clarifier les aspects douteux.

💬 L'un des lifehacks que vous m'avez donné était d'écrire des commentaires significatifs pour expliquer le but et la fonctionnalité de mon code. Pouvez-vous élaborer sur ce sujet? Quels commentaires considérez-vous significatifs? Dois-je toujours écrire des commentaires pour tout mon code ? Existe-t-il une bonne heuristique sur quand et comment écrire des commentaires ?


🤖 La rédaction de commentaires significatifs est un aspect important de l'écriture de code propre et maintenable. Les commentaires significatifs doivent fournir des informations et un contexte supplémentaires qui ne ressortent pas immédiatement de la lecture du code lui-même. Voici quelques directives sur quand et comment rédiger des commentaires :


  1. Expliquez le code complexe ou non évident : si un morceau de code est complexe ou peut être difficile à comprendre pour quelqu'un qui ne connaît pas le projet, un commentaire peut aider à expliquer le raisonnement derrière la mise en œuvre ou fournir un aperçu de haut niveau de l'algorithme.


  2. Documenter les hypothèses et les limitations : Si votre code repose sur des hypothèses spécifiques ou présente des limitations, il est important de les documenter dans des commentaires. Cela permet d'éviter de futurs problèmes ou malentendus lorsque quelqu'un d'autre (ou même vous) modifie le code ultérieurement.


  3. Clarifier l'objectif des fonctions et des classes : alors que les noms de fonctions et de classes doivent être descriptifs, un bref commentaire peut fournir un contexte supplémentaire sur l'objectif et le comportement attendu d'une fonction ou d'une classe.


  4. Expliquez les solutions de contournement ou les hacks : si vous avez dû mettre en œuvre une solution de contournement ou un hack pour résoudre un problème ou une limitation spécifique, documentez le raisonnement et tout effet secondaire potentiel dans un commentaire. Cela aide les futurs responsables à comprendre le but de la solution de contournement et à envisager des améliorations potentielles.


  5. Ressources externes de référence : si votre code est basé sur une ressource spécifique, comme un document de recherche, un algorithme ou une bibliothèque tierce, incluez un commentaire avec une référence à cette ressource. Cela permet de fournir des informations contextuelles et générales aux autres personnes travaillant sur le projet.


Voici quelques conseils pour rédiger des commentaires efficaces :


  1. Soyez concis : Les commentaires doivent être courts et aller droit au but. Évitez d'écrire de longs paragraphes ou de répéter des informations qui ressortent déjà clairement du code.


  2. Gardez les commentaires à jour : Assurez-vous que vos commentaires restent pertinents au fur et à mesure que votre code évolue. Mettez à jour les commentaires lorsque vous modifiez le code, afin qu'ils reflètent avec précision l'état actuel du code.


  3. Évitez d'énoncer l'évidence : évitez d'écrire des commentaires qui ne font que répéter ce que fait le code. Concentrez-vous sur le contexte, la justification ou les explications qui ne ressortent pas immédiatement du code lui-même.


Vous n'avez pas besoin d'écrire des commentaires pour chaque ligne ou bloc de code. Au lieu de cela, concentrez-vous sur les commentaires là où ils ajoutent de la valeur et aident à améliorer la compréhension du code. Gardez à l'esprit qu'un code bien écrit doit être principalement explicite, alors donnez la priorité à l'écriture d'un code clair et expressif, en utilisant des commentaires pour compléter si nécessaire.


🤔 C'est une très bonne réponse. Alors que le conseil initial était ambigu et laissait place à une interprétation pouvant potentiellement conduire à des commentaires excessifs, cette élaboration le clarifie bien et est à 100% sur le point. C'est exactement comme ça que je conseillerais d'aborder la rédaction de commentaires.

Conclusion.

Il y a eu quelques petits faux pas ici et là, mais dans l'ensemble, les résultats sont étonnamment bons.


Certaines réponses étaient trop évidentes, certaines étaient une question d'opinion, mais aucune d'entre elles n'était clairement fausse et beaucoup d'entre elles étaient vraiment bonnes et exploitables. J'ai aussi aimé l'ampleur et la variété des conseils - ils comprenaient même un point sur la prise en charge de votre santé !


Les réponses initiales sont superficielles - elles n'apportent pas beaucoup de valeur sans approfondir au moins quelques niveaux grâce à des questions de suivi. Mais si vous vous habituez à ce flux, cela se passe assez bien. Vous n'êtes pas submergé par une foule d'informations à l'avance, mais vous pouvez plutôt explorer progressivement, en approfondissant uniquement les sujets qui vous intéressent ou que vous ne comprenez pas. Je dirais même que cela ressemble plus à travailler avec un vrai mentor humain qu'à, par exemple, lire un livre ou suivre un cours.


Il y a un peu plus de fardeau pour vous lorsque vous travaillez avec ChatGPT par rapport à un véritable mentor humain. Un humain peut capter plus d'indices de votre ton de voix, de vos expressions faciales et de votre langage corporel, et peut orienter la discussion de manière plus proactive en réponse à votre comportement. Lorsque vous travaillez avec ChatGPT, cependant, les seuls indices qu'il peut capter sont vos questions directes. La qualité de l'expérience dépend donc uniquement de votre capacité à formuler des questions claires, et non de l'expérience ou de l'intelligence émotionnelle de votre mentor. Cela étant dit, apprendre à poser les bonnes questions n'est pas trop difficile, et si vous le faites, vous pouvez toujours tirer beaucoup de valeur de votre interaction.


Pour un débutant, la partie la plus délicate peut être de déterminer exactement ce qu'il faut demander afin de passer de réponses superficielles à des réponses plus profondes. Si vous n'avez pas une expertise approfondie dans un domaine donné, c'est souvent loin d'être évident. Cependant, cela peut être atténué en apprenant à poser des questions "drill-down" plus générales, comme "Pourquoi avez-vous choisi cette réponse ?", "Pouvez-vous élaborer davantage ?", "Cette réponse est-elle vraiment la meilleure ?", " Est-ce la seule bonne réponse ?", "Quels sont les avantages et les inconvénients ?", "Quelles seraient les alternatives ?", "Existe-t-il d'autres techniques similaires ?", etc. Devenir bon à poser des questions comme celles-ci vous sera également bénéfique dans votre travail quotidien : lors de la clarification des exigences, du brainstorming avec vos coéquipiers, ou même lorsque vous travaillez avec un véritable mentor humain - c'est donc une formation valable en soi.


Pour résumer, d'après ce que je peux observer d'un test aussi limité, je le recommanderais certainement .


Ce n'est pas un substitut complet à un véritable mentor humain, mais si vous n'en avez pas accès, vous devriez certainement essayer ChatGPT. Et même si vous avez un mentor, cela vaut toujours la peine de tirer parti des deux, car ChatGPT est beaucoup plus facilement disponible. Vous pouvez commencer avec ChatGPT (et l'utiliser plus fréquemment), puis demander à votre véritable mentor d'évaluer ses réponses, de les développer ou d'approfondir les domaines les plus délicats tout en vous en tenant à ChatGPT pour les cas les plus simples.


Il peut également être avantageux de commencer par un aperçu de haut niveau de ce qu'il y a à apprendre dans un domaine donné, pour comprendre la configuration générale du terrain - puis d'utiliser ChatGPT pour approfondir les sujets sélectionnés. Il existe de nombreuses bonnes ressources qui fournissent un tel aperçu, comme roadmap.sh ou le guide que je suis en train d'écrire .