Što možete očekivati ​​ako želite postati iOS programer

Što možete očekivati ​​ako želite postati iOS programer

Izvan iOS-a razvoj se može činiti kao zatvoreni klub. Za rad vam svakako treba Apple računalo, ekosustav je pod strogim nadzorom jedne tvrtke. Iznutra se također ponekad mogu čuti kontradiktornosti – neki kažu da je Objective-C jezik star i nespretan, a drugi da je novi Swift jezik previše sirov.

Unatoč tome, programeri ulaze u ovo područje i kad tamo budu zadovoljni.

Ovoga puta Marat Nurgaliev i Boris Pavlov ispričali su nam svoje iskustvo - kako su naučili profesiju, kako su prošli prve intervjue, zašto su dobili odbijenice. A Andrej Antropov, dekan, djelovao je kao stručnjak Fakultet za razvoj iOS-a na GeekBrainsu.

Godine 2016. Marat Nurgaliev iz Astrahanske regije došao je zaposliti se kao mobilni programer u lokalnoj televizijskoj kući. Ovo je bio njegov prvi intervju. Tek se vratio iz vojske, bez prakse i iskustva, zaboravivši čak i teoriju s kojom je već imao problema. Maratovo jedino iskustvo u mobilnom razvoju bila je njegova teza o analizi tokova curenja informacija kroz Android aplikacije. Na intervjuu su ga pitali o studiju, OOP-u i drugim teorijama, ali Marat nije mogao sakriti rupe u svom znanju.

No, nije odbijen, već je dobio praktičan zadatak - u dva tjedna implementirati prikaz popisa novosti pomoću API-ja. I za iOS i za Android. “Ako sam imao iskustva s Androidom, nije postojao čak ni alat za izradu iOS verzije. Razvojno okruženje za iOS aplikacije dostupno je samo na Macu. Ali dva tjedna kasnije vratio sam se i pokazao što mogu na Androidu. S iOS-om sam to morao shvatiti u hodu. Na kraju su me odveli. Tada sam živio u Astrahanu. Svaki IT posao s plaćom iznad dvadeset mi je odgovarao.”

Tko su iOS programeri?

Programeri mobilnih uređaja izrađuju aplikacije za bilo koji prijenosni uređaj. Pametni telefoni, tableti, pametni satovi i sve ostale platforme koje podržavaju Android ili iOS. Temeljni principi mobilnog razvoja ne razlikuju se od konvencionalnog razvoja, ali je zbog specifičnih alata izdvojen u poseban smjer. Koristi vlastite alate, programske jezike i okvire.

“Za rad s iOS-om potreban vam je MacBook, jer samo on ima potrebno razvojno okruženje Xcode. Besplatan je i distribuira se putem AppStorea. Za instalaciju trebate imati svoj Apple ID i ništa više. U Xcodeu možete razvijati aplikacije za bilo što - telefon, tablet, sat. Za sve postoji ugrađeni simulator i uređivač,” kaže Andrey Antropov, dekan odjela za razvoj iOS-a u GeekBrainsu.

“Ali razvojno okruženje može se instalirati na Windows ako koristite Hackintosh. Ovo je radna, ali zaobilazna opcija - nitko od ozbiljnih programera to ne radi. Početnici kupuju stari MacBook. A iskusni si obično mogu priuštiti najnoviji model.”

Jezici - Swift ili Objective-C

Gotovo sav razvoj iOS-a radi se pomoću programskog jezika Swift. Pojavio se prije pet godina i sada postupno zamjenjuje stari Objective-C jezik, koji Apple koristi u svim svojim aplikacijama više od 30 godina.

“Ogromna baza koda nakupljena je u Objective-C, tako da su i dalje potrebni programeri na oba jezika, ovisno o tvrtki, njenim zadacima i aplikacijama. Aplikacije napisane prije mnogo godina temelje se na Objective-C. I svi novi projekti razvijaju se u Swiftu prema zadanim postavkama. Sada Apple čini mnogo kako bi simultani razvoj za telefon, tablet, sat i MacBook bio što praktičniji. Isti kod se može kompajlirati i izvoditi posvuda. Ovo se prije nije događalo. Za iOS smo razvili u Swiftu, za MacOS smo koristili Objective-C.”

