Vad du kan förvänta dig om du vill bli iOS-utvecklare

Vad du kan förvänta dig om du vill bli iOS-utvecklare

Från utsidan av iOS kan utveckling verka som en sluten klubb. För att fungera behöver du definitivt en Apple-dator; ekosystemet kontrolleras noga av ett företag. Inifrån kan man också ibland höra motsägelser – vissa säger att Objective-C-språket är gammalt och klumpigt, och andra säger att det nya Swift-språket är för grovt.

Ändå går utvecklare in på detta område och när de väl är där är de nöjda.

Den här gången berättade Marat Nurgaliev och Boris Pavlov om sin erfarenhet - hur de lärde sig yrket, hur de klarade sina första intervjuer, varför de fick avslag. Och Andrey Antropov, dekanus, agerade expert Fakulteten för iOS-utveckling på GeekBrains.

2016 kom Marat Nurgaliev från Astrakhan-regionen för att få jobb som mobilutvecklare på ett lokalt tv-bolag. Detta var hans första intervju. Han hade just återvänt från armén, utan övning och erfarenhet, efter att ha glömt till och med teorin, som han redan hade problem med. Marats enda erfarenhet av mobilutveckling var hans avhandling om att analysera informationsläckageflöden genom Android-applikationer. Vid intervjun fick han frågan om sina studier, OOP och annan teori, men Marat kunde inte dölja luckorna i sina kunskaper.

Han fick dock inte avslag, utan fick en praktisk uppgift - att implementera att visa en lista med nyheter med hjälp av API:t på två veckor. Både för iOS och Android. "Om jag hade lite erfarenhet av Android, fanns det inte ens ett verktyg för att skapa en iOS-version. iOS-applikationsutvecklingsmiljön är endast tillgänglig på Mac. Men två veckor senare kom jag tillbaka och visade vad jag kunde göra på Android. Med iOS var jag tvungen att ta reda på det direkt. Till slut tog de mig. Då bodde jag i Astrakhan. Alla IT-jobb med en lön över tjugo passade mig.”

Vilka är iOS-utvecklare?

Mobilutvecklare gör applikationer för alla bärbara enheter. Smartphones, surfplattor, smarta klockor och alla andra plattformar som stöder Android eller iOS. De grundläggande principerna för mobil utveckling skiljer sig inte från konventionell utveckling, men på grund av specifika verktyg har den separerats i en separat riktning. Den använder sina egna verktyg, programmeringsspråk och ramverk.

"För att arbeta med iOS behöver du en MacBook, eftersom bara den har den nödvändiga Xcode-utvecklingsmiljön. Det är gratis och distribueras via AppStore. För att installera behöver du ha ditt Apple-ID och inget annat. I Xcode kan du utveckla applikationer för vad som helst - telefon, surfplatta, klocka. Det finns en inbyggd simulator och editor för allt, säger Andrey Antropov, dekanus för iOS-utvecklingsavdelningen på GeekBrains.

"Men utvecklingsmiljön kan installeras på Windows om du använder Hackintosh. Detta är ett fungerande, men omvägande alternativ - ingen av de seriösa utvecklarna gör detta. Nybörjare köper en gammal MacBook. Och de erfarna har oftast råd med den senaste modellen.”

Språk - Swift eller Objective-C

Nästan all iOS-utveckling sker med hjälp av programmeringsspråket Swift. Det dök upp för fem år sedan och ersätter nu gradvis det gamla Objective-C-språket, som Apple har använt i alla sina applikationer i mer än 30 år.

"En enorm kodbas har samlats i Objective-C, så det krävs fortfarande utvecklare på båda språken, beroende på företaget, dess uppgifter och applikationer. Ansökningar som skrevs för många år sedan är baserade på Objective-C. Och alla nya projekt utvecklas i Swift som standard. Nu gör Apple mycket för att göra samtidig utveckling för en telefon, surfplatta, klocka och MacBook så bekväm som möjligt. Samma kod kan kompileras och köras överallt. Detta hände inte tidigare. För iOS utvecklade vi i Swift, för MacOS använde vi Objective-C."

