Mire számíthat, ha iOS fejlesztő szeretne lenni

Mire számíthat, ha iOS fejlesztő szeretne lenni

Az iOS-en kívülről a fejlesztés zárt klubnak tűnhet. A munkához feltétlenül szükség van egy Apple számítógépre, az ökoszisztémát egy cég szigorúan felügyeli. Belülről néha ellentmondásokat is hallani – egyesek szerint az Objective-C nyelv régi és ügyetlen, mások szerint az új Swift nyelv túl durva.

Ennek ellenére a fejlesztők betérnek erre a területre, és ha ott vannak, elégedettek.

Ezúttal Marat Nurgaliev és Boris Pavlov mesélt tapasztalataikról – hogyan tanulták meg a szakmát, hogyan adták át első interjúikat, miért kaptak visszautasítást. Andrej Antropov dékán pedig szakértőként járt el iOS Fejlesztési Kar a GeekBrainsnél.

2016-ban Marat Nurgaliev Astrakhan régióból érkezett, hogy mobilfejlesztőként dolgozzon egy helyi televíziós társaságnál. Ez volt az első interjúja. Nemrég tért vissza a hadseregből, gyakorlat és tapasztalat nélkül, még az elméletet is elfelejtette, amivel már akkor is gondjai voltak. Marat egyetlen mobilfejlesztési tapasztalata az Android-alkalmazásokon keresztüli információszivárgás-áramlások elemzésével foglalkozó diplomamunkája volt. Az interjún a tanulmányairól, az OOP-ról és más elméletekről faggatták, de Marat nem tudta elrejteni tudása hiányosságait.

Nem utasították el azonban, hanem gyakorlati feladatot kapott – két hét alatt valósítsa meg a hírlista megjelenítését az API segítségével. iOS-re és Androidra egyaránt. „Ha volt bármilyen tapasztalatom Androiddal kapcsolatban, még eszköz sem volt iOS-verzió létrehozására. Az iOS alkalmazásfejlesztő környezet csak Mac rendszeren érhető el. De két héttel később visszatértem, és megmutattam, mit tudok csinálni Androidon. Az iOS-sel menet közben kellett rájönnöm. A végén elvittek. Aztán Astrakhanban éltem. Bármilyen informatikai munka húsz feletti fizetéssel megfelelt nekem.”

Kik az iOS fejlesztők?

A mobilfejlesztők bármilyen hordozható eszközhöz készítenek alkalmazásokat. Okostelefonok, táblagépek, okosórák és minden más platform, amely támogatja az Android vagy iOS rendszert. A mobilfejlesztés alapelvei nem térnek el a hagyományos fejlesztéstől, de a speciális eszközök miatt külön irányvonalra vált. Saját eszközöket, programozási nyelveket és keretrendszereket használ.

„Ahhoz, hogy iOS-el dolgozhass, MacBook kell, mert csak az rendelkezik a szükséges Xcode fejlesztői környezettel. Ingyenes és az AppStore-on keresztül terjeszthető. A telepítéshez rendelkeznie kell az Apple ID-vel, semmi mással. Az Xcode-ban bármire fejleszthetsz alkalmazásokat - telefonra, táblagépre, órára. Mindenhez van beépített szimulátor és szerkesztő” – mondja Andrey Antropov, a GeekBrains iOS fejlesztési részlegének dékánja.

„A fejlesztői környezet azonban telepíthető Windowsra, ha Hackintosh-t használ. Ez egy működő, de körbejárható lehetőség – ezt a komoly fejlesztők egyike sem csinálja. A kezdők régi MacBookot vesznek. A tapasztaltak pedig általában megengedhetik maguknak a legújabb modellt.”

Nyelvek - Swift vagy Objective-C

Az iOS szinte minden fejlesztése a Swift programozási nyelv használatával történik. Öt éve jelent meg, és most fokozatosan felváltja a régi Objective-C nyelvet, amelyet az Apple több mint 30 éve minden alkalmazásában használ.

„Óriási kódbázis halmozódott fel az Objective-C-ben, így továbbra is szükség van mindkét nyelvű fejlesztőkre, a cégtől, annak feladataitól és alkalmazásaitól függően. A sok évvel ezelőtt írt pályázatok az Objective-C-n alapulnak. És minden új projekt alapértelmezés szerint Swiftben készül. Az Apple most sokat tesz azért, hogy a telefon, tablet, óra és MacBook egyidejű fejlesztése a lehető legkényelmesebb legyen. Ugyanaz a kód lefordítható és mindenhol futtatható. Ez korábban nem fordult elő. iOS-re Swiftben, MacOS-ra Objective-C-t használtunk.”

