Hva du kan forvente hvis du vil bli iOS-utvikler

Hva du kan forvente hvis du vil bli iOS-utvikler

Fra utsiden av iOS kan utvikling virke som en lukket klubb. For å fungere trenger du definitivt en Apple-datamaskin, økosystemet er tett kontrollert av ett selskap. Innenfra kan du også noen ganger høre motsetninger – noen sier at Objective-C-språket er gammelt og klønete, og andre sier at det nye Swift-språket er for grovt.

Likevel går utviklere inn i dette området, og når de først er der, er de fornøyde.

Denne gangen fortalte Marat Nurgaliev og Boris Pavlov oss om deres erfaring - hvordan de lærte yrket, hvordan de bestod de første intervjuene, hvorfor de fikk avslag. Og Andrey Antropov, dekan, fungerte som en ekspert Fakultet for iOS-utvikling hos GeekBrains.

I 2016 kom Marat Nurgaliev fra Astrakhan-regionen for å få jobb som mobilutvikler i et lokalt TV-selskap. Dette var hans første intervju. Han hadde nettopp kommet tilbake fra hæren, uten praksis og erfaring, etter å ha glemt til og med teorien som han allerede hadde problemer med. Marats eneste erfaring innen mobilutvikling var oppgaven hans om å analysere informasjonslekkasjestrømmer gjennom Android-applikasjoner. På intervjuet ble han spurt om studiene, OOP og annen teori, men Marat klarte ikke å skjule hullene i kunnskapen.

Han ble imidlertid ikke nektet, men fikk en praktisk oppgave - å implementere å vise en liste over nyheter ved hjelp av API om to uker. Både for iOS og Android. "Hvis jeg hadde noen erfaring med Android, fantes det ikke engang et verktøy for å lage en iOS-versjon. iOS-applikasjonsutviklingsmiljøet er bare tilgjengelig på Mac. Men to uker senere kom jeg tilbake og viste hva jeg kunne gjøre på Android. Med iOS måtte jeg finne ut av det med en gang. Til slutt tok de meg. Da bodde jeg i Astrakhan. Enhver IT-jobb med lønn over tjue passet meg.»

Hvem er iOS-utviklere?

Mobilutviklere lager applikasjoner for enhver bærbar enhet. Smarttelefoner, nettbrett, smartklokker og alle andre plattformer som støtter Android eller iOS. De grunnleggende prinsippene for mobilutvikling er ikke forskjellige fra konvensjonell utvikling, men på grunn av spesifikke verktøy har den blitt skilt i en egen retning. Den bruker sine egne verktøy, programmeringsspråk og rammeverk.

"For å jobbe med iOS trenger du en MacBook, fordi bare den har det nødvendige Xcode-utviklingsmiljøet. Det er gratis og distribueres gjennom AppStore. For å installere må du ha din Apple-ID og ingenting annet. I Xcode kan du utvikle applikasjoner for alt - telefon, nettbrett, klokke. Det er en innebygd simulator og editor for alt, sier Andrey Antropov, dekan for iOS-utviklingsavdelingen hos GeekBrains.

"Men utviklingsmiljøet kan installeres på Windows hvis du bruker Hackintosh. Dette er et fungerende, men rundkjøringsalternativ - ingen av de seriøse utviklerne gjør dette. Nybegynnere kjøper en gammel MacBook. Og de erfarne har vanligvis råd til den nyeste modellen.»

Språk - Swift eller Objective-C

Nesten all iOS-utvikling gjøres ved hjelp av programmeringsspråket Swift. Det dukket opp for fem år siden og erstatter nå gradvis det gamle Objective-C-språket, som Apple har brukt i alle sine applikasjoner i mer enn 30 år.

"En enorm kodebase har blitt samlet i Objective-C, så det er fortsatt behov for utviklere på begge språk, avhengig av selskapet, dets oppgaver og applikasjoner. Søknader skrevet for mange år siden er basert på Objective-C. Og alle nye prosjekter er utviklet i Swift som standard. Nå gjør Apple mye for å gjøre samtidig utvikling for telefon, nettbrett, klokke og MacBook så praktisk som mulig. Den samme koden kan kompileres og kjøres overalt. Dette skjedde ikke før. For iOS utviklet vi i Swift, for MacOS brukte vi Objective-C.»

