La maggior parte di tutto il software è scritto in un dialetto comprensibile all'uomo. In altre parole, è di solito in una forma leggibile dall'uomo, di solito espressa in un linguaggio formale basato sull'inglese che segue certe regole e permette al programmatore di rappresentare certe azioni che possono essere eseguite in/su un computer. Viene poi compilato in una forma che è più facile da capire per il computer. In definitiva, diventa istruzioni (in una forma compatta e numerica) che il processore del computer è stato progettato per eseguire facilmente.
È anche possibile programmare in una forma eseguibile dalla macchina, ma non è così facile da capire e di solito è piuttosto fragile. È fragile perché qualsiasi cambiamento nelle operazioni o nei risultati attesi deve essere considerato e modificato esplicitamente. Manca l'astrazione che dà un codice sorgente comprensibile all'uomo; questo rende le modifiche soggette a errori, difficili e dispendiose in termini di tempo.
In ogni caso, codificare è scrivere il codice sorgente per risolvere un particolare problema. Per esempio, un programma di foglio di calcolo... legge un file di foglio di calcolo e lo visualizza su uno schermo, permettendo di modificarlo. Ci saranno elementi di codice che leggono il file, altri che interpretano i dati del file, e altri ancora per visualizzarli in un formato foglio di calcolo sullo schermo. Ci sarà anche del codice per interpretare i dati e le formule inserite nel foglio di calcolo dalla tastiera o da altri dispositivi di input, e infine per salvare i dati in un formato di file. Tutto questo codice sarà integrato per produrre un programma/app completo e funzionante.
E qui sta il problema. La codifica è solo una parte del lavoro di programmazione. Se ti consideri un codificatore, ignori le responsabilità implicite di pianificazione, progettazione, integrazione e test. Questo presuppone che qualcun altro farà il lavoro per assicurare che questa sia un'app/programma completo e correttamente funzionante.
In un team di sviluppo, c'è un accordo che i vari membri del team lavoreranno insieme per produrre un prodotto migliore. C'è anche un contratto esplicito che ogni programmatore/sviluppatore produrrà codice completamente funzionante e ben testato. In alcuni team, i test sono scritti prima che una singola linea di codice sia prodotta. Il codice è considerato finito quando tutti i test possono essere eseguiti correttamente. Questo è a volte conosciuto come una metodologia di programmazione test-first.
Tutto ciò va ad illustrare la filosofia che pensare a se stessi come codificatori è pericoloso. Concentrarsi solo sul compito di scrivere il codice è pericoloso. Ignora il contratto di sviluppo: tutto il codice deve funzionare correttamente.
Quindi, per farla breve, coder è un termine impreciso per programmatore o sviluppatore. La codifica è solo una piccola parte della vita di un programmatore di computer.