La ce să te aștepți dacă vrei să devii un dezvoltator iOS

La ce să te aștepți dacă vrei să devii un dezvoltator iOS

Din exteriorul iOS, dezvoltarea poate părea un club închis. Pentru a funcționa, aveți nevoie cu siguranță de un computer Apple; ecosistemul este controlat îndeaproape de o singură companie. Din interior, poți auzi uneori și contradicții - unii spun că limbajul Objective-C este vechi și stângaci, iar alții spun că noul limbaj Swift este prea grosolan.

Cu toate acestea, dezvoltatorii intră în această zonă și, odată acolo, sunt mulțumiți.

De data aceasta, Marat Nurgaliev și Boris Pavlov ne-au povestit despre experiența lor - cum au învățat profesia, cum au promovat primele interviuri, de ce au primit refuzuri. Și Andrei Antropov, decan, a acționat ca expert Facultatea de Dezvoltare iOS la GeekBrains.

În 2016, Marat Nurgaliev din regiunea Astrakhan a venit să obțină un loc de muncă ca dezvoltator de telefonie mobilă la o companie locală de televiziune. Acesta a fost primul lui interviu. Tocmai se întorsese din armată, fără practică și experiență, uitând până și teoria, cu care avea deja probleme. Singura experiență a lui Marat în dezvoltarea mobilă a fost teza sa privind analiza fluxurilor de scurgeri de informații prin aplicațiile Android. La interviu, a fost întrebat despre studiile sale, OOP și alte teorii, dar Marat nu a reușit să ascundă lacunele din cunoștințele sale.

Cu toate acestea, nu a fost refuzat, ci i s-a dat o sarcină practică - să implementeze afișarea unei liste de știri folosind API-ul în două săptămâni. Atât pentru iOS, cât și pentru Android. „Dacă am avut vreo experiență pe Android, nici măcar nu exista un instrument pentru a crea o versiune iOS. Mediul de dezvoltare a aplicațiilor iOS este disponibil numai pe Mac. Dar două săptămâni mai târziu m-am întors și am arătat ce pot face pe Android. Cu iOS a trebuit să-mi dau seama din mers. Până la urmă m-au luat. Apoi am locuit în Astrakhan. Orice job IT cu un salariu peste douăzeci de ani mi se potrivea.”

Cine sunt dezvoltatorii iOS?

Dezvoltatorii de telefonie mobilă creează aplicații pentru orice dispozitiv portabil. Smartphone-uri, tablete, ceasuri inteligente și toate celelalte platforme care acceptă Android sau iOS. Principiile fundamentale ale dezvoltării mobile nu sunt diferite de dezvoltarea convențională, dar datorită instrumentelor specifice, aceasta a fost separată într-o direcție separată. Folosește propriile instrumente, limbaje de programare și cadre.

„Pentru a lucra cu iOS, ai nevoie de un MacBook, pentru că doar acesta are mediul de dezvoltare Xcode necesar. Este gratuit și distribuit prin AppStore. Pentru a instala, trebuie să aveți ID-ul Apple și nimic altceva. În Xcode poți dezvolta aplicații pentru orice - telefon, tabletă, ceas. Există un simulator și un editor încorporat pentru orice”, spune Andrey Antropov, decanul departamentului de dezvoltare iOS la GeekBrains.

„Dar mediul de dezvoltare poate fi instalat pe Windows dacă utilizați Hackintosh. Aceasta este o opțiune funcțională, dar obișnuită - niciunul dintre dezvoltatorii serioși nu face asta. Începătorii cumpără un MacBook vechi. Iar cei cu experiență își permit de obicei cel mai recent model.”

Limbi - Swift sau Objective-C

Aproape toată dezvoltarea iOS se face folosind limbajul de programare Swift. A apărut acum cinci ani și acum înlocuiește treptat vechiul limbaj Objective-C, pe care Apple l-a folosit în toate aplicațiile sale de mai bine de 30 de ani.

„O bază de cod uriașă a fost acumulată în Objective-C, astfel încât dezvoltatorii în ambele limbi sunt încă necesari, în funcție de companie, sarcinile și aplicațiile acesteia. Aplicațiile scrise cu mulți ani în urmă se bazează pe Objective-C. Și toate proiectele noi sunt dezvoltate implicit în Swift. Acum Apple face multe pentru ca dezvoltarea simultană a unui telefon, tabletă, ceas și MacBook să fie cât mai convenabilă posibil. Același cod poate fi compilat și rulat peste tot. Acest lucru nu s-a întâmplat înainte. Pentru iOS am dezvoltat în Swift, pentru MacOS am folosit Objective-C.”

