Mitä odottaa, jos haluat tulla iOS-kehittäjäksi

Mitä odottaa, jos haluat tulla iOS-kehittäjäksi

iOS:n ulkopuolelta kehitys voi tuntua suljetulta klubilta. Toimiaksesi tarvitset ehdottomasti Apple-tietokoneen, ekosysteemiä valvoo tarkasti yksi yritys. Sisältä voi myös joskus kuulla ristiriitoja - toisten mielestä Objective-C-kieli on vanha ja kömpelö, ja toisten mielestä uusi Swift-kieli on liian karkea.

Siitä huolimatta kehittäjät menevät tälle alueelle ja ovat siellä tyytyväisiä.

Tällä kertaa Marat Nurgaliev ja Boris Pavlov kertoivat meille kokemuksistaan ​​- kuinka he oppivat ammatin, kuinka he läpäisivät ensimmäiset haastattelunsa, miksi he saivat kieltäytymisen. Ja dekaani Andrei Antropov toimi asiantuntijana iOS-kehityksen tiedekunta GeekBrainsissa.

Vuonna 2016 Marat Nurgaliev Astrahanin alueelta tuli töihin mobiilikehittäjäksi paikalliseen televisioyhtiöön. Tämä oli hänen ensimmäinen haastattelunsa. Hän oli juuri palannut armeijasta, ilman käytäntöä ja kokemusta, unohtaen jopa teorian, jonka kanssa hänellä oli jo ongelmia. Maratin ainoa kokemus mobiilikehityksestä oli hänen opinnäytetyönsä Android-sovellusten kautta tapahtuvien tietovuotojen analysoinnista. Haastattelussa häneltä kysyttiin opinnoistaan, OOP:sta ja muusta teoriasta, mutta Marat ei kyennyt peittämään tiedon puutteita.

Häneltä ei kuitenkaan kieltäytynyt, vaan hänelle annettiin käytännön tehtävä - toteuttaa uutisluettelon näyttäminen API:lla kahdessa viikossa. Sekä iOS:lle että Androidille. "Jos minulla oli kokemusta Androidista, ei ollut edes työkalua iOS-version luomiseen. iOS-sovelluskehitysympäristö on käytettävissä vain Macissa. Mutta kaksi viikkoa myöhemmin palasin ja näytin, mitä voin tehdä Androidilla. iOS:n kanssa minun piti selvittää se lennossa. Lopulta he veivät minut. Sitten asuin Astrakhanissa. Minulle sopisi kaikki IT-työt, joiden palkka on yli kaksikymmentä."

Keitä ovat iOS-kehittäjät?

Mobiilikehittäjät tekevät sovelluksia kaikille kannettaville laitteille. Älypuhelimet, tabletit, älykellot ja kaikki muut Android- tai iOS-käyttöjärjestelmää tukevat alustat. Mobiilikehityksen perusperiaatteet eivät poikkea tavanomaisesta kehityksestä, mutta erityisten työkalujen vuoksi se on erotettu omaan suuntaan. Se käyttää omia työkalujaan, ohjelmointikieliä ja kehyksiä.

"IOS:n kanssa työskentelyyn tarvitaan MacBook, koska vain siinä on tarvittava Xcode-kehitysympäristö. Se on ilmainen ja jaetaan AppStoren kautta. Asentaaksesi tarvitset Apple ID:si eikä mitään muuta. Xcodessa voit kehittää sovelluksia mihin tahansa - puhelimeen, tablettiin, kelloon. Kaikkeen on sisäänrakennettu simulaattori ja editori", sanoo GeekBrainsin iOS-kehitysosaston dekaani Andrey Antropov.

"Mutta kehitysympäristö voidaan asentaa Windowsiin, jos käytät Hackintoshia. Tämä on toimiva, mutta kiertävä vaihtoehto - kukaan vakavasti otettava kehittäjä ei tee tätä. Aloittelijat ostavat vanhan MacBookin. Ja kokeneemmilla on yleensä varaa uusimpaan malliin.”

Kielet - Swift tai Objective-C

