Hvad kan du forvente, hvis du vil blive iOS-udvikler

Hvad kan du forvente, hvis du vil blive iOS-udvikler

Udefra af iOS kan udvikling virke som en lukket klub. For at arbejde har du helt sikkert brug for en Apple-computer; økosystemet er tæt styret af én virksomhed. Indefra kan man også nogle gange høre modsætninger – nogle siger, at Objective-C-sproget er gammelt og klodset, og andre siger, at det nye Swift-sprog er for groft.

Ikke desto mindre går udviklere ind på dette område, og når de først er der, er de tilfredse.

Denne gang fortalte Marat Nurgaliev og Boris Pavlov os om deres oplevelse - hvordan de lærte faget, hvordan de bestod deres første interviews, hvorfor de fik afslag. Og Andrey Antropov, dekan, fungerede som ekspert Fakultet for iOS-udvikling hos GeekBrains.

I 2016 kom Marat Nurgaliev fra Astrakhan-regionen for at få et job som mobiludvikler hos et lokalt tv-selskab. Dette var hans første interview. Han var netop vendt tilbage fra hæren, uden øvelse og erfaring, efter at have glemt selv teorien, som han allerede havde problemer med. Marats eneste erfaring med mobiludvikling var hans afhandling om at analysere informationslækagestrømme gennem Android-applikationer. Ved interviewet blev han spurgt om sine studier, OOP og anden teori, men Marat var ikke i stand til at skjule hullerne i sin viden.

Han fik dog ikke afslag, men fik en praktisk opgave - at implementere visning af en liste over nyheder ved hjælp af API'et om to uger. Både til iOS og Android. "Hvis jeg havde nogen erfaring med Android, var der ikke engang et værktøj til at oprette en iOS-version. iOS-applikationsudviklingsmiljøet er kun tilgængeligt på Mac. Men to uger senere kom jeg tilbage og viste, hvad jeg kunne på Android. Med iOS var jeg nødt til at finde ud af det med det samme. Til sidst tog de mig. Så boede jeg i Astrakhan. Ethvert it-job med en løn over tyve passede mig.”

Hvem er iOS-udviklere?

Mobiludviklere laver applikationer til enhver bærbar enhed. Smartphones, tablets, smartwatches og alle andre platforme, der understøtter Android eller iOS. De grundlæggende principper for mobiludvikling adskiller sig ikke fra konventionel udvikling, men på grund af specifikke værktøjer er den blevet adskilt i en separat retning. Den bruger sine egne værktøjer, programmeringssprog og rammer.

“For at arbejde med iOS har du brug for en MacBook, for kun den har det nødvendige Xcode-udviklingsmiljø. Det er gratis og distribueres gennem AppStore. For at installere skal du have dit Apple ID og intet andet. I Xcode kan du udvikle applikationer til alt - telefon, tablet, ur. Der er en indbygget simulator og editor til alt,” siger Andrey Antropov, dekan for iOS-udviklingsafdelingen hos GeekBrains.

“Men udviklingsmiljøet kan installeres på Windows, hvis du bruger Hackintosh. Dette er en fungerende, men rundkørselsmulighed - ingen af ​​de seriøse udviklere gør dette. Begyndere køber en gammel MacBook. Og de erfarne har som regel råd til den nyeste model.”

Sprog - Swift eller Objective-C

Næsten al iOS-udvikling foregår ved hjælp af Swift-programmeringssproget. Det dukkede op for fem år siden og erstatter nu gradvist det gamle Objective-C-sprog, som Apple har brugt i alle sine applikationer i mere end 30 år.

"Der er blevet samlet en enorm kodebase i Objective-C, så der er stadig behov for udviklere på begge sprog, afhængigt af virksomheden, dens opgaver og applikationer. Ansøgninger skrevet for mange år siden er baseret på Objective-C. Og alle nye projekter udvikles som standard i Swift. Nu gør Apple meget for at gøre samtidig udvikling til en telefon, tablet, ur og MacBook så praktisk som muligt. Den samme kode kan kompileres og køres overalt. Dette skete ikke før. Til iOS udviklede vi i Swift, til MacOS brugte vi Objective-C."