Andrey szerint a Swift egy nagyon egyszerű nyelv, amely barátságos kezdőknek. Szigorúan gépelt, ami lehetővé teszi, hogy sok hibát észleljen a projekt összeállítási szakaszában, és a helytelen kód egyszerűen nem fog működni.

„Az Objective-C egy meglehetősen régi nyelv – egyidős a C++ nyelvvel. Kifejlesztésének idején a nyelvekre vonatkozó követelmények teljesen mások voltak. Amikor a Swift megjelent, hibás volt, a funkcionalitás korlátozott volt, a szintaxis pedig durva. És az embereknek tele volt a kezük az Objective-C-vel. Sok éven át javították, minden hibát kijavítottak. De most úgy gondolom, hogy a Swift olyan jó, mint az Objective-C. Bár még az Apple is mindkettőt használja projektjeiben. A nyelvek nagyrészt felcserélhetők és egymást kiegészítik. Egy nyelv struktúrái és objektumai átalakíthatók egy másik nyelv objektumaivá és struktúráivá. Jó tudni mindkét lehetőséget, de a kezdők számára az Objective-C gyakran félelmetesnek és zavarónak tűnik."

edzés

„Első munkahelyemen a főnököm betanított, segített a projekt megvalósításában és felállításában – mondja Marat –, de Androidon és iOS-en egyszerre dolgozni nehéz. Időbe telik az újjáépítés, projektről projektre, nyelvről nyelvre váltani. Végül úgy döntöttem, hogy választanom kell egy irányt és azt tanulmányoznom. Eladtak az Xcode felületén és a Swift egyszerű szintaxisán."

Marat belépett a GeekBrains iOS-fejlesztési részlegére. Eleinte nagyon könnyű volt, mert sok mindent tudott munkatapasztalatból. Az éves kurzus négy negyedévre oszlik. Andrey szerint az első csak az alapokat adja meg: „A Swift nyelv alapja, az alapvető keretrendszerek ismerete, a hálózat, az adattárolás, az alkalmazások életciklusa, a vezérlő, az alapvető architektúrák, a fő könyvtárak, amelyeket mindenki használ, a többszálúság és párhuzamosság. pályázatok.”

A második negyedévben hozzáadódik az Objective-C. Tanfolyamot tartanak az építészetről és az alapvető programozási mintákról. A harmadik negyedévben megtanítják a helyes kódírási stílust. Elmagyarázza, mi az a gyár, hogyan kell helyesen teszteket írni, projekteket létrehozni, mi az a Git-Flow, folyamatos integráció a Fast Lane-en keresztül. A negyedik és az utolsó negyedév a csapatmunkának, a gyakorlati feladatoknak és a szakmai gyakorlatoknak szól.

„Az első negyedév könnyű volt – mondja Marat –, de aztán elkezdtem programozni az Objective-C-ben, tanulmányoztam a tervezési mintákat, a Solid, a Git-Flow alapelveit, a projektarchitektúrát, az alkalmazások egység- és felhasználói felületének tesztelését, egyéni animáció beállítását. - és akkor én Érdekes lett tanulni."

„Számomra nem indult túl simán a GeekBrainsnél” – mondja Boris Pavlov, és az iOS-fejlesztéshez vezető útja általában nem volt a legközvetlenebb. A fiút a nagymamája nevelte. Építész, matematikus és tervező volt, és elültette Borisban a tervezés szeretetét, megtanította kézzel rajzolni és rajzolni. Nagybátyja rendszergazda volt, és unokaöccsét érdekelte a számítógépek.

Boris kiváló tanuló volt, de elvesztette érdeklődését a tanulás iránt, és kilenc osztály után otthagyta az iskolát. Az egyetem után kerékpározni kezdett, és a számítógépek háttérbe szorultak. De egy napon Boris gerincsérülést kapott, ami megakadályozta, hogy folytassa sportkarrierjét.

C++-t kezdett tanulni az irkutszki Nap-Földfizikai Intézet tanáránál. Aztán elkezdett érdekelni a játékfejlesztés, és megpróbáltam váltani C#-ra. És végül Marathoz hasonlóan őt is magával ragadta a Swift nyelv.

„Úgy döntöttem, hogy elvégzem a GeekBrains ingyenes bevezető tanfolyamát. Hogy őszinte legyek, nagyon unalmas volt, lomha és érthetetlen – emlékszik vissza Boris –, a tanár beszélt a nyelv sajátosságairól, de egyik témáról a másikra rohant anélkül, hogy a lényeget felfedte volna. Amikor a tanfolyam véget ért, még mindig nem értettem semmit.”

Ezért a bevezető tanfolyam után Boris nem egy éves képzésre iratkozott be, hanem egy rövid három hónapos tanfolyamra, ahol a szakma alapjait tanítják. „Nagyon jó tanárokat találtam ott, és mindent világosan elmagyaráztak.”

