Kaj lahko pričakujete, če želite postati razvijalec za iOS

Kaj lahko pričakujete, če želite postati razvijalec za iOS

Zunaj iOS-a se lahko razvoj zdi kot zaprt klub. Za delo zagotovo potrebujete računalnik Apple, ekosistem natančno nadzoruje eno podjetje. Od znotraj je včasih mogoče slišati tudi protislovja – nekateri pravijo, da je jezik Objective-C star in okoren, drugi pa, da je novi jezik Swift pregrob.

Kljub temu razvijalci gredo na to področje in ko so tam, so zadovoljni.

Marat Nurgaliev in Boris Pavlov sta nam tokrat povedala o svojih izkušnjah - kako sta se naučila poklica, kako sta opravila prve razgovore, zakaj sta bila zavrnjena. In Andrey Antropov, dekan, je deloval kot strokovnjak Fakulteta za razvoj iOS pri GeekBrains.

Leta 2016 se je Marat Nurgaliev iz regije Astrahan zaposlil kot mobilni razvijalec v lokalni televizijski hiši. To je bil njegov prvi intervju. Ravnokar se je vrnil iz vojske, brez vaje in izkušenj, pozabil je celo na teorijo, s katero je že imel težave. Maratova edina izkušnja na področju mobilnega razvoja je bila njegova diplomska naloga o analizi tokov uhajanja informacij skozi aplikacije za Android. Na razgovoru so ga spraševali o študiju, OOP in drugi teoriji, vendar Marat ni mogel skriti vrzeli v svojem znanju.

Vendar ga niso zavrnili, ampak je dobil praktično nalogo - v dveh tednih implementirati prikaz seznama novic s pomočjo API-ja. Tako za iOS kot Android. »Če sem imel izkušnje z Androidom, ni bilo niti orodja za ustvarjanje različice za iOS. Okolje za razvoj aplikacij za iOS je na voljo samo za Mac. Toda dva tedna kasneje sem se vrnil in pokazal, kaj lahko počnem v Androidu. Z iOS-om sem moral to ugotoviti sproti. Na koncu so me vzeli. Potem sem živel v Astrahanu. Ustrezalo mi je vsako IT delo s plačo nad dvajset.«

Kdo so razvijalci za iOS?

Razvijalci mobilnih naprav izdelujejo aplikacije za vse prenosne naprave. Pametni telefoni, tablice, pametne ure in vse ostale platforme, ki podpirajo Android ali iOS. Temeljna načela mobilnega razvoja se ne razlikujejo od konvencionalnega razvoja, vendar so ga zaradi specifičnih orodij izločili v posebno smer. Uporablja lastna orodja, programske jezike in okvire.

»Za delo z iOS potrebujete MacBook, saj ima le ta potrebno razvojno okolje Xcode. Je brezplačen in se distribuira prek AppStore. Za namestitev potrebujete svoj Apple ID in nič drugega. V Xcode lahko razvijate aplikacije za karkoli – telefon, tablico, uro. Za vse obstaja vgrajen simulator in urejevalnik,« pravi Andrey Antropov, dekan oddelka za razvoj iOS pri GeekBrains.

»Toda razvojno okolje je mogoče namestiti v Windows, če uporabljate Hackintosh. To je delujoča, a krožna možnost - nobeden od resnih razvijalcev tega ne počne. Začetniki kupijo starega MacBooka. Izkušeni pa si običajno lahko privoščijo najnovejši model.”

Jeziki - Swift ali Objective-C

Skoraj ves razvoj iOS poteka z uporabo programskega jezika Swift. Pojavil se je pred petimi leti in zdaj postopoma nadomešča stari jezik Objective-C, ki ga Apple uporablja v vseh svojih aplikacijah že več kot 30 let.

»V Objective-C se je nabrala ogromna kodna baza, zato so še vedno potrebni razvijalci v obeh jezikih, odvisno od podjetja, njegovih nalog in aplikacij. Aplikacije, napisane pred mnogimi leti, temeljijo na Objective-C. In vsi novi projekti so privzeto razviti v Swiftu. Zdaj Apple dela veliko, da bi bil hkratni razvoj za telefon, tablični računalnik, uro in MacBook čim bolj udoben. Isto kodo je mogoče prevesti in izvajati povsod. To se prej ni dogajalo. Za iOS smo razvili v Swiftu, za MacOS smo uporabili Objective-C.«

