Wat u kunt verwachten als u een iOS-ontwikkelaar wilt worden

Wat u kunt verwachten als u een iOS-ontwikkelaar wilt worden

Van buiten iOS kan ontwikkeling een gesloten club lijken. Om te werken heb je zeker een Apple-computer nodig; het ecosysteem wordt nauwlettend gecontroleerd door één bedrijf. Van binnenuit kun je soms ook tegenstrijdigheden horen: sommigen zeggen dat de Objective-C-taal oud en onhandig is, en anderen zeggen dat de nieuwe Swift-taal te grof is.

Niettemin gaan ontwikkelaars op dit gebied in en zijn ze, eenmaal daar, tevreden.

Deze keer vertelden Marat Nurgaliev en Boris Pavlov ons over hun ervaringen - hoe ze het vak leerden, hoe ze hun eerste sollicitatiegesprekken doorbrachten, waarom ze werden afgewezen. En Andrey Antropov, decaan, trad op als deskundige Faculteit iOS-ontwikkeling bij GeekBrains.

In 2016 kwam Marat Nurgaliev uit de regio Astrakan werken als mobiele ontwikkelaar bij een lokaal televisiebedrijf. Dit was zijn eerste interview. Hij was net teruggekeerd uit het leger, zonder oefening en ervaring, en was zelfs de theorie vergeten, waarmee hij al problemen had. Marats enige ervaring met mobiele ontwikkeling was zijn proefschrift over het analyseren van informatielekken via Android-applicaties. Tijdens het interview werd hem gevraagd naar zijn studies, OOP en andere theorieën, maar Marat kon de hiaten in zijn kennis niet verbergen.

Hij werd echter niet geweigerd, maar kreeg een praktische taak: het binnen twee weken implementeren van het weergeven van een nieuwslijst met behulp van de API. Zowel voor iOS als Android. “Als ik enige ervaring had met Android, was er niet eens een tool om een ​​iOS-versie te maken. De ontwikkelomgeving voor iOS-applicaties is alleen beschikbaar op Mac. Maar twee weken later kwam ik terug en liet zien wat ik op Android kon doen. Met iOS moest ik het meteen uitzoeken. Uiteindelijk hebben ze mij meegenomen. Toen woonde ik in Astrachan. Elke IT-baan met een salaris boven de twintig paste bij mij.”

Wie zijn iOS-ontwikkelaars?

Mobiele ontwikkelaars maken applicaties voor elk draagbaar apparaat. Smartphones, tablets, smartwatches en alle andere platforms die Android of iOS ondersteunen. De fundamentele principes van mobiele ontwikkeling verschillen niet van conventionele ontwikkeling, maar dankzij specifieke hulpmiddelen is deze in een aparte richting opgedeeld. Het maakt gebruik van eigen tools, programmeertalen en frameworks.

“Om met iOS te werken heb je een MacBook nodig, want alleen die beschikt over de benodigde Xcode-ontwikkelomgeving. Het is gratis en wordt verspreid via de AppStore. Om te installeren heeft u uw Apple ID nodig en niets anders. In Xcode kun je applicaties voor alles ontwikkelen: telefoon, tablet, horloge. Er is voor alles een ingebouwde simulator en editor”, zegt Andrey Antropov, decaan van de iOS-ontwikkelingsafdeling bij GeekBrains.

“Maar de ontwikkelomgeving kan op Windows worden geïnstalleerd als je Hackintosh gebruikt. Dit is een werkende, maar omslachtige optie - geen van de serieuze ontwikkelaars doet dit. Beginners kopen een oude MacBook. En de ervaren mensen kunnen zich meestal het nieuwste model veroorloven.”

Talen - Swift of Objective-C

Bijna alle iOS-ontwikkeling wordt gedaan met behulp van de programmeertaal Swift. Het verscheen vijf jaar geleden en vervangt nu geleidelijk de oude Objective-C-taal, die Apple al meer dan 30 jaar in al zijn applicaties gebruikt.

“Er is een enorme codebasis opgebouwd in Objective-C, dus ontwikkelaars in beide talen zijn nog steeds nodig, afhankelijk van het bedrijf, zijn taken en applicaties. Applicaties die vele jaren geleden zijn geschreven, zijn gebaseerd op Objective-C. En alle nieuwe projecten worden standaard in Swift ontwikkeld. Nu doet Apple er veel aan om het gelijktijdig ontwikkelen van een telefoon, tablet, horloge en MacBook zo gemakkelijk mogelijk te maken. Dezelfde code kan overal worden gecompileerd en uitgevoerd. Dit gebeurde niet eerder. Voor iOS ontwikkelden we in Swift, voor MacOS gebruikten we Objective-C.”