Prema Andreyu, Swift je vrlo jednostavan jezik koji je prijateljski nastrojen za početnike. Strogo je tipiziran, što vam omogućuje da uhvatite mnoge pogreške u fazi kompilacije projekta, a netočan kod jednostavno neće raditi.

“Objective-C je prilično star jezik - iste starosti kao i jezik C++. U vrijeme kada je razvijen, zahtjevi za jezike bili su potpuno drugačiji. Kad je Swift izašao, bio je bugljiv, funkcionalnost je bila ograničena, a sintaksa gruba. I ljudi su imali pune ruke posla s Objective-C. Godinama je poboljšavan, sve greške su ispravljene. Ali sada mislim da je Swift jednako dobar kao Objective-C. Iako čak i Apple još uvijek koristi oboje u svojim projektima. Jezici su u velikoj mjeri međusobno zamjenjivi i međusobno se nadopunjuju. Strukture i objekti jednog jezika mogu se transformirati u objekte i strukture drugog jezika. Dobro je znati obje opcije, ali za početnike Objective-C često djeluje zastrašujuće i zbunjujuće."

trening

“Na mom prvom poslu moj me šef obučavao, pomagao mi u implementaciji i postavljanju projekta,” kaže Marat, “Ali raditi na Androidu i iOS-u u isto vrijeme je teško. Potrebno je vrijeme za obnovu, prebacivanje s projekta na projekt, s jezika na jezik. Na kraju sam odlučio da trebam izabrati jedan smjer i studirati ga. Prodali su me Xcode sučelje i Swiftova jednostavna sintaksa."

Marat je ušao u odjel za razvoj iOS-a u GeekBrainsu. U početku je bilo vrlo lako, jer je mnoge stvari znao iz radnog iskustva. Godišnji tečaj podijeljen je na četiri tromjesečja. Prema Andreyju, prvi daje samo osnove: “Osnove jezika Swift, poznavanje osnovnih okvira, umrežavanje, pohranjivanje podataka, životni ciklus aplikacije, kontroler, osnovne arhitekture, glavne biblioteke koje svi koriste, multithreading i paralelizam u aplikacije."

Druga četvrtina dodaje Objective-C. Vodi se tečaj o arhitekturi i osnovnim obrascima programiranja. U trećem tromjesečju podučavaju pravilan stil pisanja koda. Objašnjava što je tvornica, kako ispravno pisati testove, stvarati projekte, što je Git-Flow, kontinuirana integracija kroz Fast Lane. Četvrto i posljednje tromjesečje posvećeno je timskom radu, praktičnim zadacima i praksi.

“Prvo tromjesečje bilo je lako,” kaže Marat, “ali onda sam počeo učiti programiranje u Objective-C, proučavajući obrasce dizajna, principe Solida, Git-Flowa, arhitekturu projekta, testiranje jedinica i korisničkog sučelja aplikacija, postavljanje prilagođene animacije - a onda mi je postalo zanimljivo učiti.”

“Za mene u GeekBrainsu nije krenulo baš glatko”, kaže Boris Pavlov, a njegov put do razvoja iOS-a općenito nije bio najizravniji. Tipa je odgojila njegova baka. Bila je arhitektica, matematičarka i dizajnerica te je Borisu usadila ljubav prema dizajnu, naučila ga crtati rukom i crtati. Njegov ujak je bio sistemski administrator i zainteresirao je svog nećaka za računala.

Boris je bio odličan učenik, ali je izgubio interes za učenje i napustio školu nakon devet razreda. Nakon fakulteta počeo se baviti biciklizmom, a računala su nestala u drugom planu. Ali jednog dana Boris je dobio ozljedu kralježnice, što ga je spriječilo u nastavku sportske karijere.

Počeo je učiti C++ s nastavnikom na Irkutskom institutu za solarno-zemaljsku fiziku. Tada sam se zainteresirao za razvoj igrica i pokušao sam prijeći na C#. I konačno, poput Marata, bio je zarobljen jezikom Swifta.

“Odlučio sam uzeti besplatni uvodni tečaj u GeekBrainsu. Iskreno govoreći, bio je jako dosadan, trom i nerazumljiv,” prisjeća se Boris, “profesor je govorio o karakteristikama jezika, ali je jurio s jedne teme na drugu ne otkrivajući suštinu. Kad je tečaj završio, još uvijek nisam ništa razumio.”