Enligt Andrey är Swift ett väldigt enkelt språk som är vänligt för nybörjare. Det är strikt skrivet, vilket gör att du kan fånga många fel i projektkompileringsstadiet, och felaktig kod kommer helt enkelt inte att fungera.

"Objective-C är ett ganska gammalt språk - i samma ålder som C++-språket. Vid den tidpunkt då det utvecklades var kraven på språk helt annorlunda. När Swift kom ut var den buggig, funktionaliteten begränsad och syntaxen var grov. Och folk hade händerna fulla med Objective-C. Det har förbättrats i många år, alla fel där har rättats till. Men nu tycker jag att Swift är lika bra som Objective-C. Även om även Apple fortfarande använder båda i sina projekt. Språken är till stor del utbytbara och kompletterar varandra. Ett språks strukturer och objekt kan omvandlas till objekt och strukturer i ett annat språk. Det är bra att känna till båda alternativen, men för nybörjare verkar Objective-C ofta skrämmande och förvirrande."

träning

"På mitt första jobb utbildade min chef mig, hjälpte mig att implementera och sätta upp projektet", säger Marat, "Men att arbeta med Android och iOS samtidigt är svårt. Det tar tid att bygga om, byta från projekt till projekt, från språk till språk. Till slut bestämde jag mig för att jag behövde välja en riktning och studera den. Jag såldes på Xcodes gränssnitt och Swifts enkla syntax."

Marat gick in i iOS-utvecklingsavdelningen på GeekBrains. Till en början var det väldigt enkelt, eftersom han kunde många saker av arbetslivserfarenhet. Årskursen är uppdelad i fyra kvartal. Enligt Andrey ger den första bara grunderna: "Basen för Swift-språket, kunskap om grundläggande ramverk, nätverk, datalagring, applikationslivscykel, styrenhet, grundläggande arkitekturer, huvudbibliotek som alla använder, multithreading och parallellism i applikationer.”

Det andra kvartalet lägger till Objective-C. En kurs genomförs om arkitektur och grundläggande programmeringsmönster. Under tredje kvartalet lär de ut rätt stil att skriva kod. Den förklarar vad en fabrik är, hur man skriver tester korrekt, skapar projekt, vad Git-Flow är, Kontinuerlig Integration genom Fast Lane. Det fjärde och sista kvartalet ägnas åt lagarbete, praktiska uppgifter och praktik.

"Det första kvartalet var lätt", säger Marat, "men sedan började jag lära mig programmering i Objective-C, studera designmönster, principerna för Solid, Git-Flow, projektarkitektur, enhets- och UI-testning av applikationer, sätta upp anpassade animationer – och sedan jag Det blev intressant att studera.”

"Det började inte supersmidigt för mig på GeekBrains", säger Boris Pavlov, och hans väg till iOS-utveckling i allmänhet var inte den mest direkta. Killen är uppfostrad av sin mormor. Hon var arkitekt, matematiker och formgivare och ingav Boris en kärlek till design, lärde honom att rita för hand och rita. Hans farbror var systemadministratör och intresserade sin brorson för datorer.

Boris var en utmärkt elev, men tappade intresset för att studera och lämnade skolan efter nio klasser. Efter college började han cykla och datorer bleknade i bakgrunden. Men en dag fick Boris en ryggradsskada, vilket hindrade honom från att fortsätta sin idrottskarriär.

Han började studera C++ med en lärare vid Irkutsk Institute of Solar-Terrestrial Physics. Sedan blev jag intresserad av spelutveckling och försökte byta till C#. Och slutligen, liksom Marat, blev han fängslad av Swift-språket.

"Jag bestämde mig för att ta den kostnadsfria introduktionskursen på GeekBrains. För att vara ärlig var han väldigt tråkig, trög och oförstående”, minns Boris, ”läraren pratade om språkets egenskaper, men rusade från ett ämne till ett annat utan att avslöja kärnan. När kursen slutade förstod jag fortfarande ingenting."

Boris skrev därför efter introduktionskursen inte in på en årslång utbildning, utan på en kort tremånaderskurs, där de lär ut grunderna i yrket. "Jag hittade väldigt bra lärare där, och de förklarade allt ganska tydligt."

