Upozorenje
Sadržaji ovih stranica se ne obnavljaju, pa su mnogi podaci o zanimanjima zastarjeli. Ipak, kritičan korisnik može naći korisne informacije o svojim interesima i s njima povezanim zanimanjima. Aktualne informacije o zanimanjima i uvjetima rada treba dopuniti iz drugih izvora.
Računalni programeri pišu, dopunjuju i održavaju nizove naredbi
(zvane program ili softver) koje u logičkom redoslijedu opisuju korake koje
računalo mora izvršiti. Računalni su programi raznovrsni, kao što je raznovrsna
i namjena koju kompjutori danas imaju. Tako postoje programi za obradbu teksta
i stolno izdavaštvo, za tabelarno izračunavanje i poslovne aplikacije, baze
podataka, igre. To su primijenjeni programi ili “aplikacijski softver”. Postoje
i specijalizirani programi za upravljanje radom samog računala i njegovih sastavnih
dijelova: diskova, monitora, pisača, mrežnih kartica. Oni se nazivaju “sistemski
softver”, a programeri koji ga pišu – sistemski programeri. Skup svih programa
iz ove druge skupine naziva se operacijski sustav.
Prvi korak u računalnom programiranju jest pomno određivanje
problema, odnosno zadatka koje računalo treba izvršiti. Često taj dio posla obavljaju
sistemski analitičari ili stručnjaci s drugih područja, ovisno o namjeni programa.
Računalo ne razumije ljudski jezik, stoga je zadatak računalnog programera da te želje
prevede u niz naredbi koje računalo može izvršiti. Da bi to postigli, računalni
programeri raščlanjuju ove zadatke u što više manjih cjelina, prepoznajući
zakonitosti, sličnosti i njihove međusobne odnose. Računalne naredbe pišu se u nekom
od programskih jezika, koje se primjenom programa prevodioca (engl. compiler) mogu
prevesti u jedini jezik koje računalo razumije – strojni kod.
Računala pomažu u raznim sferama ljudske djelatnosti. Izrađeni su
programi koji pomažu arhitektima, liječnicima, inženjerima, pa tako postoje i
specijalizirani programi za olakšavanje posla računalnim programerima (engl. CASE –
Computer Aided Software Engineering). Korištenje takvih alata povećava programersku
produktivnost, uklanjajući brojne rutinske poslove. Produktivnost programera osobito se
povećava korištenjem i ugrađivanjem softverskih poluproizvoda – biblioteka programa.
Ovisno o težini i vrsti problema koji treba svladati, programeri
odabiru programski jezik u kojem će napisati program. Programski jezici razlikuju se po
svojoj kompleksnosti, a i produktivnosti koju omogućuju programeru. Veća programerska
produktivnost obično ide na štetu djelotvornosti i brzine izvođenja programa. Za
jednostavnije probleme programeri biraju BASIC, a za složenije C/C++ ili PASCAL. Postoje
i specijalizirani programski jezici okrenuti problemima baza podataka (npr. SQL), za
matematičke probleme još uvijek se često rabi FORTRAN, a za poslovne primjene COBOL.
Spomenimo još i 4GL, LISP, PROLOG, kao predstavnike modernijih programskih jezika, a
ASSEMBLER kao jezik najbliži strojnom kodu računala. Programeri za ASSEMBLER angažiraju
se samo kada treba postići najveću moguću efikasnost i brzinu izvođenja programa.
Po završetku kreiranja nekog programa ili programskog odsječka
programeri ga redovito pomno ispituju kako bi provjerili njegovu ispravnost. Borba s
vlastitim pogreškama jedna je od najznačajnijih osobina posla računalnih programera.
Mnoge takve pogreške zaostaju i u konačnim verzijama programa. One se popularno nazivaju
“bubicama” (engl. bugs), a proces njihova otklanjanja zove se “istjerivanje
bubica” (engl. debugging).
Računalni programeri najčešće rade timski, pa je međusobna
komunikacija vrlo važna u njihovu poslu. Osim izravnog pisanja kompjutorskih naredbi, od
programera se zahtijeva detaljno dokumentiranje programa. To obuhvaća precizan opis što
pojedini program ili programski odsječak radi i kako se koristi. Vrlo su važni i
“komentari računalnog koda”, odnosno opisi koji i ostalim programerima omogućuju
uvid u korištene algoritme i programska rješenja.
Osim kreiranja novih programa, vrlo važno područje programerova rada
jest modificiranje postojećih programa. Potrebe za modificiranjem dolaze zbog novih
potreba korisnika, ali i zbog naknadno otkrivenih pogrešaka u njihovu funkcioniranju
(bubica). Naknadne modifikacije vrlo su težak zadatak, pa je kvalitetna programska
dokumentacija vrlo važna. Postupak naknadnih modifikacija i otklanjanja pogrešaka naziva
se softverskim održavanjem.
Računalni programeri č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 i ukusima).
Programeri rade u uredima u ugodnoj sredini. Obično rade oko 40 sati na tjedan, ali njihovo radno vrijeme nije strogo određeno. Budući da moraju rješavati probleme kako se javljaju, oni često dolaze prije ostalih ili rade u kasnim večernjim satima kako bi na vrijeme osposobili računala. Moderna računalna i mrežna tehnologija omogućila je programerima da svoje poslove mogu obavljati i na udaljenim lokacijama (npr. kod kuće, na putu), što pridonosi udobnosti i fleksibilnosti rada, ali briše granicu između slobodnog i radnog vremena te prostora. Zato što mnogo vremena provode ispred monitora tipkajući po tipkovnici računala, njihov je posao posebno naporan za oči, kralježnicu i ručne zglobove.
Računalni programeri trebaju biti osobe s razvijenim smislom za logičko razmišljanje i sposobnostima potrebnim za zahtjevni analitički rad. Posao koji oni rade zahtijeva strpljenje, ustrajnost i točnost, bez obzira na pritiske rokova i druge izvore stresa. Smisao za suradnju i sporazumijevanje važan je za programere koji rade u timu ili neposredno s korisnicima. Sposobnost rada s apstraktnim pojmovima i smisao za tehnička rješenja osobito su važni za sistemske programere.
Kako su potrebe korisnika i naručitelja poslova velike i vrlo
raznolike, nema univerzalnog osposobljavanja računalnih programera. Računalni programeri
mogu se osposobljavati u srednjim školama informatičkog smjera, ali će najveći broj
programera imati završen fakultet ili višu školu. Sustavni pristup računalnim
znanostima mogu steći na studiju računarstva na Fakultetu elektrotehnike i računarstva
u Zagrebu, na studiju matematike i informatike na Prirodoslovno-matematičkom fakultetu
ili na višim infor-matičkim školama, te školama organizacijskih znanosti. Zbog goleme
potrebe za računalima, često se i stručnjaci drugih struka (poput inženjera
elektrotehnike ili drugih tehničkih disciplina) bave programiranjem računala, što
katkada preraste i u životni poziv.
Osim formalnog obrazovanja u srednjim i visokim školama, za
osposobljavanje računalnih programera često su potrebni i specijalizirani tečajevi. Na
takvim će se dodatnim edukacijama programeri upoznavati s konkretnim računalnim
okruženjima i alatima s kojima trebaju raditi. Od računalnog programera očekuje se
trajno usavršavanje, upoznavanje s novim alatima i okruženjima, jer su elektronička
računala jedno od najdinamičnijih područja ljudske djelatnosti. Titulu magistra i
doktora računalnih znanosti računalni stručnjaci mogu steći na Fakultetu
elektrotehnike i računarstva u Zagrebu.
Potrebe za računalnim programerima velike su i još uvijek rastu. Vrhunski programeri mogu očekivati i vrhunske zarade, ali i veliku konkurenciju u svom radu. Programeri nalaze zaposlenje u specijaliziranim softverskim kućama, ali i u brojnim drugim organizacijama koje se služe računalima.
Poslovi računalnih programera donekle su slični poslovima drugih računalnih stručnjaka – u prvom redu projektanata informatičkih sustava i sistemskih inženjera. Danas se poslovima programiranja bave i mnogi napredni korisnici računala.