Ifølge Andrey er Swift et veldig enkelt språk som er vennlig for nybegynnere. Det er strengt skrevet, noe som lar deg fange mange feil på prosjektkompileringsstadiet, og feil kode vil rett og slett ikke fungere.

"Objective-C er et ganske gammelt språk - på samme alder som C++-språket. På den tiden da det ble utviklet, var kravene til språk helt annerledes. Da Swift kom ut, var den buggy, funksjonaliteten var begrenset, og syntaksen var grov. Og folk hadde hendene fulle med Objective-C. Den har blitt forbedret i mange år, alle feilene der er rettet. Men nå synes jeg Swift er like god som Objective-C. Selv om til og med Apple fortsatt bruker begge i sine prosjekter. Språkene er stort sett utskiftbare og utfyller hverandre. Strukturer og objekter av ett språk kan transformeres til objekter og strukturer av et annet språk. Det er godt å kjenne til begge alternativene, men for nybegynnere virker Objective-C ofte skremmende og forvirrende."

trening

"I min første jobb trente sjefen min meg, hjalp meg med å implementere og sette opp prosjektet," sier Marat, "Men det er vanskelig å jobbe på Android og iOS samtidig. Det tar tid å bygge om, bytte fra prosjekt til prosjekt, fra språk til språk. Til slutt bestemte jeg meg for at jeg måtte velge én retning og studere den. Jeg ble solgt på Xcodes grensesnitt og Swifts enkle syntaks."

Marat gikk inn i iOS-utviklingsavdelingen hos GeekBrains. Til å begynne med var det veldig enkelt, for han kunne mange ting av arbeidserfaring. Årskurset er delt inn i fire kvartaler. I følge Andrey gir den første bare det aller grunnleggende: «Grunnlaget for Swift-språket, kunnskap om grunnleggende rammeverk, nettverk, datalagring, applikasjonslivssyklus, kontroller, grunnleggende arkitekturer, hovedbiblioteker som alle bruker, multithreading og parallellitet i applikasjoner."

Andre kvartal legger til Objective-C. Det gjennomføres et kurs om arkitektur og grunnleggende programmeringsmønstre. I tredje kvartal lærer de riktig stil å skrive kode. Den forklarer hva en fabrikk er, hvordan man skriver tester riktig, lager prosjekter, hva Git-Flow er, kontinuerlig integrasjon gjennom Fast Lane. Fjerde og siste kvartal er dedikert til teamarbeid, praktiske oppgaver og praksisplasser.

"Det første kvartalet var enkelt," sier Marat, "men så begynte jeg å lære programmering i Objective-C, studerte designmønstre, prinsippene for Solid, Git-Flow, prosjektarkitektur, Unit- og UI-testing av applikasjoner, sette opp tilpasset animasjon - og så ble det interessant å studere.»

"Det startet ikke veldig greit for meg hos GeekBrains," sier Boris Pavlov, og veien hans til iOS-utvikling generelt var ikke den mest direkte. Gutten ble oppdratt av sin bestemor. Hun var arkitekt, matematiker og designer og innpodet Boris en kjærlighet til design, lærte ham å tegne for hånd og tegne. Onkelen hans var systemadministrator og interesserte nevøen sin i datamaskiner.

Boris var en utmerket student, men mistet interessen for å studere og forlot skolen etter ni klassetrinn. Etter college begynte han å sykle, og datamaskiner bleknet i bakgrunnen. Men en dag fikk Boris en ryggmargsskade, som hindret ham i å fortsette idrettskarrieren.

Han begynte å studere C++ med en lærer ved Irkutsk Institute of Solar-Terrestrial Physics. Så ble jeg interessert i spillutvikling og prøvde å bytte til C#. Og til slutt, som Marat, ble han betatt av Swift-språket.

«Jeg bestemte meg for å ta det gratis introduksjonskurset på GeekBrains. For å være ærlig var han veldig kjedelig, treg og uforståelig," minnes Boris, "læreren snakket om funksjonene i språket, men skyndte seg fra ett emne til et annet uten å avsløre essensen. Da kurset var over, skjønte jeg fortsatt ingenting.»

Derfor meldte Boris seg etter introduksjonskurset ikke på en årelang opplæring, men på et kort tre måneders kurs, hvor de underviser i det helt grunnleggende i yrket. "Jeg fant veldig gode lærere der, og de forklarte alt ganske tydelig."