Volgens Andrey is Swift een heel eenvoudige taal die vriendelijk is voor beginners. Het is strikt getypt, waardoor u veel fouten kunt ontdekken in de fase van het compileren van het project, en onjuiste code zal eenvoudigweg niet werken.

“Objective-C is een vrij oude taal - even oud als de C++-taal. Op het moment dat het werd ontwikkeld, waren de vereisten voor talen compleet anders. Toen Swift uitkwam, bevatte het fouten, was de functionaliteit beperkt en was de syntaxis ruw. En mensen hadden hun handen vol aan Objective-C. Het is al vele jaren verbeterd, alle fouten zijn gecorrigeerd. Maar nu denk ik dat Swift net zo goed is als Objective-C. Hoewel zelfs Apple beide nog steeds in zijn projecten gebruikt. De talen zijn grotendeels uitwisselbaar en complementair aan elkaar. Structuren en objecten van de ene taal kunnen worden omgezet in objecten en structuren van een andere taal. Het is goed om beide opties te kennen, maar voor beginners lijkt Objective-C vaak intimiderend en verwarrend."

opleiding

“Bij mijn eerste baan heeft mijn baas mij opgeleid en geholpen bij het implementeren en opzetten van het project”, zegt Marat, “Maar tegelijkertijd werken op Android en iOS is lastig. Het kost tijd om opnieuw op te bouwen, om van project naar project te schakelen, van taal naar taal. Uiteindelijk besloot ik dat ik één richting moest kiezen en die moest bestuderen. Ik was verkocht door de Xcode-interface en de eenvoudige syntaxis van Swift."

Marat ging naar de iOS-ontwikkelingsafdeling bij GeekBrains. In het begin was dat heel gemakkelijk, omdat hij veel dingen wist uit werkervaring. De jaarlijkse cursus is verdeeld in vier kwartalen. Volgens Andrey geeft de eerste alleen de basis: “De basis van de Swift-taal, kennis van basisframeworks, netwerken, gegevensopslag, applicatielevenscyclus, controller, basisarchitecturen, belangrijkste bibliotheken die iedereen gebruikt, multithreading en parallellisme in toepassingen.”

Het tweede kwartaal voegt Objective-C toe. Er wordt een cursus gegeven over architectuur en basisprogrammeerpatronen. In het derde kwartaal leren ze de juiste schrijfstijl van code. Het legt uit wat een fabriek is, hoe je tests correct schrijft, projecten maakt, wat Git-Flow is, continue integratie via Fast Lane. Het vierde en laatste kwartaal staat in het teken van teamwerk, praktijkopdrachten en stages.

“Het eerste kwartaal was gemakkelijk”, zegt Marat, “maar daarna begon ik te leren programmeren in Objective-C, ontwerppatronen te bestuderen, de principes van Solid, Git-Flow, projectarchitectuur, Unit- en UI-testen van applicaties, het opzetten van aangepaste animaties - en toen werd het interessant om te studeren."

“Het begon voor mij bij GeekBrains niet zo soepel”, zegt Boris Pavlov, en zijn weg naar iOS-ontwikkeling in het algemeen was niet de meest directe. De jongen werd opgevoed door zijn grootmoeder. Ze was architect, wiskundige en ontwerper en bracht Boris liefde voor design bij, leerde hem met de hand tekenen en tekenen. Zijn oom was systeembeheerder en interesseerde zijn neef voor computers.

Boris was een uitstekende leerling, maar verloor zijn interesse in studeren en verliet de school na negen klassen. Na zijn studie ging hij fietsen, en computers verdwenen naar de achtergrond. Maar op een dag kreeg Boris een dwarslaesie, waardoor hij zijn sportcarrière niet kon voortzetten.

Hij begon C++ te studeren bij een leraar aan het Irkutsk Institute of Solar-Terrestrial Physics. Toen raakte ik geïnteresseerd in gameontwikkeling en probeerde over te stappen naar C#. En ten slotte was hij, net als Marat, gefascineerd door de Swift-taal.

“Ik besloot de gratis introductiecursus bij GeekBrains te volgen. Om eerlijk te zijn, hij was erg saai, traag en onbegrijpelijk”, herinnert Boris zich, “de leraar sprak over de kenmerken van de taal, maar haastte zich van het ene onderwerp naar het andere zonder de essentie te onthullen. Toen de cursus afgelopen was, begreep ik er nog steeds niets van.”

Daarom heeft Boris zich na de introductiecursus niet ingeschreven voor een opleiding van een jaar, maar voor een korte cursus van drie maanden, waarin ze de basisbeginselen van het vak onderwijzen. “Ik heb daar hele goede leraren gevonden, en ze legden alles heel duidelijk uit.”

