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

Opis poslova

Računalni programeri     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).

Radni uvjeti

    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.

Poželjne osobine

    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.

Osposobljavanje

    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.

Zapošljavanje

    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.

Bliska zanimanja

    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.