Vous avez déjà quelques bonnes réponses, mais laissez-moi ajouter une petite touche…
J'aime les gens qui utilisent la documentation et c'est un bon signe pour votre professionnalisme.
Ne pas utiliser la documentation
Je connais suffisamment de programmeurs qui trébuchent sans véritable plan pendant de longues périodes, essayant ceci et cela par hasard, fouillant dans le vieux code source où tout ce qu'ils veulent réaliser semble avoir déjà été fait (mais pas tout à fait) et ainsi de suite. Franchement, je déteste ce genre d'approche. Ils ne vont jamais très loin, doivent souvent demander aux gens, prennent rarement conseil et préfèrent continuer comme ça pour toujours, apparemment.
Seulement des tutoriels ?
Les gens qui cherchent fréquemment sur Google des tutoriels ou des extraits de code, y compris des SO, sans jamais se référer à la documentation, m'irritent sans cesse. Ce comportement est un énorme piège, à mon avis. Il conduit à une sorte de programmation alimentée par des “connaissances” à moitié cuites, arbitraires et non systématiques. Ces programmeurs ont tendance à se retrouver avec beaucoup de préjugés. C'est de là que viennent des pépites comme “ne jamais utiliser git rebase
”, “ne jamais utiliser not in
en SQL”, “toujours faire XXX”, “ne jamais faire YYY”. Ils auront beaucoup de mal à sortir des sentiers battus, à trouver de nouvelles idées, à se faire une intuition sur la façon de structurer leurs applications et tout ce qui fait les grands développeurs.
Je vous invite à résoudre tout problème d'abord en consultant la documentation/référence, puis à rechercher des bribes de SO ou autres.
Bien sûr, il y a des exceptions. Si votre problème est manifestement un bogue ou quelque chose de très, très, très spécial qui ne sera probablement pas traité dans la documentation (par exemple Si c'est quelque chose qui pourrait être facilement résolu par la documentation/API, alors je vous suggère de vous asseoir et de travailler sur cette partie particulière de votre langage de programmation/des bibliothèques, etc. afin de resserrer vos connaissances. Le meilleur type, pour moi, est un programmeur qui, lorsqu'il rencontre un nouveau sujet, prend le temps de s'asseoir, de creuser, d'avoir une bonne vue d'ensemble et une bonne compréhension technique. La plupart du temps, cela se fait (encore une fois, d'après mon expérience, avec les nombreux langages de programmation avec lesquels j'ai été en contact) en lisant la bonne vieille documentation, y compris les références des API, etc. Cela ne peut, à mon avis, jamais être remplacé par autre chose.
Je ne trouve pas étrange de lire, par exemple, les vieux classiques du C++ (bon vieux papier), le Gang des quatre Design Patterns, le manuel (en ligne) “Programming Ruby”, les pages de manuel Perl extrêmement bien faites, le livre Git, certaines RFC, les spécifications HTML/XML/etc. et ainsi de suite du début à la fin. Je l'aurais fait, même pendant mon temps libre et je m'attendrais, franchement, à ce que tout programmeur en vaille la peine (en fonction de ce qu'il travaille, évidemment). Je suis aussi tout à fait conscient que je suis (du moins dans les entreprises où j'ai travaillé, au cours des dernières décennies) tout à fait seul à avoir cette opinion.
(N.B. : Il n'est évidemment pas nécessaire de mémoriser d'énormes listes de références d'API, mais au moins de les survoler pour voir ce qui est disponible et ce que semble être “l'esprit” de l'API. )
Après s'être familiarisé avec le sujet, _il est alors temps de regarder le code d'une tierce partie pour s'en inspirer, ou de se pencher sur des questions plus anciennes de l'OS (ou de poser de nouvelles questions soi-même).
Vous pourriez également constater que lorsque vous avez absorbé un champ comme celui-ci, il devient très facile de trouver des réponses en zoomant directement dans la chair de l'endroit d'où vous tirez votre documentation (pages de man, etc.). À ce stade, l'autocomplétion de votre éditeur peut aussi être déjà suffisante. Et vous pourriez tout aussi bien savoir très vite quand quelque chose n'est pas possible avec l'outil avec lequel vous travaillez, ce qui vous éviterait beaucoup de recherches inutiles.