Kriza programera sa 35 godina — kako je prevazići?

Autor: Chenmo Wang Er
Ergov put ka naprednom Javi: https://javasi.dev
Danas je subota, pa da malo opustimo — hajde da porazgovaramo o jednoj super "lakoj" temi: krizi srednjih godina programera sa 35 godina.
Moram priznati da je Ren-ovo "prenošenje hladnoće na svakog građanina" ostavilo snažan utisak — mnogi kolege više ne izdržavaju i počeli su da osećaju krizu sa svih strana. Mnogi prijatelji uzdišu i osećaju da je situacija krajnje loša.

Čak se i jedan član mlađi od 25 godina počeo brinuti o krizi srednjih godina programera sa 35 godina, pitajući Erge-a šta da radi.
Iskreno, okruženje nije onakvo kao pre, ali još uvek nema razloga za paniku. Osim toga, brinuti se o krizi srednjih godina sa 25 godina zaista je pomalo rano! Pred vama je još više od 10 divnih godina!
Trebalo bi da delujemo unapred i budemo spremni, ali ne treba da brinemo bez razloga — ova "bolest krize" mora se izlečiti. Deo koji sledi napisao je Lou Zai, jedan od članova Ergovog tima "četvorice mačevalaca", i može se reći da je pravi lek za krizu "35 godina"! Veoma je duboko razumevanje — obuhvata i princip i praktične metode!
Sigurno mnoge ovaj tema čini anksioznim, boje se da će izgubiti posao nakon 35. godine, jer sam i ja bio takav pre nekoliko godina, ali sada mi je znatno bolje — o tome će biti reči na kraju teksta.
Bez puno priče, evo sadržaja članka.

1. Zašto nastaje kriza?
1.1 Karakteristike uzrasta od 35 godina
35 godina nije bukvalno 35 — to je opšti pojam koji uglavnom obuhvata period između 35 i 40 godina, pa kada dalje kažem "35 godina", mislim na opšti pojam za period 35-40 godina.
Zašto se kriza javlja baš u ovoj fazi?
- Finansijski pritisak: u ovom uzrastu većina ljudi ima kredit za stan, kredit za auto, troškove školovanja dece itd. Poznajem mnogo kolega kod kojih samo kredit za stan iznosi oko 6.000-7.000 RMB mesečno, a kada se dodaju mesečni troškovi života, mnogi jedva sastave kraj s krajem;
- Porodica: ljudi u ovim godinama su već osnovali porodicu, imaju i roditelje i decu o kojima treba brinuti, pa moraju da usklađuju odnos između porodice i posla;
- Fizička kondicija: sa godinama, fizička kondicija više nije ista kao pre, ne mogu da ostaju budni celog dana;
- Lično učenje: zbog posla i porodice ostaje malo vremena za sopstveno učenje, a želja za samostalnim učenjem primetno opada.
1.2 Izvor krize sa 35 godina
Ako kompanija smanjuje broj zaposlenih, da li ćete biti među prvima koji budu otpušteni? Ako budete otpušteni, da li će vas druge kompanije primiti kada sa 35 godina ponovo tražite posao? Ako vam nova kompanija da ponudu, da li će plata dostići vaš dosadašnji nivo, barem toliko da pokrije normalne troškove života?
Strah od otpuštanja, strah da sa godinama nećete naći posao, strah da vam plata neće pokriti sadašnji nivo života — to su zapravo izvori našeg osećaja krize.
Pogledajmo kako poslodavci vide starije programere:
- Visoka cena upravljanja: način na koji rukovodioci "obećavaju" više ne funkcioniše, mladi programeri su lakši za vođenje;
- Visoka ekonomska cena: traže plate koje obično nisu niske, pa za isti novac koštaju 2-4 puta više od mladih programera;
- Manje energije: ako kompanija gaji kulturu prekovremenog rada, stariji programeri zaista teško prate;
- Više porodičnih obaveza: stariji programeri imaju više porodičnih obaveza i nisu toliko "čisti" kao mladi programeri;
- Ostalo: smanjena želja za učenjem i napredovanjem, usporen napredak u veštinama, zastareo tehnološki stek, manja prilagodljivost itd., kao i to da proizvodi kompanije ne zahtevaju preveliku tehničku i poslovnu stručnost.
1.3 Da li su stariji programeri odbačeni?
Mladi programeri u pisanju svakodnevnog poslovnog koda možda nisu mnogo drugačiji od starijih, ali kada je potrebno rešiti tehničke probleme u kompaniji ili uraditi refaktorisanje projekta, stariji programeri pokazuju svoje prednosti:
- Duboko iskustvo u određenom tehničkom pravcu;
- Bogato iskustvo na projektima;
- Duboko razumevanje poslovnog domena;
- Jake sposobnosti rešavanja problema;
- Jake sposobnosti u dizajnu, arhitekturi, analizi i planiranju;
- Snažan osećaj za celinu, sposobnost upravljanja emocijama, stabilni i izdržljivi.
Dakle, sa mladim programerima se ne takmičimo u pisanju koda, već u iskustvu na projektima, dizajnerskim sposobnostima i prenosu znanja itd.
Ako ste već ušli u red starijih programera, recimo sa 10 godina radnog iskustva, ali je vaš stvarni nivo ispod 5 godina, verovatnoća da budete eliminisani biće veoma velika.
Ovde mogu dati svoj zaključak:
- Da li "kriza 35 godina" postoji? Nema sumnje, sigurno postoji.
- Da li kompanije odbacuju starije programere? Po mom mišljenju, kompanije ne odbacuju starije programere, već odbacuju one starije programere čije sposobnosti ne odgovaraju njihovom stažu.
2. Kako odgovoriti na krizu?
2.1 Savladajte anksioznost
"Kriza 35 godina" je uvek postojala, tačnije, kriza starijih godina je uvek postojala.
Uzmimo mene lično: smatram da mogu raditi do 40. godine, ali je teško raditi do 45, a raditi do 50 je još nedostižnije (osim za velike stručnjake), pa se kriza ne može izbeći — mogu samo nastojati da produžim svoju liniju života u ovoj industriji i da pre "penzije" ostvarim određeno bogatstvo.
Ako imate ovu svest, zapravo i nema toliko anksioznosti, jer ćemo na kraju svi napustiti ovu industriju — pitanje je samo kada.
Zato je moj cilj veoma jasan: ne želim da zadržim zanimanje programera, već da što duže produžim svoj vek u ovoj industriji.
Kako produžiti profesionalni vek? Odgovor je neprekidno učenje!

