Il existe de nombreuses sources à apprendre auprès de collègues plus expérimentés: livres, blogs de développeurs compétents, Stack Exchange, conférences / conférences, etc. Les révisions de code sont également cruciales, et CodeReview.SE est une ressource précieuse.
Voyons comment cela pourrait fonctionner sur un exemple.
Exemple
Vous lisez un article de blog qui mentionne un terme "ETL". Vous n'en connaissez pas la signification, mais à partir de cet article, vous comprenez vaguement qu'il s'agit d'une sorte de processus ou de flux de travail qui déplace les données d'un support de données à un autre.
Vous allez sur Wikipedia et d'autres ressources et obtenez une vision plus précise de la chose. Il n'est pas encore très clair quand serait-il utile d'utiliser un ETL. Après tout, il semble beaucoup plus facile d'écrire une requête SQL qui fera tout le travail, plutôt que de passer trop de temps à construire un véritable ETL.
Pour répondre à ces questions, vous empruntez un livre sur les ETL à votre bibliothèque locale. Il explique que certains processus d'extraction-transformation-chargement ne sont pas facilement réalisables avec une simple requête SQL: non seulement la phase d'extraction peut gérer plusieurs supports de données diversifiés, non seulement une base de données relationnelle, mais également l'étape de transformation peut être très compliquée pour à la fois valider / normaliser les données et les cartographier.
Vous avez maintenant une vision claire de ce qu'est un ETL, comment l'utiliser et surtout quand vous avez besoin d'un ETL et quand ce n'est pas un outil approprié. Pendant ce temps, vous avez implémenté un petit ETL en tant que projet personnel. Ce projet vous permet de découvrir certains points qui ne sont pas assez clairs pour vous et qui ne sont pas couverts par un livre. Ces points étant plutôt abstraits et non liés au code source, vous posez une question sur Programmers.SE .
Lorsque vous avez l'occasion d'en créer un dans votre entreprise, vous commencez à le créer. Vous avez quelques problèmes. Certains sont liés au code; vous postez des questions sur Stack Overflow . D'autres sont liés à la base de données; vous posez les questions sur DBA.SE .
Enfin, il y a une conférence organisée par un développeur très compétent sur la façon d'optimiser les ETL. Vous assistez à cette conférence et elle vous donne de précieux conseils sur les améliorations que vous pouvez apporter à votre projet.
Vous commencez également à suivre le blog d'un développeur qui travaillait sur différents ETL depuis des années. Il est intéressant de voir les différentes approches, et à travers ce blog, vous en apprendrez plus sur l'ECCD; vous êtes intéressé, alors vous empruntez le Data Warehouse ETL Toolkit de Ralph Kimball, le livre qui parle en détail du processus "extraire, nettoyer, se conformer et livrer". Le même blog mentionne également de nombreuses applications destinées à créer des ETL sans compétences en programmation. Cela est particulièrement utile pour l'ETL que vous avez fait pour votre entreprise, car votre patron, personne non technophile, vous demande constamment d'apporter de petits changements à ce que vous avez fait.
Découvrir des choses
À mon humble avis, la partie difficile, quand vous n'avez pas de mentor ou un collègue plus expérimenté, c'est de découvrir des choses, et par découvrir, je veux dire passer de l'état "je n'ai jamais entendu parler de cette chose" à "j'ai j'en ai entendu parler mais je ne sais pas très bien ce que c'est ".
Si quelqu'un examine mon code et dit que je devrais vraiment commencer à utiliser certaines conventions de style, avec un peu de curiosité, je peux trouver que dans la programmation, il existe différents styles d'écriture de code, que l'on devrait s'en tenir à un style pour un langage et une base de code donnés, et que de nombreux langages disposent d'outils pour appliquer un style (comme StyleCop pour C #).
Si personne ne me parle du style, comment saurais-je qu'une telle chose existe?
C'est là que les ressources telles que les blogs ou Stack Exchange sont pratiques. Wikipédia n'aiderait pas (sauf si vous passez des jours à frapper des pages aléatoires sur la programmation), et les livres parlent rarement de ces choses.
La même chose s'applique également aux modèles et aux pratiques ou aux choses qui sont moins liées au code. Par exemple, j'imagine à peine un développeur se réveiller le matin en se disant qu'il doit apprendre quelque chose sur ITIL alors qu'il ne l'a jamais aimé auparavant.
Une fois que vous avez découvert un nouveau terme, il est assez facile de l'apprendre. Si vous avez donné un nouveau terme "contrats de code" et que vous êtes un développeur C #, vous pouvez facilement trouver suffisamment d'informations vous-même sur MSDN (ou, mieux, dans le livre de Jon Skeet).
La curiosité aide
Lorsque je travaille avec des stagiaires, je remarque toujours que les meilleurs sont ceux qui étaient curieux en dehors de leurs cours. Ils peuvent savoir qu'il existe une chose appelée programmation fonctionnelle même si aucun de leurs enseignants ne l'a jamais mentionné, et même s'ils ne connaissent aucun langage fonctionnel, ils sont toujours capables d'expliquer en termes généraux ce qu'est la PF et en quoi est-elle différente des autres paradigmes. Ils peuvent connaître Agile, ou Unicode, ou le modèle de confiance partielle / sandbox, simplement parce qu'ils lisent des blogs et utilisent Stack Exchange, plutôt que d'assister simplement à leurs conférences.
Même quand ils n'ont pas de mentor, ils apprennent toujours toutes ces choses qui ne sont pas racontées au collège.