”Vi blir ofta kritiserade, våra utbildningsmanualer påstås inte vara helt uppdaterade, det finns felaktigheter. Men kurserna uppdateras ständigt, och lärarna pratar alltid om innovationer. Av de grupper som jag leder är det många som hittar jobb efter första kvartalet. Naturligtvis är det vanligtvis personer med programmeringserfarenhet”, säger Andrey, ”Å andra sidan kan all kunskap inte förmedlas i en kurs. Nätverksklientinteraktion i livet kan inte passa in i tio tvåtimmarsföreläsningar. Och om du bara går på kurser och inte gör något annat så har du inte tillräckligt med kunskap. Om du studerar varje dag under hela året, kommer bara de lata inte att få ett jobb i den här takten. För efterfrågan i yrket är väldigt hög.”

Vad du kan förvänta dig om du vill bli iOS-utvecklare

Du kan se det mesta senaste lediga tjänsterna för iOS-utvecklare och prenumerera på nya.

Работа

Men varken Marat eller Boris fick jobb så lätt.

"Vissa stora företag har länge utvecklat iOS-applikationer i Objective-C och fortsätter att behålla den gamla kodbasen. Tyvärr har jag inget övertygande argument för att tvinga dem att uteslutande använda Swift. Speciellt de som använder regeln "rör inte det som fungerar", säger Marat, "Lite uppmärksamhet ägnas åt Objective-C-riktningen på Geekbrains. Det är mer av informationskaraktär. Men alla företag jag intervjuade för frågade om Objective-C. Och eftersom mina studier är inriktade på Swift, liksom mitt tidigare arbete, fick jag avslag på intervjuer.”

"Efter att ha studerat kunde jag på egen hand bara de mest ytliga grunderna, med hjälp av vilka jag kunde skapa den enklaste applikationen", säger Boris. "För arbetet räckte det naturligtvis inte, men jag var glad över detta. Det var svårt att hitta ett jobb i Irkutsk. För att vara mer exakt - inte alls. Jag bestämde mig för att leta i andra städer. När det gäller antalet lediga platser visade sig Krasnodar, Moskva och St. Petersburg vara de mest relevanta. Jag bestämde mig för att åka till St Petersburg - närmare Europa.

Men allt visade sig inte vara så rosa. Även en junior kommer att bli förlåten för det han inte kan veta. Jag har inte hittat något jobb än. Jag jobbar för "tack", för att få erfarenhet. Jag förstår att det inte var det jag ville, men jag är intresserad, och det här driver mig. Jag vill skaffa mig kunskap."

Andrey menar att nyanlända borde söka praktikplatser snarare än jobb. Om du har väldigt lite kunskap är det normalt att praktiken är obetald. Andrey ger råd om att söka juniora lediga tjänster till stora företag där arbetsprocessen redan är etablerad.

”När du förstår hur mjukvaruutvecklingsprocessen fungerar blir det mycket lättare att navigera och hitta ytterligare arbete, beroende på dina önskemål. Vissa människor går in i oberoende utveckling, gör spel åt sig själva, laddar upp dem till butiken och tjänar pengar på dem själva. Vissa jobbar för ett stort företag med strikta regler. Vissa människor tjänar pengar i små studior som gör skräddarsydd mjukvara, och där kan de se hela processen – från att skapa ett projekt från grunden till att leverera det till butiken.”

Löner

Lönen för en iOS-utvecklare, som alla andra, beror på frågan "Moskva eller Ryssland". Men på grund av branschens särdrag - mycket distansarbete, möjligheter till omlokalisering och arbete som inte är på den regionala marknaden - närmar sig siffrorna alltmer varandra.

Vad du kan förvänta dig om du vill bli iOS-utvecklare

Enligt lönekalkylatorn My Circle är medellönen för en iOS-utvecklare något lägre 140 000 rubel.

"En junior på en mycket låg nivå arbetar ofta gratis eller för symboliska pengar - 20-30 tusen rubel. Om en junior målmedvetet tas till sin position kommer han att få från 50 till 80 tusen. Mellanstora får från 100 till 150, och ibland till och med upp till 200. Seniorer får inte mindre än 200. Jag tror att deras lön ligger runt 200-300. Och för teamledare är det därför över 300."