Tehnologije u IT industriji se veoma brzo menjaju i zahtevaju visok nivo opštih sposobnosti, pa ako ne učite neprekidno i kada dođe kriza godina želite "ležati i pobeđivati", sledeći na redu za otpuštanje možda ćete biti vi.
Neprekidno učenje je preduslov za sve, ali ne možemo učiti slepo — unapred moramo napraviti karijerni plan.
2.2 Unapred napravite karijerni plan
Pogledajmo uobičajene puteve napredovanja i tranzicije programera:
- Tehnički tip: juniorski inženjer -> inženjer srednjeg nivoa -> inženjer višeg nivoa -> arhitekta (tehnički ekspert) -> tehnički direktor -> CTO;
- Menadžerski tip: inženjer -> vođa tima -> menadžer projekta -> direktor projekta -> tehnički direktor -> CTO;
- Mešoviti tip: juniorski inženjer -> inženjer srednjeg nivoa -> menadžer projekta -> tehnički direktor -> CTO (ova ruta naizmenično kombinuje tehniku i menadžment, posao u svakoj fazi nije fiksiran);
- Tip promene struke: juniorski inženjer -> prelazak na proizvod, dizajn, prodaju, operacije itd.
Ispod je detaljniji karijerni plan koji nastoji da produži vaš profesionalni vek, a možda čak i da oslobodi ograničenja starosti (osloboditi se ograničenja starosti može samo kategorija velikih stručnjaka):
- Izgradite lični brend u određenoj razvojnoj veštini, na primer u Javi, mikroservisima, Hadoop-u, visokoj istovremenosti, C++-u itd., i vaš brend mora biti priznat u industriji — takvi programeri zapravo postoje kao "tehnički eksperti".
- Budite veoma vešti u razvoju i dobro poznajte poslovni domen, postanite kombinovani stručnjak i zauzmite teško zamenljivo mesto. Takav programer se može nazvati inženjerom višeg nivoa ili senior programerom; takva uloga, na odgovarajućoj platformi, može biti cenjena i može pratiti razvoj platforme bez obzira na godine. Čak i ako platforma na kojoj jeste propadne, mnoge kompanije će vas želeti.
- Postanite arhitekta koji ume da arhitektonski osmisli određenu vrstu softverskih usluga. To je naprednija uloga koja proizlazi iz inženjera višeg nivoa; kada zaista odradite arhitekturu nekih velikih sistema, mnoge kompanije će vas potrebovati i neće brinuti o vašim godinama — dostigli ste radnu slobodu.
- Krenite ka menadžerskoj poziciji i postanite profesionalni menadžer. Mnoge kompanije imaju menadžerske uloge poput menadžera projekta, tehničkog menadžera, menadžera razvoja itd., i morate zaista dobro obavljati menadžerski posao.
3. Ključne veštine koje su potrebne
3.1 Tehnički aspekt
Tehnologija je osnov preživljavanja svakog programera, bez obzira na fazu u kojoj se nalazite, nikada ne sme potpuno da zapadne — razlika je samo u tome šta svaka faza naglašava u pogledu tehničkih zahteva:
- Junior, srednji i senior programer: proces jačanja tehnologije;
- Ekspert: odabir jednog tehničkog pravca za duboko usavršavanje, postajanje ekspertom u toj oblasti;
- Arhitekta: više je usmeren na sposobnost dizajniranja i kontrole celokupne arhitekture projekta;
- Od vođe tima do CTO-a: menadžerska funkcija preovlađuje nad tehničkom, uglavnom se radi o makro-usmeravanju tehnologije.
Tehnički aspekt — nekoliko glavnih saveta:
- Prvo široko, zatim duboko — izgradite sopstvenu jezgro prednost. Možete biti ekspert za mikroservise, ili "gospodar" za ES, ili stručnjak za Flink.
- Odbijte da se oslanjate na staro znanje. Nemojte provesti 3 godine u jednoj kompaniji, pa kada izađete da tražite posao i šaljete biografije, otkrijete da ne možete nigde da se prijavite, da ne znate šta je Spring Cloud, da nikada niste radili sa mikroservisima i distribuiranim sistemima i da znate samo CRUD zasnovan na SSH. U gradovima drugog i trećeg reda to još i prolazi, ali u gradovima prvog reda, gde se tehnologija brzo menja, obavezno pratite glavne tehnologije.
- Formirajte sopstveni tehnički sistem. Šta je tehnički sistem? Primer: kažete da znate MySQL bazu, ali pored svakodnevnog pisanja SQL-a za CRUD razvoj poslovnih funkcija, da li znate i arhitekturu rada MySQL-a, razlike između glavnih pogona za skladištenje, princip sinhronizacije master-slave, grupno replikovanje, mehanizam brava, particionisanje tabela i baza, kontrolu transakcija? Oko centralne tačke naziva tehnologije, kao paukova mreža, širi se grananje i formira urednu mrežastu strukturu — to je vaš tehnički sistem.
- Koliko god možete, radite rezimee i prenosite znanje. Moj trenutni pristup je da svakodnevne beleške sa učenja, razmišljanja o životu i procese rešavanja bagova prvo zapisujem u Youdao beleške, a kasnije ih postepeno sređujem i objavljujem — služi i za osvrt i refleksiju, a i kao sadržaj za blog.
- Ne grdite se samo tehnologijom (nemojte me napadati zbog ovoga). Kao programer, morate imati izvesnu tehničku veru, ali ne smete ni previše obožavati tehnologiju. Na radnom mestu, ako želite da odete više i dalje od drugih, samo kucanje koda za implementaciju poslovnih funkcija nikako nije dovoljno. Ustvari, u mnogim razvojnim kompanijama položaj programera je prilično običan — dolaze i odlaze, uvek su "zidari na dnu". Zato se ne bacajte glupo u more tehnologije — energija svakog čoveka je ograničena. Osim tehničke snage, morate svesno razvijati i komunikacione sposobnosti, sposobnost pisanja dokumentacije — na primer dokumentaciju projekta, dijagrame arhitekture projekta, prezentacije za izveštavanje, upravljanje timom, upravljanje projektima, projektne standarde, apstraktno razmišljanje, razmišljanje o proizvodima i druge sveobuhvatne sposobnosti.
3.2 Arhitektura i dizajn
Arhitekta je krajnji tehnički san mnogih programera — postati arhitekta je izuzetno retko.
Ali svako mora imati sposobnost arhitektiranja i dizajniranja softvera!
Ako nemate sposobnosti arhitekture i dizajna, ne možete stati na višu dimenziju i razumeti razvoj softvera, pa ćete nužno biti primorani da radite na najjednostavnijim i najlakše zamenljivim "fizičkim" poslovima kucanja koda — a takva radna mesta nužno odbacuju starije programere.
Zato, čak i ako još uvek niste arhitekta, ni tehnički menadžer, ni menadžer, ni analitičar zahteva, morate se u svakodnevnom radu malo podići — često i namerno razmišljati zašto su moduli sistema ovako podeljeni, zašto su interfejsi između servisa ovako dizajnirani, zašto se data poslovna logika ovako implementira a ne onako.
Samo tako ćete polako razumeti tuđu arhitekturu i dizajn, i samo tako ćete polako razvijati sopstvene sposobnosti za arhitekturu i dizajn.
3.3 Poslovne sposobnosti
Svi programeri moraju zapamtiti jedno: programeri imaju dvostruku industrijsku prirodu — prirodu softverske industrije i prirodu industrije kojoj pripada problem koji softver rešava.
Problem koji softver rešava jeste ono što obično zovemo poslom (poslovnim domenom). Na primer, posao Alipay-a je problem plaćanja, posao JD Mall-a je problem e-trgovine, a posao Ctrip-a je problem rezervacije karata i hotela.
Dobro poznavanje posla može postati prednost programera — to je prednost koju programer izgrađuje u domenu problema, tzv. "razumevanje struke".
Ako se prednost u domenu posla spoji sa prednošću u razvojnim veštinama, taj programer ima sposobnost da pobedi preko 85% programera.
Dalje, danas je na tržištu tehničkih radnika previše i zamenjivost je prevelika — za poslovni razvoj u Javi uglavnom se koristi Spring Boot + MyBatis + MySQL, a kada su potrebni mikroservisi uzima se kompletan set Spring Cloud-a, što je previše opšte.
Ako pak poznajete i tehnologiju i ključne poslovne procese — na primer procese e-trgovinskih platformi, sistemâ za plaćanje, sistema za kontrolu rizika — vaš položaj u timu biće stabilan kao planina.
3.4 Meke veštine
U knjizi "12 veština softverskog arhitekte" dat je piramidalni model sposobnosti softverskog arhitekte:

