Descrizione
Il programmatore software provvede, in ambienti di sviluppo diversi secondo il linguaggio, alla progettazione, compilazione, testing e gestione di nuovi programmi software, in base alle esigenze dei clienti e/o degli utenti.
Attività lavorativa
L'attività del programmatore software consiste in:
- Analizzare le richieste avanzate dai clienti e/o dagli utenti.
- Applicare le specifiche di sistema di ciascun progetto sviluppate da o con l'analista di sistema.
- Sviluppare nuovi programmi o modificare software già esistenti al fine di correggere errori.
- Adattare il software a nuove configurazioni hardware, ad altre esigenze espresse dal cliente o a quelli di nuovi clienti.
- Procedere alla fase di testing e validazione del programma prima di passare a quella di distribuzione.
- Installare i programmi e verificarne il buon funzionamento.
- Procedere alla manutenzione dei programmi stessi una volta in uso.

Il programmatore software, inoltre, può essere responsabile dell'integrazione e verifica dei sistemi di software e delle componenti hardware, della stesura di documenti sulle caratteristiche dei prodotti, dell'analisi dei costi e della richiesta di preventivi ai fornitori, nonché dell'individuazione degli standard di funzionamento del sistema.

E' generalmente inserito in un gruppo di lavoro, coordinato da un project manager, che può coinvolgere altri programmatori, analisti di sistema, ingegneri hardware, designer e grafici, tecnici e specialisti di marketing e di produzione.
Profilo professionale
Per fare il programmatore software devi conoscere:
- I sistemi informatici in generale.
- I sistemi operativi di rete e server.
- I linguaggi di programmazione come C, C++, Java, Visual Basic, SQL.
- le tecnologie alla base delle reti Internet/Intranet.
- La terminologia tecnica del settore informatico.
- La lingua inglese.

Per svolgere correttamente questo lavoro è importante:
- Essere predisposti verso le materie scientifiche (in particolare la matematica)
- Prestare attenzione ai dettagli e avere spiccata propensione all'analisi, precisione e capacità di risoluzione di problemi.
- Essere dotati di creatività nello sviluppo di soluzioni innovative.
- Essere flessibili nell'eseguire lavori molto diversi tra loro.
- Essere dotati di buona capacità di organizzare il proprio lavoro nel tempo.
- Avere facilità di relazione con le persone del proprio team o con i committenti esterni.
- Essere dotati di abilità comunicative per illustrare esaustivamente il funzionamento e le caratteristiche del software realizzato.
- Essere disposti a un aggiornamento professionale continuo.

In alcuni casi, ti saranno utili anche alcune nozioni di management e gestione.