Çfarë të prisni nëse dëshironi të bëheni një zhvillues iOS

Çfarë të prisni nëse dëshironi të bëheni një zhvillues iOS

Nga jashtë iOS, zhvillimi mund të duket si një klub i mbyllur. Për të punuar, ju duhet patjetër një kompjuter Apple; ekosistemi kontrollohet nga afër nga një kompani. Nga brenda, ndonjëherë mund të dëgjoni edhe kontradikta - disa thonë se gjuha Objective-C është e vjetër dhe e ngathët, dhe të tjerë thonë se gjuha e re Swift është shumë e papërpunuar.

Sidoqoftë, zhvilluesit hyjnë në këtë fushë dhe, pasi janë atje, janë të kënaqur.

Këtë herë, Marat Nurgaliev dhe Boris Pavlov na treguan për përvojën e tyre - si e mësuan profesionin, si i kaluan intervistat e tyre të para, pse morën refuzime. Dhe Andrey Antropov, dekani, veproi si ekspert Fakulteti i Zhvillimit të iOS në GeekBrains.

Në vitin 2016, Marat Nurgaliev nga rajoni i Astrakhanit erdhi për të marrë një punë si zhvillues celular në një kompani televizive lokale. Kjo ishte intervista e tij e parë. Sapo ishte kthyer nga ushtria, pa praktikë dhe përvojë, pasi kishte harruar edhe teorinë, me të cilën tashmë kishte probleme. Përvoja e vetme e Marat në zhvillimin e celularëve ishte teza e tij mbi analizimin e rrjedhjeve të rrjedhjes së informacionit përmes aplikacioneve Android. Në intervistë, ai u pyet për studimet e tij, OOP dhe teori të tjera, por Marat nuk ishte në gjendje të fshihte boshllëqet në njohuritë e tij.

Sidoqoftë, ai nuk u refuzua, por iu dha një detyrë praktike - të zbatonte shfaqjen e një liste lajmesh duke përdorur API në dy javë. Si për iOS ashtu edhe për Android. “Nëse do të kisha ndonjë përvojë në Android, nuk kishte as një mjet për të krijuar një version iOS. Mjedisi i zhvillimit të aplikacionit iOS disponohet vetëm në Mac. Por dy javë më vonë u ktheva dhe tregova se çfarë mund të bëja në Android. Me iOS më duhej ta kuptoja menjëherë. Në fund më morën. Pastaj jetoja në Astrakhan. Çdo punë në IT me pagë mbi njëzet më përshtatej.”

Kush janë zhvilluesit e iOS?

Zhvilluesit celularë bëjnë aplikacione për çdo pajisje portative. Telefonat inteligjentë, tabletët, orët inteligjente dhe të gjitha platformat e tjera që mbështesin Android ose iOS. Parimet themelore të zhvillimit celular nuk ndryshojnë nga zhvillimi konvencional, por për shkak të mjeteve specifike, ai është ndarë në një drejtim të veçantë. Ai përdor mjetet e veta, gjuhët e programimit dhe kornizat.

“Për të punuar me iOS, ju duhet një MacBook, sepse vetëm ai ka mjedisin e nevojshëm të zhvillimit të Xcode. Është falas dhe shpërndahet përmes AppStore. Për ta instaluar, duhet të keni Apple ID tuaj dhe asgjë tjetër. Në Xcode mund të zhvilloni aplikacione për çdo gjë - telefon, tablet, orë. Ka një simulator dhe redaktues të integruar për gjithçka, "thotë Andrey Antropov, dekan i departamentit të zhvillimit të iOS në GeekBrains.

“Por mjedisi i zhvillimit mund të instalohet në Windows nëse përdorni Hackintosh. Ky është një opsion funksional, por rrethrrotullues - asnjë nga zhvilluesit seriozë nuk e bën këtë. Fillestarët blejnë një MacBook të vjetër. Dhe ata me përvojë zakonisht mund të përballojnë modelin më të fundit.”

Gjuhët - Swift ose Objective-C