Lähes kaikki iOS-kehitys tehdään Swift-ohjelmointikielellä. Se ilmestyi viisi vuotta sitten ja on nyt vähitellen korvaamassa vanhan Objective-C-kielen, jota Apple on käyttänyt kaikissa sovelluksissaan yli 30 vuoden ajan.

”Objective-C:hen on kertynyt valtava koodikanta, joten molemmilla kielillä kehittäjiä tarvitaan edelleen, riippuen yrityksestä, sen tehtävistä ja sovelluksista. Monia vuosia sitten kirjoitetut hakemukset perustuvat Objective-C:hen. Ja kaikki uudet projektit kehitetään oletuksena Swiftissä. Nyt Apple tekee paljon, jotta puhelimen, tabletin, kellon ja MacBookin samanaikainen kehitys olisi mahdollisimman kätevää. Sama koodi voidaan kääntää ja ajaa kaikkialla. Tätä ei tapahtunut aiemmin. iOS:lle kehitimme Swiftissä, MacOS:lle käytimme Objective-C:tä.

Andreyn mukaan Swift on hyvin yksinkertainen kieli, joka on ystävällinen aloittelijoille. Se on tiukasti kirjoitettu, minkä ansiosta voit havaita monia virheitä projektin käännösvaiheessa, ja väärä koodi ei yksinkertaisesti toimi.

"Objective-C on melko vanha kieli - samanikäinen kuin C++-kieli. Kun se kehitettiin, vaatimukset kielille olivat täysin erilaiset. Kun Swift ilmestyi, se oli buginen, toiminnallisuus oli rajoitettua ja syntaksi oli karkea. Ja ihmisillä oli kädet täynnä Objective-C:tä. Sitä on paranneltu monta vuotta, kaikki virheet on korjattu. Mutta nyt mielestäni Swift on yhtä hyvä kuin Objective-C. Vaikka jopa Apple käyttää edelleen molempia projekteissaan. Kielet ovat suurelta osin vaihdettavissa ja täydentävät toisiaan. Yhden kielen rakenteita ja objekteja voidaan muuttaa toisen kielen objekteiksi ja rakenteiksi. On hyvä tietää molemmat vaihtoehdot, mutta aloittelijoille Objective-C näyttää usein pelottavalta ja hämmentävältä."

koulutus

"Ensimmäisessä työpaikassani pomoni koulutti minut, auttoi minua toteuttamaan ja luomaan projektin", Marat sanoo. "Mutta Androidin ja iOS:n samanaikainen työskentely on vaikeaa. Kestää aikaa rakentaa uudelleen, vaihtaa projektista projektiin, kielestä toiseen. Lopulta päätin, että minun täytyy valita yksi suunta ja opiskella sitä. Minut myytiin Xcoden käyttöliittymällä ja Swiftin yksinkertaisella syntaksilla."

Marat tuli iOS-kehitysosastolle GeekBrainsissa. Aluksi se oli erittäin helppoa, koska hän tiesi monia asioita työkokemuksesta. Vuosikurssi on jaettu neljään vuosineljännekseen. Andreyn mukaan ensimmäinen antaa vain perusasiat: "Swift-kielen perusta, peruskehysten tuntemus, verkko, tiedon tallennus, sovellusten elinkaari, ohjain, perusarkkitehtuurit, kaikkien käyttämät pääkirjastot, monisäikeisyys ja rinnakkaisuus sovellukset."

Toinen neljännes lisää Objective-C:n. Kurssi järjestetään arkkitehtuurista ja ohjelmoinnin perusmalleista. Kolmannella neljänneksellä he opettavat oikean koodin kirjoitustyylin. Se selittää, mikä tehdas on, kuinka kirjoittaa testejä oikein, luoda projekteja, mikä on Git-Flow, jatkuva integrointi Fast Lanen kautta. Neljäs ja viimeinen vuosineljännes on omistettu ryhmätyölle, käytännön tehtäville ja harjoitteluille.