Stoga Boris nakon uvodnog tečaja nije upisao jednogodišnju obuku, već kratki tromjesečni tečaj, na kojem uče same osnove struke. “Tamo sam našao jako dobre učitelje koji su sve jasno objasnili.”

“Često smo kritizirani, navodno nam trenažni priručnici nisu sasvim ažurni, ima netočnosti. Ali tečajevi se stalno ažuriraju, a nastavnici uvijek govore o inovacijama. Od grupa koje vodim, mnoge nađu posao nakon prvog kvartala. Naravno, obično su to ljudi s iskustvom u programiranju,” kaže Andrey, “S druge strane, svo znanje se ne može prenijeti u jednom tečaju. Interakcija mrežnog klijenta u životu ne može stati u deset dvosatnih predavanja. A ako idete samo na tečajeve i ništa drugo ne radite, onda nećete imati dovoljno znanja. Ako učite svaki dan cijelu godinu, onda ovim tempom samo lijeni neće dobiti posao. Jer potražnja u struci je jako velika.”

Što možete očekivati ​​ako želite postati iOS programer

Vidi se najviše najnovija slobodna radna mjesta za iOS programere i pretplatite se na nove.

Raditi

Ali ni Marat ni Boris nisu tako lako našli posao.

“Neke velike tvrtke već dugo razvijaju iOS aplikacije u Objective-C i nastavljaju održavati staru bazu koda. Nažalost, nemam uvjerljiv argument da ih natjeram da koriste isključivo Swift. Pogotovo oni koji koriste pravilo "ne diraj ono što radi", kaže Marat, "Malo se pažnje pridaje smjeru Objective-C u Geekbrainsu. Više je informativne prirode. Ali svaka tvrtka za koju sam razgovarao pitala je za Objective-C. A budući da su moje studije usmjerene na Swift, kao i moj prethodni rad, dobivala sam odbijenice na intervjuima.”

“Nakon studija sam sam znao samo najpovršnije osnove uz pomoć kojih sam mogao napraviti najjednostavniju aplikaciju, kaže Boris.” Za posao to, naravno, nije bilo dovoljno, ali me to veselilo. Bilo je teško naći posao u Irkutsku. Točnije – nikako. Odlučio sam potražiti u drugim gradovima. Što se tiče broja slobodnih radnih mjesta, Krasnodar, Moskva i Sankt Peterburg pokazali su se najrelevantnijima. Odlučio sam otići u Sankt Peterburg – bliže Europi.

Ali pokazalo se da sve nije tako ružičasto. Čak će i junioru biti oprošteno ono što ne može znati. Još nisam našao posao. Radim za "hvala", stječem iskustvo. Shvaćam da to nije ono što sam želio, ali me zanima i to me pokreće. Želim steći znanje."

Andrey smatra da bi pridošlice trebale tražiti praksu, a ne posao. Ako imate vrlo malo znanja, onda je normalno da pripravnički staž nije plaćen. Andrey savjetuje prijavu na slobodna radna mjesta juniora velikim tvrtkama u kojima je radni proces već uspostavljen.

„Kada shvatite kako funkcionira proces razvoja softvera, postat će vam puno lakše snalaziti se i pronaći daljnji posao, ovisno o vašim željama. Neki ljudi krenu u samostalan razvoj, naprave igrice za sebe, postave ih u trgovinu i sami ih unovče. Neki rade za veliku tvrtku sa strogim pravilima. Neki ljudi zarađuju u malim studijima koji izrađuju softver po narudžbi i tamo mogu promatrati cijeli proces - od stvaranja projekta od nule do isporuke u trgovinu.”

Plaće

Plaća programera za iOS, kao i svakog drugog, ovisi o pitanju "Moskva ili Rusija". No zbog specifičnosti branše – puno rada na daljinu, mogućnosti preseljenja i rada izvan regionalnog tržišta – brojke se sve više približavaju jedna drugoj.

Što možete očekivati ​​ako želite postati iOS programer

Prema kalkulatoru plaća My Circle, prosječna plaća iOS developera je nešto manja 140 000 rublja.

“Junior na vrlo niskoj razini često radi besplatno ili za simboličan novac - 20-30 tisuća rubalja. Ako se na njegovo mjesto ciljano odvede junior, dobit će od 50 do 80 tisuća kuna. Srednji dobivaju od 100 do 150, a ponekad i do 200. Seniori ne dobivaju manje od 200. Mislim da im je plaća oko 200-300. A za voditelje timova, prema tome, preko 300.”