Pothuajse i gjithë zhvillimi i iOS bëhet duke përdorur gjuhën e programimit Swift. Ajo u shfaq pesë vjet më parë dhe tani gradualisht po zëvendëson gjuhën e vjetër Objective-C, të cilën Apple e ka përdorur në të gjitha aplikacionet e saj për më shumë se 30 vjet.

"Një bazë e madhe kodi është grumbulluar në Objective-C, kështu që ende kërkohen zhvillues në të dyja gjuhët, në varësi të kompanisë, detyrave dhe aplikacioneve të saj. Aplikimet e shkruara shumë vite më parë bazohen në Objektivi-C. Dhe të gjitha projektet e reja zhvillohen në Swift si parazgjedhje. Tani Apple po bën shumë për të bërë sa më të përshtatshëm zhvillimin e njëkohshëm për një telefon, tablet, orë dhe MacBook. I njëjti kod mund të përpilohet dhe të ekzekutohet kudo. Kjo nuk ka ndodhur më parë. Për iOS kemi zhvilluar në Swift, për MacOS kemi përdorur Objective-C.”

Sipas Andrey, Swift është një gjuhë shumë e thjeshtë që është miqësore për fillestarët. Është shtypur rreptësisht, gjë që ju lejon të kapni shumë gabime në fazën e përpilimit të projektit, dhe kodi i pasaktë thjesht nuk do të funksionojë.

"Objective-C është një gjuhë mjaft e vjetër - e njëjtë me gjuhën C++. Në kohën kur u zhvillua, kërkesat për gjuhë ishin krejtësisht të ndryshme. Kur doli Swift, ishte me gabime, funksionaliteti ishte i kufizuar dhe sintaksa ishte e përafërt. Dhe njerëzit kishin duart plot me Objektivin-C. Është përmirësuar për shumë vite, të gjitha gabimet atje janë korrigjuar. Por tani mendoj se Swift është po aq i mirë sa Objective-C. Edhe pse edhe Apple ende i përdor të dyja në projektet e saj. Gjuhët janë kryesisht të këmbyeshme dhe reciprokisht plotësuese. Strukturat dhe objektet e një gjuhe mund të shndërrohen në objekte dhe struktura të një gjuhe tjetër. Është mirë të njihen të dyja opsionet, por për fillestarët Objective-C shpesh duket frikësuese dhe konfuze."

stërvitje

“Në punën time të parë, shefi im më trajnoi, më ndihmoi në zbatimin dhe ngritjen e projektit”, thotë Marat, “Por të punosh në Android dhe iOS në të njëjtën kohë është e vështirë. Duhet kohë për t'u rindërtuar, për të kaluar nga projekti në projekt, nga gjuha në gjuhë. Në fund, vendosa që më duhej të zgjidhja një drejtim dhe ta studioja atë. Unë u shita në ndërfaqen e Xcode dhe sintaksën e thjeshtë të Swift."

Marat hyri në departamentin e zhvillimit të iOS në GeekBrains. Në fillim ishte shumë e lehtë, sepse ai dinte shumë gjëra nga përvoja e punës. Kursi vjetor ndahet në katër tremujorë. Sipas Andrey, i pari jep vetëm bazat: “Baza e gjuhës Swift, njohja e kornizave bazë, rrjetet, ruajtja e të dhënave, cikli i jetës së aplikacionit, kontrolluesi, arkitekturat bazë, bibliotekat kryesore që përdorin të gjithë, multithreading dhe paralelizmi në aplikacionet.”

Tremujori i dytë shton objektivin-C. Një kurs zhvillohet mbi arkitekturën dhe modelet bazë të programimit. Në tremujorin e tretë, ata mësojnë stilin e saktë të shkrimit të kodit. Ai shpjegon se çfarë është një fabrikë, si të shkruani saktë testet, të krijoni projekte, çfarë është Git-Flow, Integrimi i vazhdueshëm përmes Fast Lane. Tremujori i katërt dhe i fundit i kushtohet punës në grup, detyrave praktike dhe praktikave.

