apie karjerą programavime

Kokia geriausia programavimo karjera? Kaip daugiausiai uždirbt pinigų?

Klausdami žmonės ko gero nenori gero atsakymo, o iš tiesų nori lengviausio kelio. Pamėginsiu papasakot truputį apie tai, kokios problemos ir galimybės yra technologijų srityje, jeigu nori kažkiek įdėt pastangų.

Visada egzistuoja unikalūs pavyzdžiai, kaip kelių žmonių startupas parsiduoda už milijardą ar kelis, tačiau greta to yra visa didžiulė industrija, kurios kontekste toks sandoris galėjo įvykti.

Į R&D (tai yra, techninio personalo algas) keturi gigantai (Amazon, Alphabet, Intel, Microsoft) investavo daugiau nei $12B kiekvienas. Milijardais investuoja ir IBM, Oracle, Facebook, Cisco, etc. Vos kelios tokios kompanijos programuotojams išleidžia daugiau, nei uždirba įžymybių industrijos kaip Holivudas, visos sporto lygos kartu sudėjus ar dar kas. Žiūrint pagal rinkos kapitalizaciją, top10 kompanijų sąraše rasit Big5 – Apple, Alphabet, Microsoft, Amazon, Facebook – kurios visos mušas dėl talentų. Be šitų didžiųjų pelningų gigantų yra ir eilė kitų kompanijų – Uber, Airbnb, Dropbox, etc – kurios irgi dalyvauja/konkuruoja toj pačioj programuotojų paieškoj.

Kurį laiką atrodė, kad pelningiausia karjera yra hedge fondai Wall St., bet nors ir egzistuoja legendomis apipinti matematinių galvų medžiotojai kaip Jane Street ar Rennaisance Technologies, tai nėra organizacijos, kurios galėtų įtakot visą darbo rinką, o Ivy League studentai vis labiau kraunas daiktus ir važiuoja į Vakarų Krantą.

Kalifornija yra viena iš kelių pasaulio vietų, kur neleidžiami darbo keitimo apribojimai, ir leidžiamas at-will darbas (t.y. kompanija gali bet kada atleist, tu bet kada gali išeit pas konkurentą). Tai reiškia, kad aukštos kvalifikacijos specialistas su gera specializacija gali išnaudot savo žvaigždės statusą dideliems pinigams, prilygstantiems kitų sričių įžymybėms, tik tiek, kad nebus niekam įdomus už industrijos ribų (kiek žmonių žino, kas yra koks nors Jeff Dean?).

Šiose kompanijose technologinės žinios tampa vertingesnės už vadybos žinias, tad leidžiami paraleliniai karjerų keliai – nebūtina būt direktorium ar viceprezidentu, kad būt atitinkamoj kompanijos grandyje. Taip kuriami nauji lygiai, kai nebežtenka “distinguished engineer”, tampama “fellow”, kaip nebeužtenka “fellow”, tampama “senior fellow”. Kai kurios kompanijos, kaip Facebook, net neturi matomų inžinierių titulų – “software engineer” gali reikšti tik ką pradėjusį dirbti naujoką, bet gali būti ir industrijos lyderio titulas.

Techninėje karjeroje egzistuoja pakankamai aiškus laipteliai – pradedi nuo to, kad gali vykdyti tau duotas užduotis, tada tampi savarankiškesnis, pradedi individualiai vykdyt projektus, tada juos formuot ir padėt komandai, tada išplėti savo reiklą ir įtakoji kelių komandų, departamento ar organizacijos veiklą, padedi formuot strategines kompanijos iniciatyvas, ir kažkuriuo metu atsirandi savo industrijos priekyje.

Šiais laikais yra daug įdomių sričių – kol dauguma mažų kompanijų džiaugias debesimis, kažkas juos kuria – stato duomenų centrus, kuriuose svarbu ne tik, kad sistemos veiktų, bet kad būtų ekonomiškai optimalios (dabar į šią sritį įžengė ir Oracle). Besimokančios mašinos (dirbtinis intelektas) sulaukia labai daug dėmesio ir daug pinigų – ir save bevairuojančiuose automobiliuose, ir duomenų analizėje ar kovoje su spam’u, ir nuotraukų filtruose ar kalbos atpažinime jūsų telefonuose.

Didelėse organizacijose produktų kūrimas tapo įvairių sričių bendradarbiavimu (ir politika) – produktų vadovai, dizaineriai, UX tyrėjai, duomenų analitikai ir programuotojai kartu formuoja kitą mygtuką ir renka jo spalvą. Sudėtingose problemose – optimizavime, ML, realaus laiko analizėj etc – individualaus žmogaus galimybės tampa daug svarbesnės ir vieno žmogaus darbas ir įtaka gali būti egzabaitinių sistemų pagrindu.