Što možete očekivati ​​ako želite postati iOS programer

Intervjui

“Prvi intervju je bio na Skypeu. Na moje iznenađenje, to je bio Google,” prisjeća se Boris, “tada sam se tek preselio u St. Petersburg i počeo tražiti posao. Dobio sam prijavu za poziciju iOS programera. Ni junior, ni srednji, ni viši - samo programer. Bio sam oduševljen i počeo sam se dopisivati ​​s upraviteljem. Tražili su me da izvršim tehnički zadatak: morao sam napisati prijavu za viceve o Chucku Norrisu. Ja sam to napisao. Rekli su mi da je sve super i zakazali online intervju.

Zvali smo jedno drugo. Jedna fina djevojka je razgovarala sa mnom. Ali nisu postavljali nikakva pitanja o poznavanju jezika - samo razne logičke probleme, na primjer, "Vrijeme je 15:15, koliko stupnjeva ima između kazaljki za sat i minute?" ili "Stup je dugačak 10 metara, puž danju puže 3 metra, a noću se spušta 1 metar.” Za koliko dana će dopuzati do vrha?“, i još par sličnih.

Zatim su uslijedila vrlo čudna pitanja – zašto volim Apple i što osjećam prema Timu Cooku. Rekao sam da je tvrtka u cjelini pozitivna, ali negativna prema njemu, jer njemu je bitan novac, a ne proizvodi.

Kad su počela pitanja o Swiftu, moje znanje je bilo dovoljno samo za programske obrasce i osnove OOP-a. Pozdravili smo se, tjedan dana kasnije nazvali su me i rekli da nisam prikladan. Zapravo, iz toga sam stekao ogromno iskustvo: treba znanja, treba ga puno – i teorije i prakse.”

Andrey kaže da je „prva stvar koju svi pitaju tijekom intervjua životni ciklus kontrolera. Oni stvarno vole tražiti neki jednostavan programski obrazac. Sigurno će vas pitati za vaše iskustvo korištenja popularnih knjižnica. Definitivno će biti pitanja o razlikama između Swift tipova vrijednosti i referentnih tipova, o automatskom brojanju referenci i upravljanju memorijom. Mogu pitati kako su implementirali pohranu podataka u aplikacijama i jesu li implementirali mrežne zahtjeve. Pitat će o osnovama REST-a i JSON-a. Od juniora se neće tražiti konkretne stvari i suptilnosti. Barem ne tražim."

Boris je imao drugačije iskustvo: “Čak i kada sam tražio pripravnički staž, odrađene tehničke poslove i rekao da mi plaća nije bitna, samo da je dovoljna za najam stana, opet sam bio odbijen. Čitao sam članke, pokušavao shvatiti što regrut treba od pridošlice. Ali uglavnom su zakazali na teorijama. Iz nekog razloga postavljali su pitanja iz prve lige koja se ne tiču ​​pridošlica.”

Marat je imao više sreće. Sada radi u prijevozničkoj tvrtki i sam je zadužen za iOS odjel, dok nastavlja studij na fakultetu. “Budući da sam ja jedini odgovoran za iOS, moj rad se ocjenjuje samo prema mojoj sposobnosti da provedem zadatke koji su mi dodijeljeni, a ne prema mom teoretskom poznavanju.”

Zajednica

Andrej živi u Nižnjem Novgorodu i kaže da se čak i tamo stvorila velika zajednica. Nekada davno bio je backend developer u Pythonu, ali su ga prijatelji odvukli u mobilni razvoj – a sada on sam potiče sve da se time bave.

“Globalna zajednica obično komunicira putem Twittera. Ljudi pišu vlastite blogove, snimaju videa na Youtubeu, pozivaju jedni druge na podcaste. Jednog sam dana imao pitanje o prezentaciji na kojoj je govorio voditelj HQTrivia tima. Ovo je američki kviz koji istovremeno igra nekoliko milijuna ljudi. Pisao sam mu na Twitteru, odgovorio mi je, razgovarali smo i zahvalio sam mu se. Zajednica je izuzetno prijateljska, što je sjajno.”

Popis preporučene literaturePočetni stupanj:

Prosječna razina:

Napredna razina:

Izvor: www.habr.com

Dodajte komentar