Je hebt al een paar goede antwoorden, maar laat me er een kleine draai aan geven…
Ik hou van mensen die documentatie gebruiken en het is een goed teken voor je professionaliteit.
Het niet gebruiken van documentatie
Ik ken genoeg programmeurs die zonder een echt plan voor lange tijdspannes meelopen, dit en dat toevallig uitproberen, door oude broncode heen plukken waar wat ze willen bereiken al gedaan lijkt te zijn (maar nog niet helemaal) en zo verder. Eerlijk gezegd verafschuw ik dit soort benaderingen. Ze komen nooit ver, moeten vaak mensen vragen, nemen zelden advies aan en gaan schijnbaar voor altijd zo door.
Alleen tutorials?
Mensen googlen vaak naar tutorials of code snippets inclusief SO, zonder ooit te refereren aan documentatie, irriteert me tot niets. Dit gedrag is naar mijn mening een enorme valkuil. Het leidt tot een soort programmering die gevoed wordt door halfbakken, willekeurige, onsystematische “kennis”. Die programmeurs hebben de neiging om met veel vooroordelen te eindigen. Dit is waar nuggets als “gebruik nooit git rebase
”, “gebruik nooit not in
in SQL”, “doe altijd XXX”, “doe nooit YYY” vandaan komen. Ze zullen het erg moeilijk vinden om out of the box te denken, met nieuwe ideeën te komen, intuïtie te vormen over hoe ze hun applicaties moeten structureren en al die dingen die geweldige ontwikkelaars maken.
Ik wil er bij u op aandringen om elk probleem eerst op te lossen door te kijken naar de documentatie/referentie, en daar te zoeken naar SO of andere snippets.
Natuurlijk, er zijn uitzonderingen. Als uw probleem duidelijk zoiets is als een bug, of iets heel, heel, heel bijzonders dat waarschijnlijk niet in enige vorm van documentatie behandeld zal worden (bijv, een speciale combinatie van bibliotheken/modules etc.), ga dan direct naar SO.
Als het iets is wat gemakkelijk uit te zoeken is door documentatie/API, dan stel ik voor om te gaan zitten en te werken aan dat specifieke deel van je programmeertaal/bibliotheken etc. zodat je kennis strakker wordt.
Documentatie
De beste soort, voor mij, is een programmeur die, wanneer hij een nieuw onderwerp tegenkomt, de tijd neemt om er echt in te gaan zitten, er in te graven, een goed overzicht te krijgen en een goed technisch begrip te krijgen. Dit wordt meestal bereikt (opnieuw, in mijn ervaring, met de vele programmeertalen waarmee ik contact had) door het lezen van de goede oude documentatie inclusief API referenties en ga zo maar door. Dit kan naar mijn mening nooit vervangen worden door iets anders.
Ik vind het niet vreemd om bijvoorbeeld de oude C++ klassiekers (goed oud papier), de Gang of Four Design Patterns, de (online versie van de) “Programming Ruby” handleiding, de extreem goed gemaakte Perl manpages, het Git boek, bepaalde RFC’s, de HTML/XML/etc. specificaties te lezen en ga zo maar door van voor naar achter. Ik zou dat zelfs in mijn vrije tijd doen en hebben gedaan en zou het, eerlijk gezegd, verwachten van elke programmeur die zijn/haar zout waard is (afhankelijk van waar ze mee werken, uiteraard). Ik ben me er ook terdege van bewust dat ik (in ieder geval in de bedrijven waar ik in de afgelopen decennia heb gewerkt) helemaal alleen sta met deze mening.
(N.B.: Je hoeft natuurlijk geen enorme lijsten met API-referenties te onthouden, maar je moet ze in ieder geval verdoezelen om te zien wat er beschikbaar is en wat de “geest” van de API lijkt te zijn. )
Nadat je je grondig vertrouwd hebt gemaakt met het onderwerp, _ is het tijd om naar 3rd party code te kijken voor inspiratie, of om naar oudere SO vragen te kijken (of zelf nieuwe vragen te stellen).
Je zou ook kunnen vinden dat wanneer je een veld als dit hebt geabsorbeerd, het heel gemakkelijk wordt om antwoorden te vinden door recht in het vlees te zoomen van waar je je documentatie vandaan haalt (man pagina’s etc.). Op dit punt kan het autoaanvullen van je editor ook al genoeg zijn. En je kan net zo goed al snel weten wanneer iets niet mogelijk is met de tool waarmee je werkt, waardoor je een hoop nutteloos zoeken kunt besparen.