Ifølge Andrey er Swift et meget simpelt sprog, der er venligt for begyndere. Det er strengt skrevet, hvilket giver dig mulighed for at fange mange fejl på projektkompileringsstadiet, og forkert kode vil simpelthen ikke fungere.

"Objective-C er et ret gammelt sprog - på samme alder som C++-sproget. På det tidspunkt, hvor det blev udviklet, var kravene til sprog helt anderledes. Da Swift kom ud, var den buggy, funktionaliteten var begrænset, og syntaksen var grov. Og folk havde hænderne fulde med Objective-C. Det er blevet forbedret i mange år, alle fejl der er blevet rettet. Men nu synes jeg, at Swift er lige så god som Objective-C. Selvom selv Apple stadig bruger begge i sine projekter. Sprogene er stort set udskiftelige og gensidigt komplementære. Et sprogs strukturer og genstande kan omdannes til genstande og strukturer i et andet sprog. Det er godt at kende begge muligheder, men for begyndere virker Objective-C ofte skræmmende og forvirrende."

uddannelse

"På mit første job trænede min chef mig, hjalp mig med at implementere og opsætte projektet," siger Marat, "Men det er svært at arbejde på Android og iOS på samme tid. Det tager tid at genopbygge, skifte fra projekt til projekt, fra sprog til sprog. Til sidst besluttede jeg, at jeg skulle vælge én retning og studere den. Jeg blev solgt på Xcodes interface og Swifts simple syntaks."

Marat kom ind i iOS-udviklingsafdelingen hos GeekBrains. I starten var det meget nemt, for han kunne mange ting af arbejdserfaring. Årsforløbet er opdelt i fire kvartaler. Ifølge Andrey giver den første kun det helt grundlæggende: "Grundlaget for Swift-sproget, viden om grundlæggende rammer, netværk, datalagring, applikationslivscyklus, controller, grundlæggende arkitekturer, hovedbiblioteker, som alle bruger, multithreading og parallelisme i applikationer."

Andet kvartal tilføjer Objective-C. Der gennemføres et kursus om arkitektur og grundlæggende programmeringsmønstre. I tredje kvartal underviser de i den korrekte stil at skrive kode. Den forklarer, hvad en fabrik er, hvordan man skriver tests korrekt, laver projekter, hvad Git-Flow er, Kontinuerlig Integration gennem Fast Lane. Fjerde og sidste kvartal er dedikeret til teamwork, praktiske opgaver og praktikophold.

"Det første kvartal var nemt," siger Marat, "men så begyndte jeg at lære programmering i Objective-C, studerede designmønstre, principperne for Solid, Git-Flow, projektarkitektur, Unit- og UI-test af applikationer, opsætning af tilpasset animation - og så blev det interessant at studere."

"Det startede ikke super glat for mig hos GeekBrains," siger Boris Pavlov, og hans vej til iOS-udvikling generelt var ikke den mest direkte. Drengen blev opdraget af sin bedstemor. Hun var arkitekt, matematiker og designer og indgydte Boris en kærlighed til design, lærte ham at tegne i hånden og tegne. Hans onkel var systemadministrator og interesserede sin nevø i computere.

Boris var en fremragende elev, men mistede interessen for at studere og forlod skolen efter ni klasser. Efter college begyndte han at cykle, og computere faldt i baggrunden. Men en dag fik Boris en rygmarvsskade, som forhindrede ham i at fortsætte sin sportskarriere.

Han begyndte at studere C++ med en lærer ved Irkutsk Institute of Solar-Terrestrial Physics. Så blev jeg interesseret i spiludvikling og forsøgte at skifte til C#. Og endelig blev han ligesom Marat betaget af Swift-sproget.

“Jeg besluttede at tage det gratis introduktionskursus hos GeekBrains. For at være ærlig var han meget kedelig, træg og uforståelig," husker Boris, "læreren talte om sprogets træk, men skyndte sig fra et emne til et andet uden at afsløre essensen. Da kurset sluttede, forstod jeg stadig intet."

Derfor meldte Boris sig efter introduktionskurset ikke ind på en årelang uddannelse, men på et kort tre måneders kursus, hvor de underviser i fagets helt grundlæggende. "Jeg fandt meget gode lærere der, og de forklarede alt ganske klart."