"Ensimmäinen vuosineljännes oli helppo", Marat kertoo, "mutta sitten aloin opiskella ohjelmointia Objective-C:ssä, opiskella suunnittelumalleja, Solid-, Git-Flow-periaatteita, projektiarkkitehtuuria, sovellusten yksikkö- ja käyttöliittymätestausta, mukautetun animaation luomista. - ja sitten minä Opiskelusta tuli mielenkiintoista.”

"Se ei alkanut minulle erittäin sujuvasti GeekBrainsissa", Boris Pavlov sanoo, eikä hänen tiensä iOS-kehitykseen yleensä ollut suorin. Pojan kasvatti isoäitinsä. Hän oli arkkitehti, matemaatikko ja suunnittelija ja juurrutti Borisiin rakkauden suunnitteluun, opetti hänet piirtämään käsin ja piirtämään. Hänen setänsä oli järjestelmänvalvoja ja kiinnosti veljenpoikansa tietokoneista.

Boris oli erinomainen oppilas, mutta menetti kiinnostuksensa opiskeluun ja jätti koulun yhdeksän luokan jälkeen. Yliopiston jälkeen hän aloitti pyöräilyn, ja tietokoneet häipyivät taustalle. Mutta eräänä päivänä Boris sai selkävamman, joka esti häntä jatkamasta urheiluuraansa.

Hän aloitti C++:n opinnot Irkutskin aurinko-maanfysiikan instituutin opettajan johdolla. Sitten kiinnostuin pelien kehityksestä ja yritin vaihtaa C#:aan. Ja lopuksi, kuten Marat, hänet kiehtoi Swift-kieli.

"Päätin suorittaa ilmaisen johdantokurssin GeekBrainsissa. Rehellisesti sanottuna hän oli erittäin tylsä, hidas ja käsittämätön”, Boris muistelee, ”opettaja puhui kielen ominaisuuksista, mutta ryntäsi aiheesta toiseen paljastamatta sen olemusta. Kun kurssi päättyi, en vieläkään ymmärtänyt mitään."

Siksi Boris ei ilmoittautunut johdantokurssin jälkeen vuoden mittaiselle koulutukselle, vaan lyhyelle kolmen kuukauden kurssille, jossa he opettavat ammatin perusasiat. "Löysin sieltä erittäin hyviä opettajia, ja he selittivät kaiken melko selkeästi."

”Meitä kritisoidaan usein, väitetysti koulutusoppaamme eivät ole täysin ajan tasalla, niissä on epätarkkuuksia. Mutta kursseja päivitetään jatkuvasti, ja opettajat puhuvat aina innovaatioista. Johtamistani ryhmistä monet löytävät työpaikan ensimmäisen vuosineljänneksen jälkeen. Tietenkin yleensä nämä ovat ihmisiä, joilla on ohjelmointikokemusta”, Andrey sanoo. ”Toisaalta kaikkea tietoa ei voi välittää yhdellä kurssilla. Verkoston asiakasvuorovaikutus elämässä ei mahdu kymmeneen kahden tunnin luentoon. Ja jos käyt vain kursseilla etkä tee mitään muuta, sinulla ei ole tarpeeksi tietoa. Jos opiskelet joka päivä koko vuoden, niin tällä tahdilla vain laiska ei saa työtä. Koska ammatin kysyntä on erittäin korkea."

Mitä odottaa, jos haluat tulla iOS-kehittäjäksi

Näet eniten uusimmat avoimet työpaikat iOS-kehittäjille ja tilaa uusia.

Työ

Mutta Marat ja Boris eivät löytäneet työtä niin helposti.

"Jotkut suuret yritykset ovat pitkään kehittäneet iOS-sovelluksia Objective-C:ssä ja jatkavat vanhan koodipohjan ylläpitämistä. Valitettavasti minulla ei ole pakottavia perusteita pakottaa heidät käyttämään Swiftiä yksinomaan. Etenkin ne, jotka käyttävät sääntöä "älä koske siihen, mikä toimii", Marat sanoo, "Objective-C-suuntaan kiinnitetään vähän huomiota Geekbrainsissa. Se on luonteeltaan enemmän informaatiota. Mutta jokainen haastattelemani yritys kysyi Objective-C:stä. Ja koska opinnot keskittyvät Swiftiin, kuten aikaisemmat työni, sain haastatteluissa kieltäytymisen."

