Assimilare il lavoro di un programmatore alla codifica è riduttivo. Il tuo obiettivo non è scrivere codice, ma risolvere un dato problema, solitamente tramite codice, ma non codice solo .
Una volta che hai una serie di requisiti, devi eseguire una serie di compiti per soddisfarli. Può consistere nella scrittura di codice, ma anche nell'architettura, nella scrittura di script di implementazione, nell'impostazione e nella configurazione di dipendenze esterne (come Twilio), nell'impostazione dell'ambiente di produzione (come Amazon AWS), nella scrittura di test, nella documentazione di documenti, ecc.
Nelle grandi aziende, compiti specifici sono delegati a persone dedicate. Nelle piccole aziende, di solito la stessa persona ha molte responsabilità diverse. Ma anche nelle grandi aziende, scrivere un sottoinsieme di test e documentazione, progettare e capire come eseguire il codice su un determinato ambiente appartiene ai programmatori. Questo, di per sé, richiede solitamente molto più tempo rispetto alla scrittura del codice.
Pensa all'obiettivo. L'obiettivo è rispondere a un'esigenza del cliente in modo rapido ed economico. Puoi farlo senza eseguire un programma Java in background o senza mettere un JAR in un JAR? Se sì, stai davvero sprecando tempo e denaro per i tuoi clienti. Se non puoi, quindi, calcolando queste due attività, stai effettivamente facendo il tuo lavoro .
Se hai passato un giorno a capirlo, hai trascorso la giornata lavorando e imparando, che è un giorno ben speso. Non importa se hai scritto zero righe di codice - questo è uno dei motivi per cui la metrica LOC / giorno non ha senso quando si confronta la produttività dei programmatori.
Ma, aspetta, e se un altro collega avrebbe capito la soluzione in pochi minuti invece di passare l'intera giornata al problema?
Ecco perché l'esperienza è importante. Conoscere un linguaggio di programmazione non è abbastanza. Devi conoscere anche l'ecosistema, sarebbe il sistema operativo, il framework o gli strumenti (non dimenticare gli strumenti!)
Un programmatore esperto risolverà i problemi più velocemente perché conosce sia la lingua che l'ecosistema.
Un programmatore che conosce il linguaggio di programmazione ma che recentemente è passato a un sistema operativo che non ha mai usato prima sarà meno efficace.
Un programmatore che conosce l'ambiente ma recentemente ha iniziato a utilizzare un nuovo linguaggio di programmazione sarà anche meno efficace.