Potrivit lui Andrey, Swift este un limbaj foarte simplu, prietenos pentru începători. Este strict tastat, ceea ce vă permite să detectați multe erori în etapa de compilare a proiectului, iar codul incorect pur și simplu nu va funcționa.

„Objective-C este un limbaj destul de vechi - de aceeași vârstă cu limbajul C++. La momentul în care a fost dezvoltat, cerințele pentru limbi erau complet diferite. Când a apărut Swift, era cu erori, funcționalitatea era limitată și sintaxa era dură. Și oamenii au avut mâinile pline cu Objective-C. A fost îmbunătățit de mulți ani, toate erorile de acolo au fost corectate. Dar acum cred că Swift este la fel de bun ca Objective-C. Deși chiar și Apple încă le folosește pe ambele în proiectele sale. Limbile sunt în mare parte interschimbabile și complementare reciproc. Structurile și obiectele unei limbi pot fi transformate în obiecte și structuri ale unei alte limbi. Este bine să cunoști ambele opțiuni, dar pentru începători, Objective-C pare adesea intimidant și confuz.”

pregătire

„La primul meu loc de muncă, șeful meu m-a instruit, m-a ajutat în implementarea și configurarea proiectului”, spune Marat, „Dar să lucrez pe Android și iOS în același timp este dificil. Este nevoie de timp pentru a reconstrui, a trece de la proiect la proiect, de la limbă la limbă. În cele din urmă, am decis că trebuie să aleg o direcție și să o studiez. Am fost vândut pe interfața Xcode și pe sintaxa simplă a lui Swift.”

Marat a intrat în departamentul de dezvoltare iOS la GeekBrains. La început a fost foarte ușor, pentru că știa multe lucruri din experiența de lucru. Cursul anual este împărțit în patru trimestre. Potrivit lui Andrey, primul oferă doar elementele de bază: „Baza limbajului Swift, cunoașterea cadrelor de bază, rețele, stocarea datelor, ciclul de viață al aplicației, controler, arhitecturi de bază, biblioteci principale pe care le folosește toată lumea, multithreading și paralelism în aplicații.”

Al doilea trimestru adaugă Objective-C. Se desfășoară un curs despre arhitectură și modele de programare de bază. În al treilea trimestru, ei predau stilul corect de scriere a codului. Acesta explică ce este o fabrică, cum să scrieți corect testele, să creați proiecte, ce este Git-Flow, integrarea continuă prin Fast Lane. Al patrulea și ultimul trimestru este dedicat muncii în echipă, sarcinilor practice și stagiilor de practică.

„Primul trimestru a fost ușor”, spune Marat, „dar apoi am început să învăț programarea în Objective-C, studierea modelelor de design, principiile Solid, Git-Flow, arhitectura proiectului, testarea unitară și UI a aplicațiilor, configurarea animației personalizate. - și apoi am devenit interesant să studiez.”

„Nu a început foarte bine pentru mine la GeekBrains”, spune Boris Pavlov, iar calea sa către dezvoltarea iOS în general nu a fost cea mai directă. Băiatul a fost crescut de bunica lui. A fost arhitect, matematician și designer și i-a insuflat lui Boris dragostea pentru design, l-a învățat să deseneze de mână și să deseneze. Unchiul său era administrator de sistem și îl interesa pe nepotul său de computere.

Boris a fost un elev excelent, dar și-a pierdut interesul pentru studiu și a părăsit școala după nouă clase. După facultate, s-a apucat de ciclism, iar computerele au dispărut în fundal. Dar într-o zi, Boris a suferit o accidentare la coloană, ceea ce l-a împiedicat să-și continue cariera sportivă.

A început să studieze C++ cu un profesor la Institutul de Fizică Solar-Terestru din Irkutsk. Apoi am devenit interesat de dezvoltarea jocurilor și am încercat să trec la C#. Și în cele din urmă, ca și Marat, a fost captivat de limba Swift.

„Am decis să urmez cursul introductiv gratuit la GeekBrains. Sincer să fiu, era foarte plictisitor, lent și de neînțeles”, își amintește Boris, „profesorul a vorbit despre trăsăturile limbii, dar s-a grăbit de la un subiect la altul fără să dezvăluie esența. Când s-a terminat cursul, tot nu am înțeles nimic.”

Așadar, după cursul de inițiere, Boris nu s-a înscris la o pregătire de un an, ci la un curs scurt de trei luni, unde predau însăși bazele profesiei. „Am găsit profesori foarte buni acolo și mi-au explicat totul destul de clar.”