"Opiskelun jälkeen tiesin itse vain pinnallisimmat perusasiat, joiden avulla pystyin luomaan yksinkertaisimman sovelluksen", Boris kertoo. "Työhön se ei tietenkään riittänyt, mutta olin iloinen tästä. Irkutskista oli vaikea löytää työtä. Tarkemmin sanottuna - ei ollenkaan. Päätin etsiä muita kaupunkeja. Avoimien työpaikkojen lukumäärän osalta tärkeimmiksi osoittautuivat Krasnodar, Moskova ja Pietari. Päätin mennä Pietariin - lähemmäs Eurooppaa.

Mutta kaikki ei osoittautunut niin ruusuiseksi. Jopa juniori saa anteeksi sen, mitä hän ei voi tietää. En ole vielä löytänyt töitä. Työskentelen "kiitos", kokemuksen hankkimiseksi. Ymmärrän, että tämä ei ole sitä, mitä halusin, mutta olen kiinnostunut, ja tämä ajaa minua. Haluan saada tietoa."

Andrey uskoo, että uusien tulokkaiden tulisi etsiä työharjoittelupaikkoja työpaikan sijaan. Jos sinulla on hyvin vähän tietoa, on normaalia, että harjoittelu on palkaton. Andrey neuvoo junioreiden hakemista suuriin yrityksiin, joissa työprosessi on jo vakiintunut.

”Kun ymmärrät, miten ohjelmistokehitysprosessi toimii, on paljon helpompi navigoida ja löytää jatkotöitä toiveidesi mukaan. Jotkut ihmiset ryhtyvät itsenäiseen kehitykseen, tekevät pelejä itselleen, lataavat ne kauppaan ja ansaitsevat ne itse. Jotkut työskentelevät suuressa yrityksessä, jossa on tiukat säännöt. Jotkut ihmiset ansaitsevat rahaa pienissä studioissa, jotka tekevät räätälöityjä ohjelmistoja, ja siellä he voivat seurata koko prosessia - projektin luomisesta alusta sen toimittamiseen kauppaan."

Palkat

iOS-kehittäjän palkka, kuten minkä tahansa muun, riippuu kysymyksestä "Moskova tai Venäjä". Mutta alan erityispiirteistä johtuen - paljon etätyötä, muuttomahdollisuudet ja työskentely ei aluemarkkinoilla - luvut lähestyvät yhä enemmän toisiaan.

Mitä odottaa, jos haluat tulla iOS-kehittäjäksi

My Circle -palkkalaskurin mukaan iOS-kehittäjän keskipalkka on hieman pienempi 140 000 ruplaa.

"Erittäin alhaisella tasolla oleva juniori työskentelee usein ilmaiseksi tai symbolisella rahalla - 20-30 tuhatta ruplaa. Jos juniori otetaan tarkoituksella tehtäväänsä, hän saa 50-80 tuhatta. Keskiosaiset saavat 100-150 ja joskus jopa 200. Seniorit eivät saa alle 200. Luulen, että heidän palkkansa on noin 200-300. Ja vastaavasti joukkuejohtojen kohdalla se on yli 300.

Mitä odottaa, jos haluat tulla iOS-kehittäjäksi

Haastattelut

”Ensimmäinen haastattelu tapahtui Skypessä. Yllätyksekseni se oli Google”, Boris muistelee, ”ja olin juuri muuttanut Pietariin ja aloin etsiä töitä. Sain hakemuksen iOS-kehittäjäpaikkaan. Ei juniori, ei keskimmäinen, ei vanhempi - vain kehittäjä. Olin iloinen ja aloin kirjeenvaihdon johtajan kanssa. Minua pyydettiin suorittamaan tekninen tehtävä: minun piti kirjoittaa hakemus Chuck Norrisin vitseille. Minä kirjoitin sen. He kertoivat minulle, että kaikki oli hienoa, ja ajoivat verkkohaastattelun.