„Gyakran kritizálnak bennünket, állítólag a képzési kézikönyveink nem teljesen naprakészek, vannak pontatlanságok. De a kurzusokat folyamatosan frissítik, és a tanárok mindig újdonságokról beszélnek. Az általam vezetett csoportok közül sokan az első negyedév után találnak munkát. Természetesen általában programozási tapasztalattal rendelkező emberekről van szó – mondja Andrey –, másrészt nem lehet minden tudást átadni egy tanfolyamon. A hálózati kliens interakció az életben nem fér bele tíz kétórás előadásba. És ha csak tanfolyamokra jársz és nem csinálsz mást, akkor nem lesz elég tudásod. Ha egész évben minden nap tanulsz, akkor ebben a tempóban csak a lusták nem kapnak munkát. Mert nagyon nagy a kereslet a szakmában.”

Mire számíthat, ha iOS fejlesztő szeretne lenni

A legtöbbet láthatod legújabb állásajánlatok iOS-fejlesztőknek, és előfizethet újakra.

Munka

De sem Marat, sem Boris nem talált ilyen könnyen munkát.

„Néhány nagy cég már régóta fejleszt iOS alkalmazásokat az Objective-C-ben, és továbbra is fenntartja a régi kódbázist. Sajnos nincs nyomós érvem arra, hogy kizárólag a Swift használatára kényszerítsem őket. Különösen azok, akik azt a szabályt használják, hogy „ne nyúlj ahhoz, ami működik” – mondja Marat. „Kevés figyelmet fordítanak az Objective-C irányára a Geekbrainsnél. Ez inkább információs jellegű. De minden cég, amelynek interjút készítettem, rákérdezett az Objective-C-re. És mivel a tanulmányaim a Swiftre összpontosítanak, akárcsak korábbi munkáim, az interjúkon elutasítást kaptam.”

„A tanulás után egyedül a legfelszínesebb alapokat tudtam, amelyek segítségével a legegyszerűbb alkalmazást tudtam elkészíteni – mondja Boris. – A munkához persze ez nem volt elég, de ennek örültem. Irkutszkban nehéz volt munkát találni. Pontosabban - egyáltalán nem. Úgy döntöttem, hogy más városokban keresek. A betöltetlen állások számát tekintve Krasznodar, Moszkva és Szentpétervár bizonyult a legrelevánsabbnak. Úgy döntöttem, hogy Szentpétervárra megyek - közelebb Európához.

De kiderült, hogy nem minden olyan rózsás. Még egy juniornak is megbocsátják azt, amit nem tudhat. Még nem találtam munkát. "Köszönöm"-ért dolgozom, tapasztalatokat gyűjtök. Megértem, hogy nem ezt akartam, de érdekel, és ez hajt. Tudást akarok szerezni."

Andrey úgy véli, hogy az újonnan érkezőknek inkább szakmai gyakorlatot kell keresniük, mint munkát. Ha nagyon kevés tudással rendelkezik, akkor normális, hogy a szakmai gyakorlatot nem fizetik. Andrey azt tanácsolja, hogy jelentkezzenek junior állásokra olyan nagy cégeknél, ahol a munkafolyamat már kialakult.

„Ha megérti, hogyan működik a szoftverfejlesztési folyamat, sokkal könnyebb lesz eligazodni és további munkát találni, a vágyaitól függően. Vannak, akik önálló fejlesztésbe kezdenek, játékokat készítenek maguknak, feltöltik a boltba, és maguk is pénzt szereznek belőlük. Vannak, akik szigorú szabályokkal rendelkező nagy cégnél dolgoznak. Vannak, akik kis stúdiókban keresnek pénzt, amelyek egyedi szoftvereket készítenek, és ott végignézhetik a teljes folyamatot – a projekt elkészítésétől kezdve a boltba szállításig.”

fizetés

Az iOS-fejlesztő fizetése, mint bármely más, a „Moszkva vagy Oroszország” kérdéstől függ. Ám az iparág sajátosságai miatt - sok távmunka, költözési lehetőségek és nem a regionális piacon történő munkavégzés - a számok egyre inkább közelednek egymáshoz.

Mire számíthat, ha iOS fejlesztő szeretne lenni

A My Circle bérkalkulátor szerint egy iOS fejlesztő átlagkeresete valamivel kevesebb 140 000 rubelt.

„Egy nagyon alacsony szinten lévő junior gyakran ingyen vagy szimbolikus pénzért dolgozik - 20-30 ezer rubel. Ha egy juniort céltudatosan visznek a pozíciójába, akkor 50-80 ezret kap. A középsők 100-tól 150-ig, sőt néha akár 200-ig is kapnak. Az idősebbek nem kapnak 200-nál kevesebbet. Szerintem 200-300 körül van a fizetésük. És ennek megfelelően a csapatvezetők esetében ez több mint 300.”