Kot pravi Andrey, je Swift zelo preprost jezik, ki je prijazen za začetnike. Je strogo tipiziran, kar vam omogoča, da ujamete številne napake v fazi prevajanja projekta, napačna koda pa preprosto ne bo delovala.

»Objective-C je precej star jezik – iste starosti kot jezik C++. V času, ko je bil razvit, so bile zahteve za jezike popolnoma drugačne. Ko je Swift izšel, je imel hrošče, funkcionalnost je bila omejena, sintaksa pa groba. In ljudje so imeli polne roke dela z Objective-C. Dolga leta se je izboljševal, vse napake so bile popravljene. Zdaj pa mislim, da je Swift tako dober kot Objective-C. Čeprav tudi Apple v svojih projektih še vedno uporablja oboje. Jezika sta v veliki meri zamenljiva in se dopolnjujeta. Strukture in objekte enega jezika je mogoče preoblikovati v objekte in strukture drugega jezika. Dobro je poznati obe možnosti, a za začetnike se Objective-C pogosto zdi zastrašujoč in zmeden."

usposabljanje

»V moji prvi službi me je moj šef usposabljal, mi pomagal pri izvajanju in postavitvi projekta,« pravi Marat, »Toda delati na Androidu in iOS-u hkrati je težko. Potreben je čas za obnovo, preklapljanje od projekta do projekta, od jezika do jezika. Na koncu sem se odločil, da moram izbrati eno smer in jo študirati. Bil sem navdušen nad vmesnikom Xcode in preprosto sintakso Swift."

Marat je vstopil v oddelek za razvoj iOS pri GeekBrains. Sprva je bilo zelo enostavno, saj je marsikaj vedel iz delovnih izkušenj. Letni tečaj je razdeljen na štiri četrtine. Po Andrejevih besedah ​​prvi podaja le same osnove: »Osnove jezika Swift, poznavanje osnovnih okvirov, mreženja, shranjevanja podatkov, življenjskega cikla aplikacije, krmilnika, osnovnih arhitektur, glavnih knjižnic, ki jih vsi uporabljajo, večnitnosti in vzporednosti v aplikacije."

Drugo četrtletje doda Objective-C. Tečaj se izvaja o arhitekturi in osnovnih programskih vzorcih. V tretjem četrtletju poučujejo o pravilnem slogu pisanja kode. Razlaga, kaj je tovarna, kako pravilno pisati teste, ustvarjati projekte, kaj je Git-Flow, neprekinjena integracija prek Fast Lane. Četrta in zadnja četrtina je namenjena timskemu delu, praktičnim nalogam in praksi.

»Prva četrtina je bila lahka,« pravi Marat, »potem pa sem se začel učiti programiranja v Objective-C, preučevati načrtovalske vzorce, principe Solida, Git-Flow, projektno arhitekturo, testiranje enot in uporabniškega vmesnika aplikacij, nastavljati animacijo po meri - in potem mi je postalo zanimivo študirati."

"Zame se pri GeekBrainsu ni začelo ravno gladko," pravi Boris Pavlov, in njegova pot do razvoja iOS na splošno ni bila najbolj neposredna. Fanta je vzgajala babica. Bila je arhitektka, matematik in oblikovalka in je Borisu privzgojila ljubezen do oblikovanja, ga naučila risati na roko in risati. Njegov stric je bil sistemski administrator in je svojega nečaka zanimal za računalnike.

Boris je bil odličen učenec, a je izgubil zanimanje za učenje in je po devetih razredih zapustil šolo. Po fakulteti se je lotil kolesarjenja, računalniki pa so šli v ozadje. Toda nekega dne je Boris dobil poškodbo hrbtenice, zaradi katere ni mogel nadaljevati športne kariere.

Začel je študirati C++ pri učitelju na Irkutskem inštitutu za sončno-zemeljsko fiziko. Nato me je začel zanimati razvoj iger in poskusil sem preiti na C#. In končno ga je, tako kot Marata, očaral jezik Swift.

»Odločil sem se za brezplačen uvodni tečaj pri GeekBrains. Če sem iskren, je bil zelo dolgočasen, počasen in nerazumljiv,« se spominja Boris, »učitelj je govoril o značilnostih jezika, a hitel z ene teme na drugo, ne da bi razkril bistvo. Ko se je tečaj končal, še vedno nisem razumel ničesar.”

Zato se Boris po uvajalnem tečaju ni vpisal na celoletno usposabljanje, temveč na krajši trimesečni tečaj, kjer poučujejo o samih osnovah poklica. "Tam sem našel zelo dobre učitelje, ki so mi vse jasno razložili."