Duomenų centrai pasaulyje jau valgo dešimtis gigavatų energijos – kokiam Amazonui reiktų keletos Ignalinos atominių reaktorių, kad pamaitint serverius, o problemos, kurias nori sprest tokios kompanijos, tik sudėtingėja. Taigi, pinigų industrijoj daug, problemų irgi daug, ir iš esmės visur trūksta tik žmonių.

Ką reikia mokėt? Jeigu neturit patirties panašiose industrijose, yra keli keliai. Vienas – švari, gerai veikianti galva, ir stiprūs gebėjimai spręst problemas kažkurioj srity. Algoritmai, paskirstytos sistemos, ML, pasaulio (vaizdų, balso, kalbos) atpažinimas, etc. – daug tokių sričių žinių įgyjama per akademinį gyvenimo etapą, jeigu laikas universitetuose praleidžiamas gilinantis į šias sritis.

Kompanijos labai daug dėmesio skiria tiems universitetams, kuriuose vidutinis paruošimas yra labai stiprus – tada ir atvažiuos daryt interviu vietoje, ir nuolat siūlys praktikas. Geriausia, jeigu universitetas turi kažkokias laboratorijas, kurios jau bendradarbiauja su industrija. Lietuvoje universitetai mato vietines kompanijas, ir tarptautinis rekrutingas beveik neegzistuoja. Galbūt daliai žmonių labai padės Uber’io skyriai Vilniuje, bet tai yra ganėtinai plona šlangelė į platųjį pasaulį.

Žinoma, jeigu to nėra, nieko nedarant geriau nebus – reikia mėgint parodyt, kad gali kažką pasiūlyt. TopCoder ir panašūs konkursai leidžia ir pasportuot pačiam, ir parodyt industrijai, kad kažką sugebi, ir beveik visi kompanijų dalyvavimai konferencijose, išoriniuose projektuose, žaidynėse yra realiai skirti pritraukt naujiems darbuotojams. Dalyvavimas konferencijose vertinamas labiau ne pagal tai, kas išmokta, o pagal tai, kiek naujų rekrutų pririnkta per dalinimąsi problemomis ir idėjomis.

Kažkiek reik bent kiek žinot technologijų madas – programavimo kalbos ir technologijos vystosi, nes egzistuoja poreikis greitai ir kokybiškai kurt sofistikuotus sprendimus. Pradėjus dirbt kiekviena kompanija per pirmas kelias savaites suruoš tokį bootcamp’ą, kad teks pamiršt daug, ka mokėjai iki tol – bet žinių turėjimas apie modernias praktikas tai labai palengvina, o geras metodikų jautimas leidžia greitai įtakot ir kolegų darbą – per peer review’us ar tiesiogiai juos mokant.

Taip pat galima įgyt praktiką kitose kompanijose – nėra blogas tonas kas keletą metų pakeist darbdavį, jeigu einama į geresnę poziciją ar kompaniją. Dažnai kompanijos nori turėt įvairesnių patirčių iš įvairių sričių, kad neužsibūt toj pačioj monokultūroj.

Kiek ir kaip uždirba programuotojai? Skirtingos kompanijos turi skirtingas filosofijas, vienose daug visokių priedų, akcijų ir dar ko, kitose (kaip Netflix) tiesiog mokamos didelės algos. Tokiose kompanijose kaip Google ar Facebook aukštesniuose lygiuose didžioji dalis pajamų gaunama akcijų pavidalu, tad sunku vertint, kokia iš tiesų yra alga – ar skaičiuot grant’o metu, ar kai išmokama.

Sunku rast gerus šaltinius apie didesnes algas – dažniausiai žmonės apie jas neberašo/nebekalba, bet pagal apklausas Glassdoor’e galima matyt didesnes nei $300k algas, o Blind’e žmonės dažnai kalba apie milijoninius algų paketus didžiosiose kompanijose – galima lygint su NBA žaidėjų algom, na, gal tik Valančiūnas jau atitrūkęs su savo kontraktu. Viešose žalių kortų aplikacijų duomenų bazėse galima matyt daug pozicijų, kur imigrantų bazinė alga be akcijų ir priedų viršyja $200k (tad dažnai tai reiškia bent dvigubai didesnius tikrus paketus).

Kai paskiriamos akcijos, jų vertė gali būti kelis kartus mažesnė, nei jas gavus (Amazon, Microsoft, Facebook, Google vertės “truputį” pakilo per pastaruosius kelis metus) – ir visada egzistuoja klausimas, ar gavęs tą vertę pinigais būtum pirkęs kompanijos akcijų. Tokia nežinomybė užkrauna kažkiek streso (ypač, kai krenta rinkos), bet kartu ir motyvuoja dirbti, nes nenori kitiems rodyt blogo pavyzdžio (ir pamatęs blogus pavyzdžius eini kovot).

Screenshot 2017-05-27 12.54.11

Žinoma, galima į visą tai žiūrėt ir kiek labiau atsipalaidavus – pilna darbo ir ne pačiuose sudėtingiausiuose projektuose, mygtukus suprogramuot irgi kažkam reikia, ir žmonės gali susikurt patogias karjeras nelipdami į aukščiausius kalnus – sėdint tokiose pozicijose algos vis tiek yra šimtais tūkstančių dolerių per metus. Kaip minėjau, industrija didelė, problemų daug, žmonių trūksta.