Mire számíthat, ha iOS fejlesztő szeretne lenni

interjúk

„Az első interjú Skype-on zajlott. Meglepetésemre a Google volt – emlékszik vissza Boris –, majd éppen Szentpétervárra költöztem, és elkezdtem munkát keresni. Jelentkezést kaptam iOS fejlesztői pozícióra. Nem junior, nem közép, nem idősebb - csak egy fejlesztő. Megörültem, és levelezni kezdtem a menedzserrel. Egy technikai feladat elvégzésére kértek fel: kérvényt kellett írnom Chuck Norris-ról szóló viccekre. Én írtam. Azt mondták, minden nagyszerű, és megbeszéltek egy online interjút.

Felhívtuk egymást. Egy kedves lány beszélt hozzám. De nem tettek fel kérdéseket a nyelvtudással kapcsolatban, csak különböző logikai problémákat, például: „Az idő 15:15, hány fok van az óra- és percmutató között?” vagy „Egy oszlop 10 méter hosszú, a a csiga nappal 3 métert kúszik felfelé, és éjszaka 1 métert ereszkedik le." Hány nap múlva kúszik fel a csúcsra?”, és még pár hasonló.

Aztán nagyon furcsa kérdések merültek fel – miért szeretem az Apple-t, és mit érzek Tim Cook iránt. Azt mondtam, hogy a cég egésze pozitív, de inkább negatív vele szemben, mert neki a pénz a fontos, nem a termékek.

Amikor a Swifttel kapcsolatos kérdések elkezdődtek, tudásom csak a programozási mintákhoz és az OOP alapjaihoz volt elegendő. Elköszöntünk, egy hét múlva visszahívtak és azt mondták, hogy nem vagyok alkalmas. Valójában óriási tapasztalatot szereztem ebből: tudás kell, sok kell belőle – elmélet és gyakorlat egyaránt.”

Andrey azt mondja, hogy „az első dolog, amit mindenkitől megkérdeznek az interjú során, az a vezérlő életciklusa. Nagyon szeretnek valami egyszerű programozási mintát kérni. Biztosan rákérdeznek a népszerű könyvtárak használatával kapcsolatos tapasztalataira. Minden bizonnyal lesz kérdés a Swift-értéktípusok és a referenciatípusok közötti különbségekkel, az automatikus referenciaszámlálással és a memóriakezeléssel kapcsolatban. Megkérdezhetik, hogyan valósították meg az adattárolást az alkalmazásokban, és hogy megvalósítottak-e hálózati kéréseket. A REST és a JSON alapjairól fognak kérdezni. A juniortól nem kérnek konkrét dolgokat és finomságokat. Én legalábbis nem kérdezek."

Borisznak más volt a tapasztalata: „Még akkor is elutasítottak, amikor szakmai gyakorlatot kértem, technikai feladatokat végeztem, és azt mondtam, hogy nem fontos számomra a fizetés, amíg elég volt egy lakás bérlésére. Olvastam cikkeket, próbáltam megérteni, mire van szüksége egy toborzónak egy újonctól. De többnyire az elméleteken buktak meg. Valamiért olyan kérdéseket tettek fel a nagy ligáktól, amelyek nem érintik az újoncokat.”

Marat szerencsésebb volt. Jelenleg egy közlekedési vállalatnál dolgozik, és egyedül az iOS tanszékért felelős, miközben a karon folytatja tanulmányait. "Mivel egyedül én vagyok felelős az iOS-ért, a munkámat csak az alapján értékelik, hogy mennyire vagyok képes végrehajtani a rám bízott feladatokat, és nem az elméleti ismereteim alapján."

Közösség

Andrej Nyizsnyij Novgorodban él, és azt mondja, hogy még ott is nagy közösség alakult ki. Valamikor a Python háttérfejlesztője volt, de barátai belerángatták a mobilfejlesztésbe – most pedig ő maga buzdít mindenkit erre.

„A globális közösség általában a Twitteren keresztül kommunikál. Az emberek saját blogokat írnak, videókat rögzítenek a Youtube-on, meghívják egymást podcastokra. Egy nap kérdésem volt egy előadással kapcsolatban, ahol a HQTrivia csapatvezetője beszélt. Ez egy amerikai kvízjáték, amelyet több millió ember játszik egyszerre. Írtam neki Twitteren, válaszolt, beszélgettünk, én pedig megköszöntem. A közösség rendkívül barátságos, ami nagyszerű.”

Az ajánlott irodalom jegyzékeKezdő szint:

Átlagos szint:

Haladó szint:

Forrás: will.com

Hozzászólás