Divulgation complète - Je suis une personne âgée qui a été formée à un système pré-Internet différent disponible au travail. J'ai observé les compétences des jeunes développeurs se détériorer progressivement, principalement parce qu'ils ne conservaient pas les informations ou ne comprenaient pas la solution qu'ils avaient récupérée sur Internet. J'ai constaté que le niveau de compétence qu'une personne possédait après une ou deux années d'expérience, il y a 20 ans, correspond maintenant à celui qu'une personne possède après cinq à sept années d'expérience. (Oui, c’est une observation personnelle, mais j’ai beaucoup embauché, je n’ai aucune donnée statistique à ce sujet et, oui, je suis parfois vieux et grincheux, prenez cette affirmation avec un grain de sel. Et restez en dehors de ma cour. )
Regarder tout est inefficace en termes de temps. C'est aussi un symptôme de quelqu'un qui n'a pas beaucoup de connaissances approfondies. Les personnes ayant une connaissance approfondie peuvent écrire du code plus rapidement que celles qui ne savent pas comment résoudre un problème sans chercher. Il vaut donc la peine d'apprendre à gérer plus de choses sans avoir à chercher continuellement.
Maintenant, je ne dis pas que vous ne devriez jamais regarder les choses, mais que vous devriez apprendre à conserver les connaissances et ne plus avoir besoin que de regarder les choses que vous utilisez rarement ou lorsque vous rencontrez un problème, un langage ou un paradigme véritablement nouveau. Et je ne dis pas que vous ne devriez pas lire pour suivre les nouvelles solutions, les nouveaux outils et les nouveaux langages.
Mon véritable souci avec les développeurs qui recherchent trop souvent le fait qu’un trop grand nombre d’entre eux (pas nécessairement vous) ne développent jamais les compétences analytiques nécessaires pour comprendre les problèmes qu’ils rencontrent et les solutions nécessaires. Lisez combien de questions il y a où la personne met dans le message d'erreur qu'il ou elle ne comprend pas clairement, mais qui devrait être assez clair pour quiconque opérant au niveau professionnel. Ou ceux où la personne dit, "ça ne marche pas, pourquoi?" sans référence au message d'erreur ou à la façon dont il ne fonctionne pas et le code est syntaxiquement correct. Ou ceux qui reçoivent un morceau de code qui devrait fonctionner,
Donc, si vous recherchez des éléments qui font partie de la fonctionnalité principale du (des) langage (par exemple, SQL doit inclure SQL si vous accédez à des bases de données) que vous utilisez depuis plus de six mois, je suppose que vous recherchez également beaucoup. Si vous recherchez des fonctionnalités avancées, en particulier celles que vous utilisez rarement, vous vous en sortez bien.
Mais comment apprendre à retenir plus d'informations? D'abord, comprenez pourquoi le code a été rompu. Même si quelqu'un vous donne une solution de travail, si vous ne voyez pas pourquoi cela a fonctionné et que ce n'est pas le vôtre, alors demandez. Si vous ne comprenez pas le message d'erreur, demandez ce qu'il signifie et essayez de le résoudre vous-même.
Et ne jamais couper et coller une solution que vous ne comprenez pas. En fait, ne pas couper et coller du tout. Si vous souhaitez conserver des informations, vous devez les saisir. En fait, écrire physiquement le code vous-même vous aide à l'apprendre. C'est une technique d'apprentissage bien connue.
Pratiquez-vous à généraliser votre compréhension du code. J'ai vu des gens poser des questions similaires encore et encore au fil du temps parce qu'ils ne comprenaient pas que la solution apportée au problème ABC il y a un mois était la même que celle proposée pour le nouveau problème DEF.
Ainsi, lorsque vous avez effectué une recherche, prenez le temps de réfléchir aux types de problèmes qu’il serait bon de résoudre et rédigez vous-même des notes à ce sujet. Ensuite, lorsque vous avez un problème à résoudre, vérifiez d’abord vos propres notes pour voir si vous avez déjà noté une technique possible. Si vous évaluez plusieurs façons de résoudre un problème, prenez des notes sur le type de problème, les solutions possibles que vous avez examinées et les avantages et inconvénients de chacune d’elles. Encore une fois, la prise de notes aide à consolider les connaissances dans votre cerveau, vous avez déjà votre propre processus de pensée en termes de pour et de contre, et vous n'avez pas à le refaire (ou du moins pas aussi profondément, vous pouvez toujours plus de techniques possibles) pour le prochain problème similaire.
Et pour décider quoi apprendre ensuite, approfondissez l'une de vos technologies principales avant de vous lancer dans l'apprentissage des 30 premiers jours d'une autre technologie (cela suppose que vous disposiez de suffisamment de connaissances pour effectuer votre travail, si vous en avez besoin. utilisez 6 technologies - commencez par les notions de base avant d’approfondir). Ensuite, allez et venez, apprenez de nouvelles choses, au niveau de base, apprenez quelque chose de plus en profondeur, puis apprenez plus de nouvelles technologies au niveau de base. Si vous faites cela au fil du temps, vous constaterez que votre niveau de base de ce que vous voulez d'une nouvelle technologie est beaucoup plus profond, car vous comprenez des questions plus complexes à poser à ce sujet.
Une autre façon d'apprendre à conserver les connaissances consiste à l'enseigner à quelqu'un d'autre. Répondez à des questions telles que celle-ci, présentez des sujets de formation à votre équipe, faites des présentations dans vos groupes d'utilisateurs locaux, écrivez des entrées de blog et aidez-nous à maintenir un wiki d'informations dans votre entreprise pour aider d'autres développeurs.