"Tremujori i parë ishte i lehtë," thotë Marat, "por më pas fillova të mësoja programimin në Objective-C, të studioja modelet e dizajnit, parimet e Solid, Git-Flow, arkitekturën e projektit, testimin e njësive dhe ndërfaqen e përdoruesit të aplikacioneve, vendosjen e animacionit personal. - dhe pastaj unë U bë interesante për të studiuar."

"Nuk filloi shumë mirë për mua në GeekBrains," thotë Boris Pavlov, dhe rruga e tij drejt zhvillimit të iOS në përgjithësi nuk ishte më e drejtpërdrejta. Djali u rrit nga gjyshja. Ajo ishte një arkitekte, matematikane dhe stiliste dhe i nguli Boris një dashuri për dizajnin, e mësoi atë të vizatonte me dorë dhe të vizatonte. Xhaxhai i tij ishte një administrator sistemi dhe i interesonte nipit të tij për kompjuterë.

Boris ishte një student i shkëlqyer, por humbi interesin për të studiuar dhe e la shkollën pas nëntë klasave. Pas kolegjit, ai filloi të çiklizmit dhe kompjuterët u zbehën në sfond. Por një ditë Boris mori një dëmtim të shtyllës kurrizore, e cila e pengoi atë të vazhdonte karrierën e tij sportive.

Ai filloi të studionte C++ me një mësues në Institutin e Fizikës Diellore-Terrestriale në Irkutsk. Pastaj u interesova për zhvillimin e lojërave dhe u përpoqa të kaloja në C#. Dhe së fundi, si Marati, ai u mahnit nga gjuha Swift.

“Vendosa të ndjek kursin hyrës falas në GeekBrains. Për të qenë i sinqertë, ai ishte shumë i mërzitshëm, i plogësht dhe i pakuptueshëm, - kujton Boris, - mësuesi foli për veçoritë e gjuhës, por nxitoi nga një temë në tjetrën pa zbuluar thelbin. Kur mbaroi kursi, unë ende nuk kuptova asgjë.”

Prandaj, pas kursit hyrës, Boris nuk u regjistrua në një trajnim njëvjeçar, por në një kurs të shkurtër tre mujor, ku ata mësojnë bazat e profesionit. "Kam gjetur mësues shumë të mirë atje, dhe ata shpjeguan gjithçka mjaft qartë."

“Ne shpesh kritikohemi, gjoja manualet tona të trajnimit nuk janë plotësisht të përditësuara, ka pasaktësi. Por kurset përditësohen vazhdimisht dhe mësuesit flasin gjithmonë për risitë. Nga grupet që unë drejtoj, shumë gjejnë punë pas tremujorit të parë. Sigurisht, zakonisht këta janë njerëz me përvojë programimi, - thotë Andrey, - "Nga ana tjetër, të gjitha njohuritë nuk mund të përcillen në një kurs. Ndërveprimi i klientit të rrjetit në jetë nuk mund të përshtatet në dhjetë leksione dy-orëshe. Dhe nëse shkoni vetëm në kurse dhe nuk bëni asgjë tjetër, atëherë nuk do të keni njohuri të mjaftueshme. Nëse studioni çdo ditë gjatë gjithë vitit, atëherë me këtë ritëm vetëm dembelët nuk do të gjejnë punë. Sepse kërkesa në profesion është shumë e lartë.”

Çfarë të prisni nëse dëshironi të bëheni një zhvillues iOS

Ju mund të shihni më së shumti vendet e fundit te lira për zhvilluesit e iOS dhe abonohuni në të reja.

Punë

Por as Marat dhe as Boris nuk gjetën punë kaq lehtë.

“Disa firma të mëdha kanë zhvilluar prej kohësh aplikacione iOS në Objective-C dhe vazhdojnë të ruajnë bazën e vjetër të kodit. Fatkeqësisht, nuk kam një argument bindës për t'i detyruar ata të përdorin ekskluzivisht Swift. Sidomos ata që përdorin rregullin "mos prek atë që funksionon", thotë Marat, "Pak vëmendje i kushtohet drejtimit të Objektivit-C në Geekbrains. Është më shumë i natyrës informative. Por çdo kompani për të cilën intervistova pyeti për Objective-C. Dhe duke qenë se studimet e mia janë të përqendruara në Swift, si puna ime e mëparshme, kam marrë refuzime në intervista.”