Soitimme toisillemme. Mukava tyttö puhui minulle. Mutta he eivät kysyneet kielitaidosta mitään, vain erilaisia ​​loogisia ongelmia, esimerkiksi "Kello on 15:15, kuinka monta astetta on tunti- ja minuuttiosoittimien välillä?" tai "Pylväs on 10 metriä pitkä, a etana ryömii 3 metriä ylös päivällä ja laskeutuu 1 metrin yöllä." Kuinka monessa päivässä hän ryömi huipulle?" ja pari muuta samanlaista.

Sitten tuli hyvin outoja kysymyksiä - miksi rakastan Applea ja mitä mieltä olen Tim Cookista. Sanoin, että yritys kokonaisuutena on positiivinen, mutta pikemminkin negatiivinen häntä kohtaan, koska hänelle on tärkeää raha, eivät tuotteet.

Kun kysymyksiä Swiftistä alkoi, tietoni riitti vain ohjelmointimallien ja OOP:n perusteiden suhteen. Sanoimme hyvästit, viikkoa myöhemmin he soittivat minulle takaisin ja sanoivat, että en ole sopiva. Itse asiassa sain tästä valtavasti kokemusta: tarvitset tietoa, tarvitset sitä paljon - sekä teoriaa että käytäntöä."

Andrey sanoo, että "ensimmäinen asia, jota kaikilta kysytään haastattelussa, on lennonjohtajan elinkaarta. He todella haluavat pyytää jotain yksinkertaista ohjelmointimallia. He varmasti kysyvät kokemuksistasi suosittujen kirjastojen käytöstä. Tulee varmasti kysymys Swift-arvotyyppien ja viitetyyppien eroista, automaattisesta viitelaskennasta ja muistinhallinnasta. He voivat kysyä, kuinka he toteuttivat tietojen tallennuksen sovelluksissa ja toteuttivatko he verkkopyyntöjä. He kysyvät RESTin ja JSONin perusteista. Juniorilta ei kysytä erityisiä asioita ja hienouksia. En minä ainakaan kysy."

Borisilla oli erilainen kokemus: ”Vaikka pyysin työharjoittelupaikkoja, suoritin teknisiä tehtäviä ja sanoin, että palkka ei ole minulle tärkeä, niin kauan kuin se riitti asunnon vuokraamiseen, minulta silti kieltäydyttiin. Luin artikkeleita, yritin ymmärtää, mitä rekrytoija tarvitsee uudelta tulokkaalta. Mutta enimmäkseen he epäonnistuivat teorioissa. Jostain syystä he esittivät suurilta liigoilta kysymyksiä, jotka eivät koske uusia tulokkaita.

Marat oli onnekkaampi. Nyt hän työskentelee kuljetusyrityksessä ja on yksin vastuussa iOS-osastosta, samalla kun hän jatkaa opintojaan tiedekunnassa. "Koska olen ainoa iOS-vastaava, työtäni arvioidaan vain kykyni toteuttaa minulle osoitetut tehtävät, ei teoriatietoni."

Yhteisö

Andrey asuu Nižni Novgorodissa ja sanoo, että sielläkin on muodostunut suuri yhteisö. Hän oli aikoinaan Pythonin taustakehittäjä, mutta hänen ystävänsä raahasivat hänet mobiilikehitykseen - ja nyt hän itse rohkaisee kaikkia tekemään niin.

”Maailmanlaajuinen yhteisö kommunikoi yleensä Twitterin kautta. Ihmiset kirjoittavat omia blogejaan, nauhoittavat videoita Youtubeen, kutsuvat toisiaan podcasteihin. Eräänä päivänä minulla oli kysymys esityksestä, jossa HQTrivia-tiimin johtaja puhui. Tämä on amerikkalainen tietokilpailu, jota pelaa samanaikaisesti useita miljoonia ihmisiä. Kirjoitin hänelle Twitterissä, hän vastasi minulle, keskustelimme ja minä kiitin häntä. Yhteisö on erittäin ystävällinen, mikä on hienoa.”

Luettelo suositeltavasta kirjallisuudestaAloittelijataso:

Keskitaso:

Edistynyt taso:

Lähde: will.com

Lisää kommentti