Ovaj model se odnosi na ogromnu većinu inženjera softvera; u toj knjizi autor kaže sledeće.
Većinu vremena, takozvani "stakleni plafon tehnologije" zapravo je samo nedostatak mekih veština. Te veštine se mogu naučiti, a znanja koja nedostaju mogu se nadoknaditi odlučnošću da se promeni.
Svaki od nas programera mora zapamtiti ove reči i jasno biti svestan:
- Bez dubokog udubljivanja, bez teških veština poput tehnologije razvoja, teško ćete u ranoj karijeri (0-5 godina) postići rezultate i zauzeti važno mesto;
- Bez mekih veština — komunikacije, pregovaranja, liderstva, prebacivanja konteksta, inovacija, kognicije — teško ćete na radnom mestu dosegnuti visinu.
Zato, čim savladate izvesnu razvojnu tehnologiju i budete u stanju da obavite neke zadatke, paralelno počnite da razvijate meke veštine — komunikaciju, izražavanje, pregovaranje, govorništvo, mentorisanje, pisanje, organizaciju, planiranje, upravljanje, izveštavanje, poslovne pregovore, inovacije, dizajn itd.
Tek kada vaše meke veštine prate vaše teške veštine, moći ćete bolje da se razvijate, a kada spojite meko i tvrdo i vaše sveobuhvatne sposobnosti eksplodiraju, uopšte ne morate brinuti kako ćete kasnije naći posao — prilike će vas same pratiti, čak će neko posebno za vas stvarati prilike.
4. Ostali saveti
Osim neprekidnog učenja i kretanja ka tehnološkom ili menadžerskom pravcu, smatram da treba obratiti pažnju i na sledeće.
4.1 Vežbajte telo
Razlog što je ovo na prvom mestu je taj što je telo osnova svega — jedna rečenica je veoma klasična.
Telo je jedinica, sve ostalo su nule — bez jedinice, koliko god nula bilo, sve je prazno.