”Vi bliver ofte kritiseret, vores træningsmanualer er angiveligt ikke helt opdaterede, der er unøjagtigheder. Men kurserne bliver løbende opdateret, og lærerne taler altid om innovationer. Af de grupper, som jeg leder, finder mange job efter første kvartal. Selvfølgelig er det normalt folk med programmeringserfaring,” siger Andrey, “På den anden side kan al viden ikke formidles i ét kursus. Netværksklientinteraktion i livet kan ikke indpasses i ti to-timers foredrag. Og hvis du kun går på kurser og ikke laver andet, så har du ikke nok viden. Hvis du studerer hver dag hele året, er det i dette tempo kun de dovne, der ikke får et job. For efterspørgslen i faget er meget høj.”

Hvad kan du forvente, hvis du vil blive iOS-udvikler

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

Arbejde

Men hverken Marat eller Boris fandt arbejde så let.

"Nogle store firmaer har længe udviklet iOS-applikationer i Objective-C og fortsætter med at vedligeholde den gamle kodebase. Desværre har jeg ikke et overbevisende argument for at tvinge dem til udelukkende at bruge Swift. Især dem, der bruger reglen "rør ikke ved det, der virker," siger Marat, "Der er lidt opmærksomhed på Objective-C-retningen hos Geekbrains. Det er mere af informativ karakter. Men alle virksomheder, jeg interviewede for, spurgte om Objective-C. Og da mine studier er fokuseret på Swift, som mit tidligere arbejde, fik jeg afslag ved samtaler.”

"Efter at have studeret vidste jeg alene det mest overfladiske grundlæggende, ved hjælp af hvilket jeg kunne skabe den enkleste applikation," siger Boris. "Til arbejde var det selvfølgelig ikke nok, men jeg var glad for dette. Det var svært at finde et job i Irkutsk. For at være mere præcis - slet ikke. Jeg besluttede at kigge i andre byer. Med hensyn til antallet af ledige stillinger viste sig Krasnodar, Moskva og Skt. Petersborg at være de mest relevante. Jeg besluttede at tage til St. Petersborg - tættere på Europa.

Men alt viste sig ikke at være så rosenrødt. Selv en junior vil blive tilgivet for det, han ikke kan vide. Jeg har ikke fundet et job endnu. Jeg arbejder for "tak", for at få erfaring. Jeg forstår, at det ikke var det, jeg ville, men jeg er interesseret, og det driver mig. Jeg vil gerne få viden."

Andrey mener, at nytilkomne bør søge praktikpladser frem for job. Hvis du har meget lidt viden, så er det normalt, at praktikopholdet er ulønnet. Andrey rådgiver om at søge juniorstillinger til store virksomheder, hvor arbejdsprocessen allerede er fastlagt.

”Når du forstår, hvordan softwareudviklingsprocessen fungerer, bliver det meget nemmere at navigere og finde videre arbejde, afhængigt af dine ønsker. Nogle mennesker går i selvstændig udvikling, laver spil til sig selv, uploader dem til butikken og tjener penge på dem selv. Nogle arbejder for en stor virksomhed med strenge regler. Nogle mennesker tjener penge i små studier, der laver skræddersyet software, og der kan de se hele processen – fra at skabe et projekt fra bunden til at levere det til butikken.”

løn

Lønnen til en iOS-udvikler afhænger som enhver anden af ​​spørgsmålet "Moskva eller Rusland". Men på grund af branchens særlige forhold - meget fjernarbejde, muligheder for flytning og arbejde, der ikke er på det regionale marked - nærmer tallene sig i stigende grad hinanden.

Hvad kan du forvente, hvis du vil blive iOS-udvikler

Ifølge My Circle-lønberegneren er gennemsnitslønnen for en iOS-udvikler lidt mindre 140 000 rubler.

"En junior på et meget lavt niveau arbejder ofte gratis eller for symbolske penge - 20-30 tusind rubler. Hvis en junior målrettet tages til sin stilling, vil han modtage fra 50 til 80 tusind. Mellemstore modtager fra 100 til 150, og nogle gange endda op til 200. Seniorer modtager ikke mindre end 200. Jeg tror, ​​deres løn er omkring 200-300. Og for holdledere er det derfor over 300."