“We krijgen vaak kritiek, zogenaamd zijn onze trainingshandleidingen niet helemaal up-to-date, er staan ​​onjuistheden in. Maar de cursussen worden voortdurend bijgewerkt en docenten praten altijd over innovaties. Van de groepen die ik leid, vinden velen na het eerste kwartaal een baan. Meestal zijn dit natuurlijk mensen met programmeerervaring”, zegt Andrey. “Aan de andere kant kan niet alle kennis in één cursus worden overgebracht. Netwerkcliëntinteractie in het leven kan niet worden samengevat in tien lezingen van twee uur. En als je alleen maar cursussen volgt en verder niets doet, dan heb je niet genoeg kennis. Als je het hele jaar elke dag studeert, zullen in dit tempo alleen luie mensen geen baan krijgen. Omdat de vraag in het vak heel hoog is.”

Wat u kunt verwachten als u een iOS-ontwikkelaar wilt worden

Je ziet het meeste nieuwste vacatures voor iOS-ontwikkelaars en abonneer je op nieuwe.

Werken

Maar noch Marat noch Boris vonden zo gemakkelijk werk.

“Sommige grote bedrijven hebben al lang iOS-applicaties in Objective-C ontwikkeld en blijven de oude codebasis behouden. Helaas heb ik geen overtuigend argument om hen te dwingen uitsluitend Swift te gebruiken. Vooral degenen die de regel hanteren ‘raak niet aan wat werkt’, zegt Marat, ‘er wordt bij Geekbrains weinig aandacht besteed aan de Objective-C-richting. Het heeft meer een informatief karakter. Maar elk bedrijf waarvoor ik interviewde, vroeg naar Objective-C. En omdat mijn studie zich, net als mijn vorige werk, op Swift richt, kreeg ik afwijzingen op sollicitatiegesprekken.”

"Na mijn studie kende ik alleen de meest oppervlakkige basisprincipes, met behulp waarvan ik de eenvoudigste toepassing kon creëren", zegt Boris. "Voor werk was het natuurlijk niet genoeg, maar ik was er blij mee. Het was moeilijk om een ​​baan te vinden in Irkoetsk. Om preciezer te zijn: helemaal niet. Ik besloot in andere steden te gaan kijken. Qua aantal vacatures bleken Krasnodar, Moskou en Sint-Petersburg het meest relevant. Ik besloot naar St. Petersburg te gaan - dichter bij Europa.

Maar alles bleek niet zo rooskleurig. Zelfs een jongere zal vergeven worden voor wat hij niet kan weten. Ik heb nog geen baan gevonden. Ik werk voor ‘bedankt’ en doe ervaring op. Ik begrijp dat dit niet is wat ik wilde, maar ik ben geïnteresseerd en dit drijft mij. Ik wil kennis opdoen."

Andrey is van mening dat nieuwkomers op zoek moeten gaan naar stages in plaats van naar banen. Als je heel weinig kennis hebt, is het normaal dat de stage onbetaald is. Andrey adviseert om te solliciteren op junior vacatures bij grote bedrijven waar het werkproces al is vastgelegd.

“Als je begrijpt hoe het softwareontwikkelingsproces werkt, wordt het veel gemakkelijker om te navigeren en verder werk te vinden, afhankelijk van je wensen. Sommige mensen gaan zelfstandig ontwikkelen, maken games voor zichzelf, uploaden deze naar de winkel en verdienen er zelf geld mee. Sommigen werken voor een groot bedrijf met strenge regels. Sommige mensen verdienen geld in kleine studio’s die software op maat maken, en daar kunnen ze het hele proces bekijken – van het creëren van een project vanaf het begin tot het afleveren ervan in de winkel.”

Salarissen

Het salaris van een iOS-ontwikkelaar hangt, net als elke andere, af van de vraag "Moskou of Rusland". Maar vanwege de specifieke kenmerken van de branche – veel werken op afstand, mogelijkheden voor verhuizing en werken niet op de regionale markt – naderen de cijfers elkaar steeds meer.

Wat u kunt verwachten als u een iOS-ontwikkelaar wilt worden

Volgens de My Circle-salariscalculator ligt het gemiddelde salaris van een iOS-ontwikkelaar iets lager 140 000 roebels.

“Een junior op een zeer laag niveau werkt vaak gratis of voor symbolisch geld - 20-30 duizend roebel. Als een junior doelbewust in zijn functie wordt opgenomen, ontvangt hij 50 tot 80 duizend. Middles ontvangen 100 tot 150, en soms zelfs tot 200. Senioren ontvangen niet minder dan 200. Ik denk dat hun salaris rond de 200-300 ligt. En voor teamleiders zijn dat er dus meer dan 300.”