Jedan tehničar iz Šangaja je uvek mislio da je mlad i da telo može da izdrži, ali je posle jednog onesvešćivanja u bolnici otkrio da boluje od uremije — bez dobrog tela, zaraditi koliko god hoćete novca nema smisla, a kada zbog tela napustite svet, supružnik, deca i novac pripadaće drugima.
4.2 Razvijte sporedni posao
Unapred pripremite Plan B i razvijte sporedni posao.
Svrha sporednog posla je da poveća vaše prihode, ali i da vas natera da naučite više znanja, što će ubrzati napredak vaših tehničkih sposobnosti, a služi i kao priprema za buduće preduzetništvo i povećava vašu otpornost na rizik.

Pored navedenih dobrobiti, sporedni posao će takođe unaprediti vaše lične sposobnosti i proširiti vaš krug poznanika.
4.3 Proširite krug poznanika
Što je neko uspešniji, to je njegov krug poznanika širi, resursa više, a put kroz život prirodno širi.
Otkako sam u poslednje vreme upoznao Erge-a, otkrio sam da su moj život i rad dobili novu dimenziju — ušao sam u drugi krug deljenja resursa i s nama se radi na otvorenom kodu, s puno uživanja.
Zato širite svoj krug poznanika naviše, približavajte se i povezujte se sa ljudima koji imaju pozitivnu energiju, svoje ideje i iste vrednote.