"Pas studimeve, unë dija vetë vetëm bazat më sipërfaqësore, me ndihmën e të cilave mund të krijoja aplikacionin më të thjeshtë", thotë Boris. "Për punë, natyrisht, nuk mjaftonte, por isha i lumtur për këtë. Ishte e vështirë të gjeje një punë në Irkutsk. Për të qenë më të saktë - aspak. Vendosa të kërkoj në qytete të tjera. Për sa i përket numrit të vendeve të lira, Krasnodari, Moska dhe Shën Petersburgu rezultuan të ishin më të rëndësishmet. Vendosa të shkoj në Shën Petersburg - më afër Evropës.

Por gjithçka doli të ishte jo aq rozë. Edhe një i ri do të falet për atë që nuk mund ta dijë. Nuk kam gjetur ende punë. Unë jam duke punuar për "faleminderit", duke fituar përvojë. E kuptoj që kjo nuk është ajo që doja, por jam i interesuar dhe kjo më shtyn. Unë dua të fitoj njohuri."

Andrey beson se të sapoardhurit duhet të kërkojnë më shumë për stazhe sesa punë. Nëse keni shumë pak njohuri, atëherë është normale që praktika të jetë e papaguar. Andrey këshillon të aplikoni për vende të lira pune të vogla në kompani të mëdha ku procesi i punës është vendosur tashmë.

“Kur të kuptoni se si funksionon procesi i zhvillimit të softuerit, do të bëhet shumë më e lehtë për të lundruar dhe për të gjetur punë të mëtejshme, në varësi të dëshirave tuaja. Disa njerëz shkojnë në zhvillim të pavarur, bëjnë lojëra për veten e tyre, i ngarkojnë ato në dyqan dhe fitojnë para nga ato vetë. Disa punojnë për një kompani të madhe me rregulla strikte. Disa njerëz fitojnë para në studiot e vogla që prodhojnë softuer të personalizuar dhe atje ata mund të shikojnë të gjithë procesin - nga krijimi i një projekti nga e para deri tek dërgimi i tij në dyqan."

Pagat

Paga e një zhvilluesi iOS, si çdo tjetër, varet nga pyetja "Moska apo Rusia". Por për shkak të specifikave të industrisë - shumë punë në distancë, mundësi për zhvendosje dhe punë jo në tregun rajonal - numrat po i afrohen gjithnjë e më shumë njëri-tjetrit.

Çfarë të prisni nëse dëshironi të bëheni një zhvillues iOS

Sipas kalkulatorit të pagave My Circle, paga mesatare e një zhvilluesi iOS është pak më e ulët 140 000 rubla.

"Një i ri në një nivel shumë të ulët shpesh punon falas ose për para simbolike - 20-30 mijë rubla. Nëse një i ri merret me qëllim në pozicionin e tij, ai do të marrë nga 50 në 80 mijë. Të mesmet marrin nga 100 në 150, e ndonjëherë edhe deri në 200. Të moshuarit nuk marrin më pak se 200. Unë mendoj se rroga e tyre është rreth 200-300. Dhe për drejtuesit e ekipeve, në përputhje me rrethanat, është mbi 300.

Çfarë të prisni nëse dëshironi të bëheni një zhvillues iOS

Intervistat

“Intervista e parë u zhvillua në Skype. Për habinë time, ishte Google, - kujton Boris, - atëherë sapo isha zhvendosur në Shën Petersburg dhe fillova të kërkoja punë. Kam marrë një aplikim për një pozicion zhvilluesi iOS. Jo i ri, jo i mesëm, jo ​​i moshuar - thjesht një zhvillues. U kënaqa dhe fillova të komunikoj me menaxherin. Më kërkuan të kryeja një detyrë teknike: Më duhej të shkruaja një aplikim për shaka për Chuck Norris. Unë e shkrova atë. Ata më thanë se gjithçka ishte mirë dhe caktuan një intervistë në internet.