«Vi blir ofte kritisert, angivelig er opplæringsmanualene våre ikke helt oppdaterte, det er unøyaktigheter. Men kursene oppdateres hele tiden, og lærerne snakker alltid om innovasjoner. Av gruppene jeg leder, finner mange jobb etter første kvartal. Selvfølgelig er dette vanligvis folk med programmeringserfaring,” sier Andrey, “På den annen side kan ikke all kunnskap formidles i ett kurs. Nettverksklientinteraksjon i livet kan ikke passes inn i ti to-timers forelesninger. Og hvis du bare går på kurs og ikke gjør noe annet, har du ikke nok kunnskap. Hvis du studerer hver dag hele året, vil bare de late ikke få jobb i dette tempoet. Fordi etterspørselen i yrket er veldig høy.»

Hva du kan forvente hvis du vil bli iOS-utvikler

Du kan se det meste siste ledige stillinger for iOS-utviklere og abonner på nye.

Arbeid

Men verken Marat eller Boris fant arbeid så lett.

«Noen store firmaer har lenge utviklet iOS-applikasjoner i Objective-C, og fortsetter å opprettholde den gamle kodebasen. Dessverre har jeg ikke et overbevisende argument for å tvinge dem til å bruke Swift utelukkende. Spesielt de som bruker regelen «ikke rør det som fungerer», sier Marat, «Lite oppmerksomhet blir viet til Objective-C-retningen hos Geekbrains. Det er mer av informasjonskarakter. Men alle selskapene jeg intervjuet for spurte om Objective-C. Og siden studiene mine er fokusert på Swift, som mitt tidligere arbeid, fikk jeg avslag på intervjuer.»

"Etter å ha studert, visste jeg på egenhånd bare det mest overfladiske grunnleggende, ved hjelp av det kunne jeg lage den enkleste applikasjonen," sier Boris "For arbeid var det selvfølgelig ikke nok, men jeg var glad for dette. Det var vanskelig å finne jobb i Irkutsk. For å være mer presis - ikke i det hele tatt. Jeg bestemte meg for å se i andre byer. Når det gjelder antall ledige stillinger, viste det seg at Krasnodar, Moskva og St. Petersburg var de mest aktuelle. Jeg bestemte meg for å reise til St. Petersburg – nærmere Europa.

Men alt viste seg å ikke være så rosenrødt. Selv en junior vil bli tilgitt for det han ikke kan vite. Jeg har ikke funnet en jobb ennå. Jeg jobber for "takk", for å få erfaring. Jeg forstår at dette ikke er det jeg ønsket, men jeg er interessert, og dette driver meg. Jeg ønsker å få kunnskap."

Andrey mener at nykommere heller bør se etter praksisplasser enn jobb. Hvis du har svært lite kunnskap, er det normalt at praksisplassen er ulønnet. Andrey gir råd til å søke juniorvikariater til store bedrifter der arbeidsprosessen allerede er etablert.

«Når du forstår hvordan programvareutviklingsprosessen fungerer, vil det bli mye lettere å navigere og finne videre arbeid, avhengig av dine ønsker. Noen mennesker går inn i selvstendig utvikling, lager spill for seg selv, laster dem opp til butikken og tjener penger på dem selv. Noen jobber for et stort selskap med strenge regler. Noen tjener penger i små studioer som lager tilpasset programvare, og der kan de se hele prosessen – fra å lage et prosjekt fra bunnen av til å levere det til butikken.»

Lønn

Lønnen til en iOS-utvikler, som alle andre, avhenger av spørsmålet "Moskva eller Russland". Men på grunn av bransjens spesifikasjoner – mye fjernarbeid, muligheter for flytting og arbeid som ikke er i det regionale markedet – nærmer tallene seg i økende grad hverandre.

Hva du kan forvente hvis du vil bli iOS-utvikler

I følge My Circle-lønnskalkulatoren er gjennomsnittslønnen til en iOS-utvikler litt mindre 140 000 rubler.

"En junior på et veldig lavt nivå jobber ofte gratis eller for symbolske penger - 20-30 tusen rubler. Hvis en junior blir målrettet tatt til sin stilling, vil han motta fra 50 til 80 tusen. Mellomste får fra 100 til 150, og noen ganger til og med opptil 200. Seniorer får ikke mindre enn 200. Jeg tror lønnen deres er rundt 200-300. Og for teamledere er det følgelig over 300.»

