Ako želimo posegnuti za nešto preciznijim podacima da je to doista tako, možemo pogledati rezultate ankete provedene na dobro poznatoj web adresi Stack Overflow. Prema spomenutom istraživanju, prosječna starost programera u SAD-u je 31,6 godina (što također nije puno), ali je i to dosta više nego, na primjer, u Indiji. Tamo je prosječna starost programera svega 25 godina!
Zašto je to tako, te ima li u današnjem IT svijetu mjesta za starije dame i gospodu programere, pokušat ćemo razjasniti u tekstu kojeg upravo čitate.
Prosječna starost programera u nekim zemljama prema izvoru na web adresi https://developerpitstop.com/understanding-the-software-engineer-age-limit/
Legacy sustavi
U isto vrijeme, iako to možda nije poznato ekipi koja se skuplja na ranije spomenutim meetup skupovima, u svijetu postoji veliki broj IT sustava koji se koriste po principu „ne diraj dok se nije pokvarilo“. Riječ je o takozvanim legacy sustavima razvijenima u nekim od starijih programskih jezika prije poprilično godina. Ponekad čak i prije više desetljeća! Budući da je najčešće riječ o sustavima čiji su originalni programeri sada već u mirovini (ili nešto još gore), zapravo ih nema tko održavati. Mlađi programeri ne da ne poznaju takve sustave, nego u pravilu ne poznaju niti razvojne alate korištene za njihov razvoj. Ako pripadate skupini mlađih programera, pogledajte sljedeći primjer programskog koda te budite pošteni i priznajte jeste li do sada bili u prilici u vlastitoj praksi vidjeti nešto slično:
****************************************************************
** I D D I V I S I O N ***
****************************************************************
Identification Division.
Program-id. AWIXMP.
****************************************************************
** D A T A D I V I S I O N ***
****************************************************************
Data Division.
Working-Storage Section.
****************************************************************
** Declarations for the local date/time service.
****************************************************************
01 Feedback.
COPY CEEIGZCT
02 Fb-severity PIC 9(4) Binary.
02 Fb-detail PIC X(10).
77 Dest-output PIC S9(9) Binary.
77 Lildate PIC S9(9) Binary.
77 Lilsecs COMP-2.
77 Greg PIC X(17).
****************************************************************
** Declarations for messages and pattern for date formatting.
****************************************************************
01 Pattern.
02 PIC 9(4) Binary Value 45.
02 PIC X(45) Value
“Today is Wwwwwwwwwwwwz, Mmmmmmmmmmz ZD, YYYY.”.
77 Start-Msg PIC X(80) Value
“Callable Service example starting.”.
77 Ending-Msg PIC X(80) Value
“Callable Service example ending.”.
01 Msg.
02 Stringlen PIC S9(4) Binary.
02 Str .
03 PIC X Occurs 1 to 80 times
Depending on Stringlen.
****************************************************************
** P R O C D I V I S I O N ***
****************************************************************
Procedure Division.
000-Main-Logic.
Perform 100-Say-Hello.
Perform 200-Get-Date.
Perform 300-Say-Goodbye.
Stop Run.
**
** Setup initial values and say we are starting.
**
100-Say-Hello.
Move 80 to Stringlen.
Move 02 to Dest-output.
Move Start-Msg to Str.
CALL “CEEMOUT” Using Msg Dest-output Feedback.
Move Spaces to Str. CALL “CEEMOUT” Using Msg Dest-output Feedback.
**
** Get the local date and time and display it.
**
200-Get-Date.
CALL “CEELOCT” Using Lildate Lilsecs Greg Feedback.
CALL “CEEDATE” Using Lildate Pattern Str Feedback.
CALL “CEEMOUT” Using Msg Dest-output Feedback.
Move Spaces to Str.
CALL “CEEMOUT” Using Msg Dest-output Feedback.
**
** Say Goodbye.
**
300-Say-Goodbye.
Move Ending-Msg to Str.
CALL “CEEMOUT” Using Msg Dest-output Feedback.
End program AWIXMP.
Ako niste, onda ćemo vam otkriti da je riječ o dobrom starom programskom jeziku COBOL. Ovaj programski jezik dizajniran je, sada već zbilja daleke, 1959. godine za razvoj poslovno orijentiranih IT sustava. Upravo u nekom njegovom dijalektu izrađena je velika većina legacy sustava diljem svijeta. Koliko je COBOL star kao programski jezik, može se vidjeti i po tome što su se na samom početku programi u COBOL-u prvo zapisivali na posebne papirnate obrasce. Tek nakon toga se program unosio u računalo korištenjem bušenih kartica, kao pomoćnog medija za pretvaranje „papirnatog“ programa u oblik razumljiv računalu.
U svojim počecima COBOL programi su se pisali na posebnim papirnatim obrascima i tek kasnije unosili u računalo.
Iako je teško procijeniti koliko takvih sustava ima u Hrvatskoj (vjerojatno mnogo manje nego u svijetu zbog kasnijeg širenja IT tehnologije), za SAD postoje puno precizniji podaci. I oni su zapravo zastrašujući (izvor: United States Government Accountability Office Report). Prema spomenutom izvoru, popriličan dio korištenih sustava je već punoljetan, a ima čak i sustava starih po pedesetak godina! Bilo bi zbilja zanimljivo napraviti sličnu analizu za Hrvatsku.
Starost legacy sustava u SAD-u prema izvoru United States Government Accountability Office Report.
Dodatni problem s takvim starim sustavima je u tome što oni nisu predviđeni za nekakav (danas vrlo uobičajen) udaljeni rad. Što je sasvim logično, jer ga u tom trenutku nije ni bilo. Osim toga, niti vlasnici takvih sustava - poput vlade SAD-a i njezinih ustanova - nisu baš previše zainteresirani da im po važnim podacima i sustavima „brlja“ tamo neki programer s druge strane svijeta. Isto tako, nisu ni stariji programeri u četvrtom ili petom desetljeću života (ili još stariji) baš previše zainteresirani da napuste svoje obitelji i presele se na neko drugo mjesto. Bilo da je riječ o preseljenju unutar SAD-a ili dolasku iz neke druge zemlje.
Budući da najčešće nema vremena ni sredstava za potpunu zamjenu takvih sustava novijim, oni se i dalje moraju održavati bar u nekakvoj minimalnoj mjeri zbog zakonskih promjena i slično. Zato predstavljaju pravu „obećanu zemlju“ za starije programere koji dobro poznaju COBOL. I spremni su da po potrebi promijene svoje prebivalište.
Ovdje treba spomenuti kako COBOL nije jedini programski jezik korišten za razvoj zastarjelih sustava. Bili su tu i RPG, Perl, Smalltalk i ostali. Ako vladate nekim od sličnih alata, evo prilike za nastavak karijere kao starijeg programera.
Moderni sustavi
A što je s mogućnostima zapošljavanja starijih programera na ostalim područjima? Tamo gdje nema starih sustava koje treba održavati, nego se nešto posve novo radi ispočetka.
Brojna istraživanja o tome na temelju kojih parametara poslodavci biraju i zadržavaju programere pokazala su da, osim samog poznavanja razvojnih alata, želje i mogućnosti za rad u timskom okruženju i slično, dva vrlo važna kriterija predstavljaju:
neprekidna želja za učenjem i upoznavanjem novih alata
fleksibilno radno vrijeme (u praksi to znači da se radi više kad zatreba)
Upravo su to dva glavna razloga zbog kojih se stariji programeri teže uklapaju u mlađe timove programera. Tu je samo po sebi razumljivo da stalno treba pratiti nove alate, odnosno nove verzije postojećih alata. Drugi zahtjev je još problematičniji. Stariji programeri obično imaju obitelji, pa im je teže duže ostati na poslu zato što neki projekt kasni, ili ga hitno treba završiti. Vjerojatno čak i ne bi bio toliki problem odraditi neki sat viška, kad se time ne bi narušavale dnevne rutine poput vožnje djece iz škole, na treninge i slično. U većini slučajeva i uz odgovarajuću dozu sreće, starijim programerima je zapravo jednostavnije pronaći neki neprogramerski posao u uredu, školi, odnosno nešto potpuno izvan svoje struke.
Ali što da naprave programeri koji baš vole programirati i ne bi se nikako htjeli baviti nečim drugim? Dobra je vijest da su tu pandemijska vremena donijela puno toga pozitivnog. Tu se prije svega misli na online način rada.
Ako programeru nije problem odraditi dodatne sate na projektu kojeg treba hitno dovršiti, onda online način rada uz fleksibilnu satnicu omogućava da to doista i napravi, a da se pri tome ne remeti obavljanje svakodnevnih obiteljskih i drugih obaveza. Na ovaj način se u velikoj mjeri može ukloniti prepreka povezana s fleksibilnošću radnog vremena.
Online korištenje računala omogućilo je također svim zainteresiranim kandidatima da kontinuirano uče na daljinu. Na taj način i stariji programeri, prema svojem vlastitom tempu učenja, mogu stjecati nova znanja i vještine. Ili još bolje, odgovarajuće certifikate koji na globalnoj razini dokazuju da mogu koristiti najnovije tehnologije i razvojne alate. Posjedovanje određenog broja takvih certifikata može svakom poslodavcu pokazati kako još uvijek niste za baciti.
Kako najjednostavnije prikazati takva novostečena znanja potencijalnom poslodavcu? Jedan od najboljih načina je korištenje odgovarajućeg servisa, kao što je https://info.credly.com/. Takav servis garantira da ste stekli i posjedujete određene certifikate, pa se ne morate mučiti da to posebno dokazujete poslodavcu.
Web lokacija za prezentaciju vlastitih certifikata potencijalnim poslodavcima https://info.credly.com.
Jedan od najjednostavnijih načina za stjecanje novih certifikata iz vlastitog naslonjača je kombinacija polaganja ispita (Pearson VUE) i objave dobivenih certifikata (već spomenuti Credly), jer se u ovom slučaju sve odvija potpuno automatski. Cijene polaganja ispita kreću se od pedesetak dolara naviše, ali se puno certifikata može steći u nekakvoj granici do 100-150 dolara. Što i nije previše, ako se želite nastaviti baviti programiranjem te primati i dalje dobre programerske plaće.
Pogled sa stanovišta poslodavca
Probajmo sad cijelu priču pogledati s druge strane, to jest sa stanovišta poslodavca. Pri tome ne mislimo na poslodavce s legacy sustavima, nego baš na poslodavce kojima trebaju programeri za korištenje najnovijih tehnologija na potpuno novom projektu. Može li se u to uklopiti neki „djedica“ koji za sebe tvrdi da dobro programira?
Zahvaljujući online učenju stariji programeri mogu stjecati nova znanja i vještine.
Odgovor je zapravo prilično jednostavan. Ako vam takav stariji programer može predočiti neki novostečeni certifikat, ili vlastiti projekt kojeg možete pregledati na webu u nekom od spremišta programskog koda (Git, SVN, Mercurial, i slično), onda s velikim stupnjem sigurnosti možete biti sigurni da prati najnovije tehnologije i trendove. Zašto bi takav programer bio lošiji nego neki početnik? Pogotovo ako početnik nema nikakve certifikate, niti objavljene projekte.
Isto tako, takav programer može u razvojni tim donijeti poprilično iskustva iz prošlosti u rješavanju problema, nepredviđenih situacija, konfliktnih ponašanja unutar tima i slično. Drugim riječima, u svakom većem timu ne bi bilo loše imati i jednog starijeg/iskusnijeg programera.