Hvad kan du forvente, hvis du vil blive iOS-udvikler

Interviews

“Det første interview fandt sted på Skype. Til min overraskelse var det Google," husker Boris, "så var jeg lige flyttet til St. Petersborg og begyndte at søge arbejde. Jeg modtog en ansøgning til en iOS-udviklerstilling. Ikke junior, ikke mellem, ikke senior - bare en udvikler. Jeg var glad og begyndte at korrespondere med lederen. Jeg blev bedt om at udføre en teknisk opgave: Jeg skulle skrive en ansøgning om vittigheder om Chuck Norris. Jeg skrev det. De fortalte mig, at alt var fantastisk og planlagde et onlineinterview.

Vi ringede til hinanden. En sød pige talte til mig. Men de stillede ingen spørgsmål om sprogfærdigheder - kun forskellige logiske problemer, for eksempel "Klokken er 15:15, hvor mange grader er der mellem time- og minutviserne?" eller "En stolpe er 10 meter lang, en snegl kravler 3 meter op om dagen og går 1 meter ned om natten.” Om hvor mange dage vil hun kravle til tops?”, og et par mere lignende.

Så var der meget mærkelige spørgsmål - hvorfor jeg elsker Apple, og hvordan jeg har det med Tim Cook. Jeg sagde, at virksomheden som helhed er positiv, men temmelig negativ over for ham, fordi penge er vigtige for ham, ikke produkter.

Da spørgsmål om Swift begyndte, var min viden kun nok til at programmere mønstre og det grundlæggende i OOP. Vi sagde farvel, en uge senere ringede de tilbage og sagde, at jeg ikke var egnet. Faktisk fik jeg enorm erfaring fra dette: du har brug for viden, du har brug for meget af det - både teori og praksis.”

Andrey siger, at "det første, alle bliver spurgt under et interview, er controllerens livscyklus. De kan virkelig godt lide at bede om et simpelt programmeringsmønster. De vil helt sikkert spørge om din oplevelse med at bruge populære biblioteker. Der vil helt sikkert være et spørgsmål om forskellene i Swift Value Types fra Reference Types, om Automatic Reference Counting og memory management. De kan spørge, hvordan de implementerede datalagring i applikationer, og om de implementerede netværksanmodninger. De vil spørge om det grundlæggende i REST og JSON. Junioren vil ikke blive bedt om specifikke ting og finesser. Jeg spørger i hvert fald ikke."

Boris havde en anderledes oplevelse: ”Selv da jeg bad om praktikpladser, gennemførte tekniske opgaver og sagde, at lønnen ikke var vigtig for mig, så længe det var nok at leje en lejlighed, fik jeg stadig afslag. Jeg læste artikler, forsøgte at forstå, hvad en rekrutterer har brug for fra en nytilkommen. Men de fejlede for det meste på teorier. Af en eller anden grund stillede de spørgsmål fra de store ligaer, som ikke vedrører nytilkomne.”

Marat var heldigere. Nu arbejder han i et transportfirma og er alene ansvarlig for iOS-afdelingen, mens han fortsætter sine studier på fakultetet. "Da jeg er den eneste ansvarlige for iOS, vurderes mit arbejde kun ud fra min evne til at implementere de opgaver, jeg har fået tildelt, og ikke af min viden om teori."

Fællesskab

Andrey bor i Nizhny Novgorod og siger, at selv der er der dannet et stort fællesskab. Engang var han backend-udvikler i Python, men hans venner slæbte ham med i mobiludvikling – og nu opfordrer han selv alle til at gøre det.

"Det globale samfund kommunikerer normalt via Twitter. Folk skriver deres egne blogs, optager videoer på Youtube, inviterer hinanden til podcasts. En dag havde jeg et spørgsmål om en præsentation, hvor teamlederen for HQTrivia talte. Dette er et amerikansk quizspil, der spilles samtidigt af flere millioner mennesker. Jeg skrev til ham på Twitter, han svarede mig, vi talte, og jeg takkede ham. Samfundet er ekstremt venligt, hvilket er fantastisk.”

Liste over anbefalet litteraturBegynder niveau:

Gennemsnitligt niveau:

Avanceret niveau:

Kilde: www.habr.com

Tilføj en kommentar