Vad du kan förvänta dig om du vill bli iOS-utvecklare

Intervjuer

"Den första intervjun ägde rum på Skype. Till min förvåning var det Google”, minns Boris, ”då hade jag precis flyttat till St. Petersburg och börjat söka arbete. Jag fick en ansökan om en iOS-utvecklartjänst. Inte junior, inte mellan, inte senior - bara en utvecklare. Jag blev glad och började korrespondera med chefen. Jag blev ombedd att slutföra en teknisk uppgift: jag var tvungen att skriva en ansökan om skämt om Chuck Norris. Jag skrev det. De berättade för mig att allt var bra och planerade en onlineintervju.

Vi ringde varandra. En trevlig tjej pratade med mig. Men de ställde inga frågor om språkkunskaper - bara olika logiska problem, till exempel "Klockan är 15:15, hur många grader är det mellan tim- och minutvisare?" eller "En stolpe är 10 meter lång, en snigeln kryper 3 meter upp på dagen och går ner 1 meter på natten.” Om hur många dagar kommer hon att krypa till toppen?”, och ytterligare ett par liknande.

Sedan kom det väldigt konstiga frågor – varför jag älskar Apple och hur jag känner för Tim Cook. Jag sa att företaget som helhet är positivt, men snarare negativt mot honom, eftersom pengar är viktiga för honom, inte produkter.

När frågorna om Swift började räckte mina kunskaper bara till för programmeringsmönster och grunderna i OOP. Vi sa hejdå, en vecka senare ringde de tillbaka och sa att jag inte var lämplig. Egentligen fick jag enorm erfarenhet av detta: du behöver kunskap, du behöver mycket av det - både teori och praktik.”

Andrey säger att "det första som alla tillfrågas under en intervju är styrenhetens livscykel. De gillar verkligen att be om ett enkelt programmeringsmönster. De kommer definitivt att fråga om din erfarenhet av att använda populära bibliotek. Det kommer definitivt att finnas en fråga om skillnaderna mellan Swift-värdetyper och referenstyper, om automatisk referensräkning och minneshantering. De kan fråga hur de implementerade datalagring i applikationer och om de implementerade nätverksbegäranden. De kommer att fråga om grunderna för REST och JSON. Junioren kommer inte att bli tillfrågad om specifika saker och finesser. Jag frågar åtminstone inte."

Boris hade en annan upplevelse: ”Även när jag bad om praktik, genomförde tekniska uppgifter och sa att lönen inte var viktig för mig, så länge det räckte med att hyra en lägenhet, fick jag ändå avslag. Jag läste artiklar, försökte förstå vad en rekryterare behöver av en nykomling. Men de misslyckades mest med teorier. Av någon anledning ställde de frågor från de stora ligorna som inte berör nykomlingar.”

Marat hade mer tur. Nu jobbar han i ett transportföretag och är ensam ansvarig för iOS-avdelningen, samtidigt som han fortsätter sina studier på fakulteten. "Eftersom jag är den enda som är ansvarig för iOS, bedöms mitt arbete endast av min förmåga att implementera de uppgifter jag tilldelats, och inte av min kunskap om teori."

Gemenskapen

Andrey bor i Nizhny Novgorod och säger att även där har en stor gemenskap bildats. En gång i tiden var han backend-utvecklare i Python, men hans vänner drog in honom i mobilutveckling – och nu uppmuntrar han själv alla att göra det.

"Det globala samhället kommunicerar vanligtvis via Twitter. Folk skriver sina egna bloggar, spelar in videor på Youtube, bjuder in varandra till poddar. En dag hade jag en fråga om en presentation där teamledaren för HQTrivia talade. Detta är ett amerikanskt frågesportspel som spelas samtidigt av flera miljoner människor. Jag skrev till honom på Twitter, han svarade mig, vi pratade och jag tackade honom. Samhället är extremt vänligt, vilket är bra.”

Lista över rekommenderad litteraturNybörjarnivå:

Genomsnittlig nivå:

Avancerad nivå:

Källa: will.com

Lägg en kommentar