„Suntem adesea criticați, se presupune că manualele noastre de instruire nu sunt în întregime la zi, există inexactități. Dar cursurile sunt actualizate constant, iar profesorii vorbesc mereu despre inovații. Dintre grupurile pe care le conduc, multe își găsesc locuri de muncă după primul trimestru. Desigur, de obicei aceștia sunt oameni cu experiență în programare”, spune Andrey, „Pe de altă parte, toate cunoștințele nu pot fi transmise într-un singur curs. Interacțiunea cu clienții din rețea în viață nu poate fi conținută în zece prelegeri de două ore. Și dacă mergi doar la cursuri și nu faci nimic altceva, atunci nu vei avea suficiente cunoștințe. Dacă înveți în fiecare zi pe tot parcursul anului, atunci în acest ritm numai leneșii nu își vor găsi un loc de muncă. Pentru că cererea în profesie este foarte mare.”

La ce să te aștepți dacă vrei să devii un dezvoltator iOS

Puteți vedea cel mai mult ultimele posturi vacante pentru dezvoltatorii iOS și abonați-vă la altele noi.

Muncă

Dar nici Marat, nici Boris nu și-au găsit un loc de muncă atât de ușor.

„Unele firme mari au dezvoltat de mult timp aplicații iOS în Objective-C și continuă să mențină vechiul cod de bază. Din păcate, nu am un argument convingător pentru a-i forța să folosească exclusiv Swift. În special cei care folosesc regula „nu atingeți ceea ce funcționează”, spune Marat, „se acordă puțină atenție direcției Objective-C la Geekbrains. Este mai mult de natură informațională. Dar fiecare companie pentru care am intervievat a întrebat despre Objective-C. Și din moment ce studiile mele sunt concentrate pe Swift, la fel ca munca mea anterioară, am primit refuzuri la interviuri.”

„După ce am studiat, am știut pe cont propriu doar cele mai superficiale elemente de bază, cu ajutorul cărora am putut crea cea mai simplă aplicație”, spune Boris „Pentru muncă, desigur, nu a fost suficient, dar m-am bucurat de asta. A fost greu să găsești un loc de muncă în Irkutsk. Ca să fiu mai precis – deloc. Am decis să caut în alte orașe. În ceea ce privește numărul de posturi vacante, Krasnodar, Moscova și Sankt Petersburg s-au dovedit a fi cele mai relevante. Am decis să merg la Sankt Petersburg - mai aproape de Europa.

Dar totul s-a dovedit a nu fi atât de roz. Chiar și un junior va fi iertat pentru ceea ce nu poate ști. Nu mi-am găsit încă un loc de muncă. Lucrez pentru „mulțumesc”, câștig experiență. Înțeleg că nu asta mi-am dorit, dar mă interesează și asta mă motivează. Vreau să dobândesc cunoștințe.”

Andrey crede că noii veniți ar trebui să caute mai degrabă stagii decât locuri de muncă. Dacă aveți foarte puține cunoștințe, atunci este normal ca stagiul să fie neplătit. Andrey sfătuiește să aplici pentru posturi vacante juniori companiilor mari unde procesul de lucru a fost deja stabilit.

„Când înțelegi cum funcționează procesul de dezvoltare software, va deveni mult mai ușor să navighezi și să găsești de lucru în continuare, în funcție de dorințele tale. Unii oameni intră în dezvoltare independentă, își fac jocuri pentru ei înșiși, le încarcă în magazin și le monetizează ei înșiși. Unii lucrează pentru o companie mare cu reguli stricte. Unii oameni câștigă bani în studiouri mici care fac software personalizat și acolo pot urmări întregul proces - de la crearea unui proiect de la zero până la livrarea acestuia în magazin.”

Salariile

Salariul unui dezvoltator iOS, ca oricare altul, depinde de întrebarea „Moscova sau Rusia”. Dar din cauza specificului industriei - multă muncă la distanță, oportunități de relocare și muncă nu pe piața regională - cifrele se apropie din ce în ce mai mult.

La ce să te aștepți dacă vrei să devii un dezvoltator iOS

Conform calculatorului de salariu My Circle, salariul mediu al unui dezvoltator iOS este puțin mai mic ruble 140 000.

„Un junior la un nivel foarte scăzut lucrează adesea gratuit sau pentru bani simbolici - 20-30 de mii de ruble. Dacă un junior este luat intenționat în funcția sa, el va primi de la 50 la 80 de mii. Mijlocii primesc de la 100 la 150 și uneori chiar până la 200. Seniorii nu primesc mai puțin de 200. Cred că salariul lor este în jur de 200-300. Și pentru liderii de echipă, în consecință, este peste 300.”