»Pogosto smo deležni kritik, baje, da naši vadbeni priročniki niso povsem ažurni, so netočnosti. Toda tečaji se nenehno posodabljajo in učitelji vedno govorijo o novostih. Od skupin, ki jih vodim, jih veliko najde zaposlitev po prvem četrtletju. Seveda so to ponavadi ljudje z izkušnjami s programiranjem,« pravi Andrey, »po drugi strani pa vsega znanja ni mogoče prenesti v enem tečaju. Interakcije z omrežnimi odjemalci v življenju ni mogoče strniti v deset dvournih predavanj. In če hodiš samo na tečaje in ne počneš ničesar drugega, potem ne boš imel dovolj znanja. Če se vse leto učiš vsak dan, potem s tem tempom samo lenuh ne bo dobil službe. Ker je povpraševanje v poklicu zelo veliko.”

Kaj lahko pričakujete, če želite postati razvijalec za iOS

Vidiš največ najnovejša prosta delovna mesta za razvijalce iOS in se naročite na nove.

Delo

Toda niti Marat niti Boris nista tako zlahka našla zaposlitve.

»Nekatera velika podjetja že dolgo razvijajo aplikacije za iOS v Objective-C in še naprej vzdržujejo staro bazo kode. Na žalost nimam prepričljivega argumenta, da bi jih prisilil, da uporabljajo izključno Swift. Še posebej tisti, ki uporabljajo pravilo »ne dotikaj se tistega, kar deluje,« pravi Marat, »pri Geekbrainsu se usmeritvi Objective-C posveča malo pozornosti. Je bolj informativne narave. Toda vsako podjetje, za katerega sem opravil intervju, je spraševalo o Objective-C. In ker je moj študij osredotočen na Swift, tako kot moje prejšnje delo, sem bil na razgovorih zavrnjen.«

»Po študiju sem sam poznal le tiste najbolj površne osnove, s pomočjo katerih sem lahko izdelal najpreprostejšo aplikacijo,« pravi Boris, »za delo seveda ni bilo dovolj, a me je to veselilo. V Irkutsku je bilo težko najti službo. Natančneje – sploh ne. Odločil sem se pogledati v drugih mestih. Po številu prostih delovnih mest so se izkazali za najbolj relevantne Krasnodar, Moskva in Sankt Peterburg. Odločil sem se, da grem v Sankt Peterburg - bližje Evropi.

A vse se je izkazalo, da ni tako rožnato. Tudi mladincu bo odpuščeno tisto, česar ne more vedeti. Nisem še našel službe. Delam za "hvala", pridobivam izkušnje. Razumem, da to ni tisto, kar sem želel, vendar me zanima in to me žene. Želim pridobiti znanje."

Andrey meni, da bi morali novinci raje iskati pripravništvo kot službo. Če imaš zelo malo znanja, potem je normalno, da je pripravništvo neplačano. Andrey svetuje prijavo na prosta delovna mesta junior v velikih podjetjih, kjer je delovni proces že vzpostavljen.

»Ko boste razumeli, kako poteka proces razvoja programske opreme, bo veliko lažje krmariti in poiskati nadaljnje delo, odvisno od vaših želja. Nekateri ljudje gredo v neodvisen razvoj, naredijo igre zase, jih naložijo v trgovino in jih sami monetizirajo. Nekateri delajo za veliko podjetje s strogimi pravili. Nekateri služijo denar v majhnih studiih, ki izdelujejo programsko opremo po meri, in tam lahko opazujejo celoten proces – od ustvarjanja projekta iz nič do dostave v trgovino.«

Plače

Plača razvijalca za iOS je, tako kot pri vseh drugih, odvisna od vprašanja "Moskva ali Rusija". A zaradi specifike panoge – veliko dela na daljavo, možnosti selitve in dela ne na regionalnem trgu – se številki vse bolj približujeta.

Kaj lahko pričakujete, če želite postati razvijalec za iOS

Po kalkulatorju plač My Circle je povprečna plača iOS razvijalca nekoliko nižja 140 000 rubljev.

»Mlajši na zelo nizki ravni pogosto dela brezplačno ali za simboličen denar - 20-30 tisoč rubljev. Če na njegovo mesto namerno vzamejo mlajšega, bo prejel od 50 do 80 tisočakov. Srednji dobijo od 100 do 150, včasih tudi do 200. Starejši ne dobijo manj kot 200. Mislim, da je njihova plača okoli 200-300. In za vodje ekip je v skladu s tem več kot 300.«