Hva du kan forvente hvis du vil bli iOS-utvikler

Intervjuer

«Det første intervjuet fant sted på Skype. Til min overraskelse var det Google,” minnes Boris, “da hadde jeg nettopp flyttet til St. Petersburg og begynt å lete etter arbeid. Jeg mottok en søknad om en iOS-utviklerstilling. Ikke junior, ikke mellom, ikke senior - bare en utvikler. Jeg var glad og begynte å korrespondere med sjefen. Jeg ble bedt om å fullføre en teknisk oppgave: Jeg måtte skrive en søknad om vitser om Chuck Norris. Jeg skrev det. De fortalte meg at alt var bra og planla et nettintervju.

Vi ringte hverandre. En hyggelig jente snakket med meg. Men de stilte ingen spørsmål om språkkunnskaper - bare ulike logiske problemer, for eksempel "Klokken er 15:15, hvor mange grader er det mellom time- og minuttvisere?" sneglen kryper 10 meter opp om dagen, og går ned 3 meter om natten.» Om hvor mange dager vil hun krype til toppen?”, og et par lignende.

Så var det veldig merkelige spørsmål - hvorfor jeg elsker Apple og hvordan jeg føler for Tim Cook. Jeg sa at selskapet som helhet er positivt, men heller negativt mot ham, fordi penger er viktig for ham, ikke produkter.

Da spørsmålene om Swift begynte, var kunnskapen min bare nok til å programmere mønstre og det grunnleggende om OOP. Vi tok farvel, en uke senere ringte de meg tilbake og sa at jeg ikke passet. Egentlig fikk jeg enorm erfaring fra dette: du trenger kunnskap, du trenger mye av det – både teori og praksis.»

Andrey sier at "det første alle blir spurt under et intervju er livssyklusen til kontrolleren. De liker virkelig å be om et enkelt programmeringsmønster. De vil definitivt spørre om din erfaring med å bruke populære biblioteker. Det vil definitivt være et spørsmål om forskjellene i Swift-verdityper fra referansetyper, om automatisk referansetelling og minneadministrasjon. De kan spørre hvordan de implementerte datalagring i applikasjoner, og om de implementerte nettverksforespørsler. De vil spørre om det grunnleggende om REST og JSON. Junioren vil ikke bli spurt om spesifikke ting og finesser. Jeg spør i hvert fall ikke."

Boris hadde en annen opplevelse: «Selv når jeg spurte om praksisplasser, fullførte tekniske oppgaver og sa at lønnen ikke var viktig for meg, så lenge det var nok å leie en leilighet, fikk jeg likevel avslag. Jeg leste artikler, prøvde å forstå hva en rekrutterer trenger fra en nykommer. Men de feilet stort sett på teorier. Av en eller annen grunn stilte de spørsmål fra de store ligaene som ikke angår nykommere.»

Marat var heldigere. Nå jobber han i et transportfirma og er alene ansvarlig for iOS-avdelingen, mens han fortsetter studiene ved fakultetet. "Siden jeg er den eneste som er ansvarlig for iOS, vurderes arbeidet mitt bare av min evne til å implementere oppgavene som er tildelt meg, og ikke av min kunnskap om teori."

Samfunnet

Andrey bor i Nizhny Novgorod og sier at det har dannet seg et stort fellesskap selv der. En gang i tiden var han backend-utvikler i Python, men vennene hans dro ham inn i mobilutvikling – og nå oppfordrer han selv alle til å gjøre det.

"Det globale samfunnet kommuniserer vanligvis via Twitter. Folk skriver sine egne blogger, spiller inn videoer på Youtube, inviterer hverandre til podcaster. En dag hadde jeg et spørsmål om en presentasjon der teamlederen for HQTrivia snakket. Dette er et amerikansk quizspill som spilles samtidig av flere millioner mennesker. Jeg skrev til ham på Twitter, han svarte meg, vi snakket, og jeg takket ham. Samfunnet er ekstremt vennlig, noe som er flott.»

Liste over anbefalt litteraturBegynnernivå:

Gjennomsnittlig nivå:

Avansert nivå:

Kilde: www.habr.com

Legg til en kommentar