La ce să te aștepți dacă vrei să devii un dezvoltator iOS

Interviuri

„Primul interviu a avut loc pe Skype. Spre surprinderea mea, era Google”, își amintește Boris, „apoi tocmai mă mutasem la Sankt Petersburg și am început să-mi caut de lucru. Am primit o cerere pentru un post de dezvoltator iOS. Nu junior, nu mijlociu, nu senior - doar un dezvoltator. Am fost încântat și am început să corespondez cu managerul. Mi s-a cerut să îndeplinesc o sarcină tehnică: a trebuit să scriu o cerere pentru glume despre Chuck Norris. Eu am scris-o. Mi-au spus că totul a fost grozav și mi-au programat un interviu online.

Ne-am sunat unul pe altul. O fată drăguță a vorbit cu mine. Dar nu au pus întrebări despre competențele lingvistice - doar diverse probleme logice, de exemplu, „Ora este 15:15, câte grade sunt între orele și minutele?” sau „Un stâlp are 10 metri lungime, a melcul se târăște 3 metri în sus în timpul zilei și coboară 1 metru noaptea.” În câte zile se va târî până sus?“, și încă câteva asemănătoare.

Apoi au fost întrebări foarte ciudate - de ce iubesc Apple și ce simt pentru Tim Cook. Am spus că compania în ansamblu este pozitivă, dar mai degrabă negativă față de el, pentru că banii sunt importanți pentru el, nu produsele.

Când au început întrebările despre Swift, cunoștințele mele au fost suficiente doar pentru modelele de programare și elementele de bază ale OOP. Ne-am luat rămas bun, o săptămână mai târziu m-au sunat înapoi și mi-au spus că nu sunt potrivit. De fapt, am câștigat o experiență enormă din asta: ai nevoie de cunoștințe, ai nevoie de multe - atât teorie, cât și practică.”

Andrey spune că „primul lucru pe care toată lumea este întrebat în timpul unui interviu este ciclul de viață al controlorului. Le place foarte mult să ceară un model de programare simplu. Cu siguranță vă vor întreba despre experiența dvs. în utilizarea bibliotecilor populare. Cu siguranță va fi o întrebare despre diferențele dintre tipurile de valori Swift față de tipurile de referință, despre contorizarea automată a referințelor și gestionarea memoriei. Ei pot întreba cum au implementat stocarea datelor în aplicații și dacă au implementat solicitările de rețea. Ei vor întreba despre elementele de bază ale REST și JSON. Juniorului nu i se vor cere lucruri și subtilități specifice. Cel puțin eu nu întreb.”

Boris a avut o altă experiență: „Chiar și atunci când am cerut stagii de practică, am îndeplinit sarcini tehnice și am spus că salariul nu este important pentru mine, atâta timp cât era suficient să închiriez un apartament, tot am fost refuzat. Am citit articole, am încercat să înțeleg de ce are nevoie un recrutor de la un nou venit. Dar au eșuat în mare parte în teorii. Din anumite motive, au pus întrebări din ligile majore care nu îi privesc pe nou-veniți.”

Marat a fost mai norocos. Acum lucrează într-o firmă de transport și este singur la conducerea departamentului iOS, în timp ce își continuă studiile la facultate. „Deoarece sunt singurul responsabil pentru iOS, munca mea este evaluată doar de capacitatea mea de a implementa sarcinile care mi-au fost atribuite, și nu de cunoștințele mele de teorie.”

Comunitate

Andrei locuiește în Nijni Novgorod și spune că chiar și acolo s-a format o mare comunitate. Cândva, a fost un dezvoltator backend în Python, dar prietenii lui l-au târât în ​​dezvoltarea mobilă - iar acum el însuși îi încurajează pe toată lumea să o facă.

„Comunitatea globală comunică de obicei prin Twitter. Oamenii își scriu propriile bloguri, înregistrează videoclipuri pe Youtube, se invită reciproc la podcasturi. Într-o zi am avut o întrebare despre o prezentare în care a vorbit liderul echipei HQTrivia. Acesta este un joc quiz american care este jucat simultan de câteva milioane de oameni. I-am scris pe Twitter, mi-a răspuns, am vorbit și i-am mulțumit. Comunitatea este extrem de prietenoasă, ceea ce este grozav.”

Lista literaturii recomandateNivel începător:

Nivel intermediar:

Nivel avansat:

Sursa: www.habr.com

Adauga un comentariu