Možda sledeći put kada menjate posao, veza iz kruga poznanika direktno preporuči vas i nađete zadovoljavajući posao; a moguće je i da nekoliko prijatelja iz kruga zbog jedne dobre ideje krene direktno u preduzetništvo.
5. Na kraju
Da se vratim na pitanje s početka članka — pre dve godine sam još uvek bio veoma anksiozan, ali sada više nisam, štaviše imam više samopouzdanja.
Trenutno uglavnom idem goreopisanim putem već dve godine i posedujem sve vrste mekih i teških veština, pa u kompaniji se uglavnom ne brinem previše o otpuštanju.
Možda će neko pitati: šta ako vam kompanija propadne posle 35. godine?
Ako mi još nije 40 godina, nalaženje posla u velikoj kompaniji ne bi trebalo da bude teško; ako sam već navršio 40, već sam ostvario izvesno bogatstvo, imam žita u ruci, u srcu miran.
Da bih imao povratni put, i ja postavljam svoj Plan B i širim mrežu poznanika — na primer pišem WeChat javni nalog i radim na projektu preduzetništva.
Ako sporedni posao krene, možda ću od toga i živeti; ako ne krene, i opet sam stekao veze i iskustvo koje će mi poslužiti za sledeće preduzetništvo — zašto to ne bih uradio?
Na kraju, jedna rečenica za sve vas: posao može biti poziv, može biti ljubav, ali može biti i samo posao — važno je sebi ostaviti prostora za zaokret. Ako posao posmatrate kao jedno iskustvo i krajolik na putu, ako vas više zanima proces, osećaj nego konačni rezultat, život može postati puniji iščekivanja.

Kraj
Ništa me ne zadržava — osim cilja; ma i na obali bilo ruža, hladovine i mirne luke, ja sam čamac bez konopa.
- Prošao intervju, ali provera referenci pala!
- Preporuka nekoliko malih i lepih internet kompanija
- Koje državne kompanije vrede da ih prihvate studenti smera računarskih nauka?
- Sa trideset godina, postao sam slobodan!
- Ove godine, stvarno pomislih na postdiplomske studije
- Kako sprečiti dvostruko plaćanje porudžbine?
- Tajna uspeha prelaska sa više škole na fakultet
- Besan — jedan loš kurs košta 280.000

Referenca: https://mp.weixin.qq.com/s/jtwD0Iodg7-HsHEJh2ubZw, izvor: Lou Zai, obradio: Chenmo Wang Er