Wat u kunt verwachten als u een iOS-ontwikkelaar wilt worden

Sollicitatiegesprekken

“Het eerste interview vond plaats via Skype. Tot mijn verbazing was het Google”, herinnert Boris zich, “toen was ik net naar Sint-Petersburg verhuisd en op zoek gegaan naar werk. Ik heb een sollicitatie ontvangen voor een functie als iOS-ontwikkelaar. Niet junior, niet midden, niet senior - gewoon een ontwikkelaar. Ik was opgetogen en begon met de manager te corresponderen. Ik werd gevraagd een technische taak uit te voeren: ik moest een aanvraag schrijven voor grappen over Chuck Norris. Ik schreef het. Ze vertelden me dat alles geweldig was en planden een online interview.

Wij hebben elkaar gebeld. Een aardig meisje sprak met mij. Maar ze stelden geen vragen over taalvaardigheid - alleen verschillende logische problemen, bijvoorbeeld: "Het is 15:15 uur, hoeveel graden zitten er tussen de uren- en minutenwijzer?" of "Een paal is 10 meter lang, een De slak kruipt overdag 3 meter omhoog en ‘s nachts daalt hij 1 meter.” Over hoeveel dagen kruipt ze naar de top?“, en nog een paar soortgelijke.

Toen waren er heel vreemde vragen: waarom ik van Apple hou en wat ik voor Tim Cook vind. Ik zei dat het bedrijf als geheel positief is, maar eerder negatief tegenover hem, omdat geld belangrijk voor hem is en niet producten.

Toen er vragen over Swift begonnen, was mijn kennis alleen voldoende voor het programmeren van patronen en de basisprincipes van OOP. We namen afscheid, een week later belden ze me terug en zeiden dat ik niet geschikt was. Eigenlijk heb ik daar enorm veel ervaring mee opgedaan: je hebt kennis nodig, je hebt er veel van nodig – zowel theorie als praktijk.”

Andrey zegt dat “het eerste wat iedereen tijdens een interview wordt gevraagd, de levenscyclus van de controller is. Ze vragen heel graag om een ​​eenvoudig programmeerpatroon. Ze zullen zeker vragen naar uw ervaringen met het gebruik van populaire bibliotheken. Er zal zeker een vraag zijn over de verschillen tussen Swift Value Types en Reference Types, over het automatisch tellen van referenties en over geheugenbeheer. Ze vragen zich misschien af ​​hoe ze gegevensopslag in applicaties hebben geïmplementeerd en of ze netwerkverzoeken hebben geïmplementeerd. Ze zullen vragen stellen over de basisprincipes van REST en JSON. Er wordt niet naar specifieke zaken en subtiliteiten van de junior gevraagd. Ik vraag het tenminste niet.”

Boris had een andere ervaring: “Zelfs toen ik om stages vroeg, technische taken uitvoerde en zei dat het salaris voor mij niet belangrijk was, zolang het maar genoeg was om een ​​appartement te huren, werd ik nog steeds geweigerd. Ik las artikelen, probeerde te begrijpen wat een recruiter nodig heeft van een nieuwkomer. Maar ze faalden meestal op theorieën. Om de een of andere reden stelden ze vragen aan de grote competities die geen betrekking hadden op nieuwkomers.”

Marat had meer geluk. Nu werkt hij bij een transportbedrijf en is hij alleen verantwoordelijk voor de iOS-afdeling, terwijl hij zijn studie aan de faculteit voortzet. “Aangezien ik de enige ben die verantwoordelijk is voor iOS, wordt mijn werk alleen beoordeeld op mijn vermogen om de mij opgedragen taken uit te voeren, en niet op mijn kennis van de theorie.”

Gemeenschap

Andrey woont in Nizjni Novgorod en zegt dat zelfs daar een geweldige gemeenschap heeft gevormd. Ooit was hij een backend-ontwikkelaar in Python, maar zijn vrienden hebben hem meegesleept in de mobiele ontwikkeling - en nu moedigt hij zelf iedereen aan om het te doen.

“De mondiale gemeenschap communiceert meestal via Twitter. Mensen schrijven hun eigen blogs, nemen video’s op op YouTube, nodigen elkaar uit voor podcasts. Op een dag had ik een vraag over een presentatie waar de teamleider van HQTrivia sprak. Dit is een Amerikaans quizspel dat door meerdere miljoenen mensen tegelijkertijd wordt gespeeld. Ik schreef hem op Twitter, hij antwoordde mij, we praatten en ik bedankte hem. De gemeenschap is uiterst vriendelijk, dat is geweldig.”

Lijst met aanbevolen literatuurBeginnersniveau:

Gemiddeld niveau:

Gevorderd niveau:

Bron: www.habr.com

Voeg een reactie