Avete già qualche buona risposta, ma lasciatemi aggiungere un piccolo tocco…
Mi piace la gente che usa la documentazione ed è un grande segno della vostra professionalità.
Non usando la documentazione
Conosco abbastanza programmatori che inciampano senza un vero piano per lunghi periodi di tempo, provando questo e quello per caso, scegliendo attraverso il vecchio codice sorgente dove qualsiasi cosa vogliano ottenere sembra essere già stata fatta (ma non del tutto) e così via. Francamente, detesto questo tipo di approccio. Non vanno mai molto lontano, spesso devono chiedere alla gente, raramente accettano consigli e preferiscono continuare così per sempre, apparentemente.
Solo tutorial?
La gente spesso cerca su Google tutorial o frammenti di codice, tra cui SO, senza mai fare riferimento alla documentazione, mi irrita a morte. Questo comportamento è una trappola enorme, secondo me. Porta a una sorta di programmazione alimentata da una “conoscenza” non sistematica, arbitraria e non sistematica. Questi programmatori tendono a finire con un sacco di pregiudizi. Da qui nascono pepite come “non usare mai git rebase
”, “non usare mai not in
in SQL”, “fai sempre XXX”, “non fare mai YYY”. Troveranno molto difficile pensare fuori dagli schemi, inventarsi nuove idee, formarsi un'intuizione su come strutturare le loro applicazioni e tutte quelle cose che fanno grandi sviluppatori.
Vi esorto a risolvere prima qualsiasi problema guardando la documentazione/riferimento, e allora cercare SO o altri frammenti.
Naturalmente, ci sono delle eccezioni. Se il vostro problema è ovviamente qualcosa di simile a un bug, o qualcosa di molto, molto, molto, molto, molto speciale, che è improbabile che venga gestito in qualsiasi tipo di documentazione (ad es, una speciale combinazione di librerie/moduli ecc.), allora andate direttamente a SO.
Se è qualcosa che può essere facilmente capito da documentazione/API, allora vi suggerirei di sedervi e lavorare su quella particolare parte del vostro linguaggio di programmazione / librerie ecc. in modo che la vostra conoscenza diventi più stretta.
Documentazione
Il tipo migliore, per me, è un programmatore che, quando incontra un nuovo argomento, si prende il tempo per sedersi davvero, scavare in esso, ottenere una buona visione d'insieme e una buona comprensione tecnica. Questo si ottiene il più delle volte (sempre secondo la mia esperienza, con i molti linguaggi di programmazione con cui ho avuto contatti) leggendo la buona vecchia documentazione, compresi i riferimenti alle API e così via. Questo, secondo me, non può mai essere sostituito da altro.
Non trovo stravagante leggere, per esempio, i vecchi classici del C++ (buon vecchio cartaceo), la Gang of Four Design Patterns, il manuale “Programming Ruby” (versione online del) manuale “Programming Ruby”, le manpages di Perl estremamente ben fatte, il libro di Git, alcuni RFC, le specifiche HTML/XML/etc. e così via da davanti a dietro. Lo farei e l'avrei fatto anche nel mio tempo libero e, francamente, me lo sarei aspettato da qualsiasi programmatore degno di fiducia (a seconda di ciò con cui sta lavorando, ovviamente). Sono anche perfettamente consapevole di essere (almeno nelle aziende in cui ho lavorato, negli ultimi decenni) abbastanza solo con questa opinione.
(N.B.: Ovviamente non è necessario memorizzare enormi liste di riferimenti alle API, ma almeno sorvolare su di esse per vedere cosa è disponibile e quale sembra essere lo “spirito” dell'API. )
Dopo esservi abituati all'argomento, allora è il momento di guardare al codice di terze parti per trovare ispirazione, o di guardare le vecchie domande di SO (o di fare nuove domande da soli).
Potreste anche scoprire che quando avete assorbito un campo come questo, diventa molto facile trovare le risposte zoomando direttamente nella carne di ogni luogo da cui si ottiene la vostra documentazione (pagine man ecc.). A questo punto, anche l'autocompletamento del vostro editor potrebbe essere già sufficiente. E potreste anche sapere molto presto quando qualcosa non è possibile con lo strumento con cui state lavorando, risparmiando un sacco di ricerche inutili.