Programer piše, dopunjuje i održava nizove naredbi (zvane program ili softver) koje u logičkom redoslijedu računalo mora izvršiti. Temelj programerovog rada su funkcionalne specifikacije koje priprema sistemski analitičar. To je dokument koji pomno određuje problem, odnosno zadatke koje računalo treba izvršiti. Programer raščlanjuje te zadatke u što manje cjelina, prepoznajući zakonitosti, sličnosti i njihove međusobne odnose. Uporabom dogovorenih standarda i pomagala programer izrađuje detaljan plan strukture programa, a potom napiše program u nekom od programskih jezika.
Ovisno o težini i vrsti problema koje treba savladati, programer odabire programski jezik u kojem će napisati program. Za pisanje programa može se upotrijebiti jedan viši programski jezik ili više njih (tj. onih koji sadrže riječi prirodnih jezika, primjerice “if”, “then”, “include” – “ako, “potom”, “uključi”). Programski jezici razlikuju se po svojoj složenosti i produktivnosti. Neki od njih su: LISP za područje umjetne inteligencije, PERL za mrežne aplikacije, JAVA za mrežne multimedijske aplikacije, C++ za programe opće namjene i drugi. Programer u pravilu radi s različitim programskim jezicima, ovisno o svrsi programiranja.
Kad završi s kreiranjem nekog programa ili programskog jezika, programer ga pomno ispituje i testira kako bi povjerio njegovu ispravnost. Nadalje, detaljno dokumentira program, odnosno precizno opisuje svoj proizvod u napomenama koje su dio programa, a koje govore kako program radi i kako se koristi. Na taj način, programi se mogu razumjeti bez teškoća i kasnije ih se lakše može dopunjavati.
U informatici se za postupak ispitivanja pravilnosti rada programa obično koristi izraz “testiranje”. Osoblje vrlo pomno testira programe i o ustanovljenim greškama obavještava programere koji su ih razvijali. Kad je otklonjeno što je više moguće grešaka, programi se daju u uporabu.
Osim kreiranja novog programa, programer modificira postojeće programe. Potrebe za modificiranjem dolaze zbog novih potreba korisnika ili pak zbog naknadno otkrivenih pogrešaka u njihovom funkcioniranju. Postupak naknadnog modificiranja i otklanjanja pogrešaka naziva se softverskim odražavanjem.
Kad programer instalira programe u radno okruženje, surađuje sa sistemskim administratorima (stručnjaci koji imaju pregled nad raspoloživom računalnom opremom u nekoj organizaciji), pri čemu su mu katkad potrebne ranije verzije programa, operativnih sustava i računalne opreme, kao i osoblje koje ima određena iskustva i sposobnosti.
Programer često sudjeluju i u pisanju priručnika za upotrebu računalnih programa, ali i za njihovu instalaciju (postupak ugradnje na računalo) i konfiguraciju (postupak prilagodbe individualnim potrebama korisnika).
Znanja, vještine i poželjne osobine
Zbog dinamike promjena, koje se događaju u području elektroničkih računala, od programera se očekuje stalno usavršavanje, upoznavanje s novim alatima i okruženjima.
Sposobnost logičkog razmišljanja i kreativnost u rješavanju problema neke su od ključnih sposobnosti koje bi programer trebao posjedovati. Posao koji radi zahtjeva smisao za analizu i detalje, te lakoću u radu s apstraktnim pojmovima. Kako su računalni programi dugi nizovi detaljnih i preciznih naredbi, pisanje takvih naredbi zahtjeva strpljivost, ustrajnost i točnost u radu, bez obzira na vanjske pritiske i rokove. Programeri vrlo često rade timski s drugim stručnjacima ili neposrednim korisnicima, te je smisao za komunikaciju i suradnju vrlo bitan.