Kaj lahko pričakujete, če želite postati razvijalec za iOS

Intervjuji

»Prvi intervju je potekal na Skypu. Na moje presenečenje je bil to Google,« se spominja Boris, »takrat sem se šele preselil v Sankt Peterburg in začel iskati delo. Prejel sem prijavo za delovno mesto iOS razvijalca. Ne nižji, ne srednji, ne višji - samo razvijalec. Bil sem navdušen in začel sem si dopisovati z upraviteljem. Prosili so me, da opravim tehnično nalogo: napisati sem moral prijavo za šale o Chucku Norrisu. jaz sem ga napisal. Rekli so mi, da je vse super, in se dogovorili za spletni intervju.

Poklicala sva se. Lepo dekle se je pogovarjalo z menoj. Niso pa postavljali nobenih vprašanj o znanju jezika – samo različne logične težave, na primer »Ura je 15:15, koliko stopinj je med urnim in minutnim kazalcem?« ali »Steber je dolg 10 metrov, polž podnevi prileze 3 metre navzgor, ponoči pa se spusti 1 meter. Čez koliko dni bo prilezla na vrh?“, in še par podobnih.

Potem so bila zelo čudna vprašanja - zakaj ljubim Apple in kaj čutim do Tima Cooka. Rekel sem, da je družba kot celota pozitivna, do njega pa bolj negativno nastrojena, ker mu je pomemben denar, ne izdelki.

Ko so se začela vprašanja o Swiftu, je moje znanje zadostovalo le za programske vzorce in osnove OOP. Poslovila sva se, čez teden dni so me poklicali nazaj in rekli, da nisem primeren. Pravzaprav sem s tem pridobil ogromno izkušenj: rabiš znanje, rabiš ga veliko – tako teorije kot prakse.”

Andrey pravi, da je »prva stvar, ki jo vsi vprašajo med intervjujem, življenjski cikel krmilnika. Zelo radi zahtevajo kakšen preprost programski vzorec. Zagotovo vas bodo vprašali o vaših izkušnjah z uporabo priljubljenih knjižnic. Vsekakor bo vprašanje o razlikah med tipi vrednosti Swift in referenčnimi tipi, o samodejnem štetju referenc in upravljanju pomnilnika. Lahko se vprašajo, kako so implementirali shranjevanje podatkov v aplikacijah in ali so implementirali omrežne zahteve. Spraševali bodo o osnovah REST in JSON. Od juniorja ne bodo zahtevali posebnih stvari in podrobnosti. Vsaj ne sprašujem."

Boris je imel drugačno izkušnjo: »Tudi ko sem prosil za pripravništvo, opravljene tehnične naloge in rekel, da mi plača ni pomembna, le da zadostuje za najem stanovanja, sem bil še vedno zavrnjen. Prebral sem članke, poskušal razumeti, kaj potrebuje najemnik od novinca. Vendar jim je večinoma spodletelo pri teorijah. Iz nekega razloga so postavljali vprašanja iz višje lige, ki ne zadevajo novincev.

Marat je imel več sreče. Sedaj dela v transportnem podjetju in sam vodi oddelek za iOS, medtem pa nadaljuje študij na fakulteti. »Ker sem edini odgovoren za iOS, se moje delo ocenjuje le po sposobnosti izvajanja nalog, ki so mi dodeljene, in ne po poznavanju teorije.«

Skupnost

Andrej živi v Nižnem Novgorodu in pravi, da se je tudi tam oblikovala velika skupnost. Nekoč je bil backend razvijalec v Pythonu, pa so ga prijatelji zvlekli v mobilni razvoj – zdaj pa sam spodbuja vse k temu.

»Globalna skupnost običajno komunicira prek Twitterja. Ljudje pišejo lastne bloge, snemajo videe na Youtubu, vabijo drug drugega v poddaje. Nekega dne sem imel vprašanje o predstavitvi, kjer je govoril vodja ekipe HQTrivia. To je ameriški kviz, ki ga hkrati igra več milijonov ljudi. Pisal sem mu na Twitterju, odgovoril mi je, pogovorila sva se in zahvalil sem se mu. Skupnost je izjemno prijazna, kar je super.”

Seznam priporočene literatureZačetna stopnja:

Vmesna raven:

Napredni nivo:

Vir: www.habr.com

Dodaj komentar