# Programmatore

Un programmatore informatico o semplicemente programmatore (in inglese programmer o coder, "scrittore di codice") è un tecnico che, attraverso la relativa fase di programmazione, traduce o codifica l'algoritmo risolutivo di un problema dato nel codice sorgente del software da far eseguire a un elaboratore, utilizzando un determinato linguaggio di programmazione. La professione del programmatore è relativamente recente e si è sviluppata di pari passo con l'aumento dei campi di applicazione dell'informatica.

## Descrizione

Nell'ambito del ciclo di vita del software, l'attività del programmatore, definita anche "sviluppo" o "scrittura di codice", concettualmente è successiva all'attività di analisi e precedente a quella di collaudo, solitamente eseguita da altri professionisti, rispettivamente gli analisti e i collaudatori o beta tester.
In pratica il programmatore realizza il programma vero e proprio sulla base del documento di specifica (tecnica o funzionale) redatto dell'analista, in cui sono descritti a livello logico i comportamenti e gli algoritmi che devono essere realizzati nel programma stesso. Terminata la fase di programmazione con la produzione di un programma eseguibile, quello le cui istruzioni sono rese direttamente eseguibili dalla macchina sotto forma di linguaggio macchina, inizia la fase di collaudo, atta a determinare la conformità del programma alle specifiche descritte nel documento di analisi.
Il programmatore per l'esecuzione della propria attività si avvale di alcuni strumenti informatici specializzati per quest'attività. A titolo esemplificativo si tratta di editor (programmi che permettono la scrittura di programmi software), debugger, helper, compilatori o interpreti, script, database ed altri ancora.
Ada Lovelace è considerata la prima programmatrice della storia, avendo per prima espresso un algoritmo inteso per l'utilizzo su un calcolatore, la macchina analitica di Charles Babbage nell'ottobre del 1842.

### Programmatore web

Il suffisso "web" identifica un programmatore specializzato nella costruzione di software destinato a realizzare applicazioni web o siti web per Internet o intranet, tipicamente utilizzando linguaggi orientati a questo genere di attività, come ad esempio PHP, ASP, Java EE, JavaScript o ActionScript.
Il programmatore web si occupa solo del codice sorgente di un sito web, quindi trascura il design e la formattazione del codice HTML, che vengono invece sviluppati da un web designer o da più figure con specifiche competenze. Un programmatore web che si occupa sia del codice che della grafica di un sito, non si chiama più tale ma prende il nome di "Full Stack Developer".

### Code monkey

L'espressione code monkey (lett. "scimmia del codice") si riferisce generalmente, nel mondo anglofono, ad un programmatore per computer o comunque chi scrive codice per sopravvivere; entrando nello specifico, il termine si riferisce a quelle persone capaci unicamente di scrivere del codice, inabili dunque nel compiere lavori che richiedono un tasso di astrazione più elevato come il curare l'architettura, l'analisi ed il design del software. In tal senso, il termine è considerabile leggermente offensivo, ed è spesso attribuito alla maggior parte dei programmatori più giovani all'interno di un gruppo. Il termine può anche essere auto-attribuito come modo per scaricare le responsabilità per una decisione presa dall'amministrativo, oppure come lamento dovuto al dover sopportare tali decisioni (ad es.: "Non chiedermi perché dobbiamo scrivere in COBOL, sono semplicemente un "code monkey").
Il termine può anche essere applicato a programmatori per computer non professionisti che uniscono insieme spezzoni di codice trovati su Internet o librerie per realizzare una applicazione, senza avere né apprezzamento né comprensione dei principi che sono alla base del codice o della programmazione più in generale.
Alcuni autori non considerano programmatori in senso stretto i coder ovvero quelli che si limitano a convertire l'algoritmo in codice, in quanto, eseguendo una mera traduzione, non programmano alcunché.

### Diffusione e formazione

La figura del programmatore è in forte ascesa con la rivoluzione informatica, l'avvento del settore terziario avanzato dopo gli anni 2000 e la diffusione di Internet. Mentre prima degli anni 2000 i programmatori erano essenzialmente programmatori per applicazioni desktop o programmatori di sistema, negli anni 2000 le figure più diffuse sono quelle del programmatore web e quella del programmatore per dispositivi mobili. Molto spesso il programmatore è assunto in società di consulenza informatica lavorando per clienti committenti come banche, pubblica amministrazione e aziende in body rental con forme contrattuali tipiche come il contratto a progetto. La formazione di un programmatore avviene tipicamente attraverso studi universitari, certificazioni informatiche opportune (le più famose sono quelle Java di Sun Microsystem e Microsoft .NET) o tirocini opportuni in azienda.

## Uso improprio

Tra i non addetti ai lavori, il termine programmatore è spesso impiegato scorrettamente. Infatti, in questi casi, qualsiasi professionista nel mondo dell'informatica è genericamente chiamato "programmatore". Chi gestisce sistemi informatici, configura applicazioni, aggiorna i contenuti di siti web, installa e manutiene reti o periferiche, svolge scansioni e monitoraggi di sicurezza, supporta gli utenti, assiste altri specialisti informatici o telematici, sviluppa documentazione, ecc. non programma nulla: solo chi, determinando funzioni e relativi algoritmi di implementazione di una soluzione e secondariamente scrivendo codice in qualche linguaggio di programmazione, realizza software, è un programmatore. E comunque, in questo settore, molte professioni e ruoli sono etichettati in inglese, quasi mai tradotti in italiano.