Ne thirrëm njëri-tjetrin. Më foli një vajzë e bukur. Por ata nuk bënë asnjë pyetje në lidhje me aftësinë gjuhësore - vetëm probleme të ndryshme logjike, për shembull, "Ora është 15:15, sa gradë janë midis akrepave të orës dhe minutës?" ose "Një postim është 10 metra i gjatë, një kërmilli zvarritet 3 metra lart gjatë ditës dhe zbret 1 metër gjatë natës. Për sa ditë do të zvarritet deri në majë?“, dhe disa të tjera të ngjashme.

Pastaj kishte pyetje shumë të çuditshme - pse e dua Apple dhe si ndihem për Tim Cook. Unë thashë që kompania në tërësi është pozitive, por më tepër negative ndaj tij, sepse për të janë të rëndësishme paratë, jo produktet.

Kur filluan pyetjet rreth Swift-it, njohuritë e mia ishin të mjaftueshme vetëm për modelet e programimit dhe bazat e OOP. I thamë lamtumirë, një javë më vonë më thirrën dhe më thanë që nuk isha i përshtatshëm. Në fakt, unë fitova përvojë të madhe nga kjo: keni nevojë për njohuri, keni nevojë për shumë prej tyre - si teori ashtu edhe praktikë."

Andrey thotë se “Gjëja e parë që pyeten të gjithë gjatë një interviste është cikli i jetës së kontrollorit. Atyre u pëlqen shumë të kërkojnë një model të thjeshtë programimi. Ata patjetër do të pyesin për përvojën tuaj duke përdorur bibliotekat e njohura. Do të ketë patjetër një pyetje në lidhje me ndryshimet në Llojet e Vlerave Swift nga Llojet e Referencës, për Numërimin Automatik të Referencave dhe menaxhimin e kujtesës. Ata mund të pyesin se si e kanë implementuar ruajtjen e të dhënave në aplikacione dhe nëse kanë zbatuar kërkesat e rrjetit. Ata do të pyesin për bazat e REST dhe JSON. Juniorit nuk do t'i kërkohen gjëra dhe hollësi specifike. Të paktën nuk po pyes”.

Boris kishte një eksperiencë ndryshe: “Edhe kur kërkova praktikë, kryeja detyrat teknike dhe thashë se rroga nuk ishte e rëndësishme për mua, për sa kohë që mjaftonte për të marrë një apartament me qira, përsëri më refuzuan. Kam lexuar artikuj, u përpoqa të kuptoja se çfarë i duhet një rekrutuesi nga një i sapoardhur. Por ata kryesisht dështuan në teori. Për disa arsye, ata bënë pyetje nga ligat kryesore që nuk kanë të bëjnë me të ardhurit.”

Marati ishte më me fat. Tani punon në një kompani transporti dhe është i vetëm në krye të departamentit të iOS, ndërkohë që vazhdon studimet në fakultet. “Duke qenë se unë jam i vetmi përgjegjës për iOS, puna ime vlerësohet vetëm nga aftësia ime për të zbatuar detyrat që më janë caktuar, dhe jo nga njohuritë e mia në teori.”

Komuniteti

Andrey jeton në Nizhny Novgorod dhe thotë se edhe atje është formuar një komunitet i madh. Një herë e një kohë, ai ishte një zhvillues mbështetës në Python, por miqtë e tij e tërhoqën zvarrë në zhvillimin e celularëve - dhe tani ai vetë inkurajon të gjithë ta bëjnë këtë.

“Komuniteti global zakonisht komunikon përmes Twitter. Njerëzit shkruajnë bloget e tyre, regjistrojnë video në Youtube, ftojnë njëri-tjetrin në podkaste. Një ditë pata një pyetje në lidhje me një prezantim ku foli drejtuesi i ekipit të HQTrivia. Kjo është një lojë kuiz amerikane që luhet njëkohësisht nga disa milionë njerëz. I shkrova në Twitter, ai m'u përgjigj, biseduam dhe e falënderova. Komuniteti është jashtëzakonisht miqësor, gjë që është e mrekullueshme.”

Lista e literaturës së rekomanduarNiveli fillestar:

Niveli mesatar:

Niveli i avancuar:

Burimi: www.habr.com

Shto një koment