Jeigu rūpi finansinė karjeros dalis, didžiosios kompanijos yra aiškiausiai pasiekiamas tikslas. Galima rizikuot, kurt startupus, dar bet ką, bet tam reikės ne tik sukurti technologijas, bet ir tikėtis, kad jos bus vertingai pritaikytos. Kai aišku, kad kompanija kuria reikalingą produktą – ar tai būtų Uber, AirBnB, Microsoft, Google, ar dar kas, akivaizdu, kad bus daug lengviau suprast savo darbo vertę (o ją dar reikės pačiam aprašyt kas pusmetį vykstančiuose ‘performance summary cycle’).

Jeigu rūpi tik technologinė karjeros dalis, įdomiausios  problemos egzistuoja tyrimų padaliniuose didžiosiose kompanijose ir finale vis tiek nepavyks pabėgt nuo jų traukos (ir algos).

Ko dar reikia? Pastangų ir daug laiko, kaip ir bet kurioj kitoj karjeroj. Aš savo srityje jau beveik dvidešimt metų \o/ Ai, ir dar reik išvažiuot iš savo kaimo :)

Reklama

12 minčių apie „apie karjerą programavime“

      1. Kad tie save realizuojantys specialistai po to bėga iš gigantų ir daro savo startupus, kuriuose pagaliau galėtų save realizuoti. Ir milžiniškos algos toli gražu ne konstanta. Maža to, kad US algas, ypač SV, galima dalinti porą-trejetą-ketvertą kartų norint gyventi taip pat kaip Europoje.

        Aišku geras planas atart SV, susitaupyt $$ ir tada keltis pigiai gyventi ir save realizuoti kitur. Jei pasiseka laimėti žiurkių lenktynių etapą ir pasitaupyt :)

        1. Tai išgirsti apie juos, nes jų darbas yra būt apie juos išgirstiems. Nėra masiškas fenomenas, palyginus, o ir išeina nebūtinai tie, kas buvo geriausi darbuotojai.

          O dėl algų dalinimo – žiūrint ko nori ir ko reikia. Kiek teko girdėt, kokiam Londone ar Paryžiuje tikrai nėra lengviau gyvent su IT/tech sektoriaus algomis, didmiesčiai yra visur didmiesčiai, ir visi nori juose būt.

          Tad ta Europa yra labai įvairi.

  1. Iš esmės tai tiesa kad IT srityje susirasti darbą nėra sunku, tačiau įmonės kaip FB, Google, t.t. Eilinių koderiu neieško. Net entry level darbai tokiose kompanijose dažnai reikalauja patirties kuri gerokai viršija universiteto parengimą. Manau realiausias kelias yra internshipai, ir tada jau į graduate scheme per reference

    1. Na, klausimas, kas yra “eilinis koderis“ – bent jau į FB priima per pus žmones su patirtim ir be patirties – galva turi dirbt, ir universitete laikas ne veltui išleistas. Žinoma, internshipai – kelias puikus, bet į juos irgi aplikuot reikia, patys nenukrenta (nebent, aišku, vėlgi, prestižiniame universitete sėdi).

  2. O kaip su work-life balance USA? Prisiklausęs istorijų, kaip 80 val. per savaitę yra visiškai normali kultūra ir pasirinkimas yra arba bro down arba go home you pussy. Kiek tame tiesos?

    Ir kiek realiai iš to 200k lieka po mokesčių ir būtinųjų išlaidų?

    1. Tai startupuose visokiuose žmonės labiau aria ir nebūtinai kažką gauna atgal, o šiaip labai nuo kompanijų priklauso, ir nuo to, kaip pasirenki dirbt. Galima visiškai puikiai ir su 40 valandų darbo savaite būt naudingu. O lieka įvairiai – priklauso nuo daug ko. Be šeimos išlaidų apart nuomos ir maisto savaitgaliais nelabai ir yra – tad visai neblogai taupos. Įsivažiavus karjerai būna viskas gerai ir su šeima.

  3. Labai įdomus tekstas, bet svarbiausia jame nepaminėta – koks gi autoriaus dabartinis darbo užmokestis? Įdomu :)

Parašykite komentarą

Įveskite savo duomenis žemiau arba prisijunkite per socialinį tinklą:

WordPress.com Logo

Jūs komentuojate naudodamiesi savo WordPress.com paskyra. Atsijungti / Keisti )

Twitter picture

Jūs komentuojate naudodamiesi savo Twitter paskyra. Atsijungti / Keisti )

Facebook photo

Jūs komentuojate naudodamiesi savo Facebook paskyra. Atsijungti / Keisti )

Google+ photo

Jūs komentuojate naudodamiesi savo Google+ paskyra. Atsijungti / Keisti )

Connecting to %s