Ano ang aasahan kung gusto mong maging isang developer ng iOS

Ano ang aasahan kung gusto mong maging isang developer ng iOS

Mula sa labas ng iOS, ang pag-unlad ay maaaring magmukhang isang saradong club. Upang gumana, tiyak na kailangan mo ng isang Apple computer ang ecosystem ay malapit na kinokontrol ng isang kumpanya. Mula sa loob, maaari mo ring marinig kung minsan ang mga kontradiksyon - sinasabi ng ilan na ang Objective-C na wika ay luma at malamya, at ang iba ay nagsasabi na ang bagong Swift na wika ay masyadong krudo.

Gayunpaman, ang mga developer ay pumupunta sa lugar na ito at, kapag naroon, ay nasiyahan.

Sa pagkakataong ito, sinabi sa amin nina Marat Nurgaliev at Boris Pavlov ang tungkol sa kanilang karanasan - kung paano nila natutunan ang propesyon, kung paano nila naipasa ang kanilang mga unang panayam, kung bakit sila tumanggap ng mga pagtanggi. At si Andrey Antropov, dean, ay kumilos bilang isang dalubhasa Faculty ng iOS Development sa GeekBrains.

Noong 2016, dumating si Marat Nurgaliev mula sa rehiyon ng Astrakhan upang makakuha ng trabaho bilang isang mobile developer sa isang lokal na kumpanya ng telebisyon. Ito ang kanyang unang panayam. Kakabalik niya lang mula sa hukbo, nang walang pagsasanay at karanasan, nakalimutan kahit ang teorya, kung saan mayroon na siyang mga problema. Ang tanging karanasan ni Marat sa mobile development ay ang kanyang thesis sa pagsusuri sa mga daloy ng pagtagas ng impormasyon sa pamamagitan ng mga Android application. Sa panayam, tinanong siya tungkol sa kanyang pag-aaral, OOP at iba pang teorya, ngunit hindi naitago ni Marat ang mga puwang sa kanyang kaalaman.

Gayunpaman, hindi siya tinanggihan, ngunit binigyan ng praktikal na gawain - upang ipatupad ang pagpapakita ng isang listahan ng mga balita gamit ang API sa loob ng dalawang linggo. Parehong para sa iOS at Android. "Kung mayroon akong anumang karanasan sa Android, walang kahit isang tool upang lumikha ng isang bersyon ng iOS. Ang kapaligiran ng pagbuo ng application ng iOS ay magagamit lamang sa Mac. Ngunit makalipas ang dalawang linggo bumalik ako at ipinakita kung ano ang maaari kong gawin sa Android. Sa iOS kailangan kong malaman ito sa mabilisang. Sa huli kinuha nila ako. Pagkatapos ay nanirahan ako sa Astrakhan. Ang anumang trabaho sa IT na may sahod na higit sa dalawampu ay nababagay sa akin.”

Sino ang mga developer ng iOS?

Gumagawa ang mga mobile developer ng mga application para sa anumang portable na device. Mga smartphone, tablet, smart watch at lahat ng iba pang platform na sumusuporta sa Android o iOS. Ang mga pangunahing prinsipyo ng mobile development ay hindi naiiba sa conventional development, ngunit dahil sa mga partikular na tool, ito ay nahiwalay sa isang hiwalay na direksyon. Gumagamit ito ng sarili nitong mga tool, programming language at frameworks.

"Upang gumana sa iOS, kailangan mo ng MacBook, dahil mayroon lamang itong kinakailangang kapaligiran sa pagbuo ng Xcode. Ito ay libre at ipinamahagi sa pamamagitan ng AppStore. Upang mai-install, kailangan mong magkaroon ng iyong Apple ID at wala nang iba pa. Sa Xcode maaari kang bumuo ng mga application para sa anumang bagay - telepono, tablet, relo. Mayroong built-in na simulator at editor para sa lahat," sabi ni Andrey Antropov, dean ng iOS development department sa GeekBrains.

“Ngunit ang development environment ay maaaring mai-install sa Windows kung gumagamit ka ng Hackintosh. Ito ay isang gumagana, ngunit roundabout na opsyon - wala sa mga seryosong developer ang gumagawa nito. Ang mga nagsisimula ay bumili ng lumang MacBook. At kadalasan ay kayang bayaran ng mga may karanasan ang pinakabagong modelo.”

Mga Wika - Swift o Objective-C

Halos lahat ng iOS development ay ginagawa gamit ang Swift programming language. Lumitaw ito limang taon na ang nakalilipas at ngayon ay unti-unting pinapalitan ang lumang Objective-C na wika, na ginamit ng Apple sa lahat ng mga aplikasyon nito nang higit sa 30 taon.

"Isang malaking code base ang naipon sa Objective-C, kaya kailangan pa rin ang mga developer sa parehong wika, depende sa kumpanya, sa mga gawain at application nito. Ang mga aplikasyong isinulat maraming taon na ang nakalipas ay batay sa Objective-C. At lahat ng mga bagong proyekto ay binuo sa Swift bilang default. Ngayon ang Apple ay gumagawa ng maraming upang gumawa ng sabay-sabay na pag-develop para sa isang telepono, tablet, relo at MacBook bilang maginhawa hangga't maaari. Ang parehong code ay maaaring i-compile at tumakbo sa lahat ng dako. Hindi ito nangyari noon. Para sa iOS na binuo namin sa Swift, para sa MacOS ginamit namin ang Objective-C."

Ayon kay Andrey, ang Swift ay isang napakasimpleng wika na palakaibigan para sa mga nagsisimula. Ito ay mahigpit na nai-type, na nagbibigay-daan sa iyo upang mahuli ang maraming mga error sa yugto ng pagsasama-sama ng proyekto, at ang hindi tamang code ay hindi gagana.

"Ang Objective-C ay isang medyo lumang wika - ang parehong edad ng C++ na wika. Sa oras na ito ay binuo, ang mga kinakailangan para sa mga wika ay ganap na naiiba. Nang lumabas si Swift, ito ay buggy, limitado ang functionality, at magaspang ang syntax. At ang mga tao ay punong-puno ng Objective-C. Ito ay napabuti sa loob ng maraming taon, lahat ng mga pagkakamali doon ay naitama. Ngunit ngayon sa tingin ko Swift ay kasing ganda ng Objective-C. Kahit na ang Apple ay gumagamit pa rin ng pareho sa mga proyekto nito. Ang mga wika ay higit na mapagpapalit at magkatugma. Ang mga istruktura at bagay ng isang wika ay maaaring gawing mga bagay at istruktura ng ibang wika. Mahusay na malaman ang parehong mga pagpipilian, ngunit para sa mga nagsisimula, ang Objective-C ay kadalasang tila nakakatakot at nakakalito."

pagsasanay

"Sa aking unang trabaho, sinanay ako ng aking amo, tinulungan ako sa pagpapatupad at pag-set up ng proyekto," sabi ni Marat, "Ngunit ang pagtatrabaho sa Android at iOS sa parehong oras ay mahirap. Ito ay tumatagal ng oras upang muling buuin, lumipat mula sa proyekto patungo sa proyekto, mula sa wika patungo sa wika. Sa huli, nagpasiya ako na kailangan kong pumili ng isang direksyon at pag-aralan ito. Nabenta ako sa interface ng Xcode at sa simpleng syntax ng Swift."

Pumasok si Marat sa departamento ng pagpapaunlad ng iOS sa GeekBrains. Sa una ay napakadali, dahil alam niya ang maraming bagay mula sa karanasan sa trabaho. Ang taunang kurso ay nahahati sa apat na quarter. Ayon kay Andrey, ang una ay nagbibigay lamang ng mga pangunahing kaalaman: "Ang batayan ng wikang Swift, kaalaman sa mga pangunahing balangkas, networking, imbakan ng data, siklo ng buhay ng aplikasyon, controller, pangunahing mga arkitektura, pangunahing mga aklatan na ginagamit ng lahat, multithreading at parallelism sa mga aplikasyon.”

Ang ikalawang quarter ay nagdagdag ng Objective-C. Ang isang kurso ay isinasagawa sa arkitektura at mga pangunahing pattern ng programming. Sa ikatlong quarter, itinuturo nila ang tamang istilo ng pagsulat ng code. Ipinapaliwanag nito kung ano ang isang pabrika, kung paano magsulat ng mga pagsubok nang tama, lumikha ng mga proyekto, kung ano ang Git-Flow, Patuloy na Pagsasama sa pamamagitan ng Fast Lane. Ang ikaapat at huling quarter ay nakatuon sa pagtutulungan ng magkakasama, praktikal na mga takdang-aralin at internship.

"Madali ang unang quarter," sabi ni Marat, "ngunit nagsimula akong mag-aral ng programming sa Objective-C, pag-aaral ng mga pattern ng disenyo, mga prinsipyo ng Solid, Git-Flow, arkitektura ng proyekto, Unit at UI testing ng mga application, pag-set up ng custom na animation - at pagkatapos ay ako Naging kawili-wiling mag-aral."

"Hindi ito nagsimula nang sobrang maayos para sa akin sa GeekBrains," sabi ni Boris Pavlov, at ang kanyang landas sa pag-unlad ng iOS sa pangkalahatan ay hindi ang pinakadirekta. Ang bata ay pinalaki ng kanyang lola. Siya ay isang arkitekto, dalub-agbilang at taga-disenyo at nagtanim kay Boris ng pagmamahal sa disenyo, tinuruan siyang gumuhit gamit ang kamay at gumuhit. Ang kanyang tiyuhin ay isang system administrator at interesado ang kanyang pamangkin sa mga computer.

Si Boris ay isang mahusay na mag-aaral, ngunit nawalan ng interes sa pag-aaral at umalis sa paaralan pagkatapos ng siyam na baitang. Pagkatapos ng kolehiyo, nagsimula siyang magbisikleta, at ang mga computer ay nawala sa background. Ngunit isang araw ay nakatanggap si Boris ng pinsala sa gulugod, na pumigil sa kanya na ipagpatuloy ang kanyang karera sa palakasan.

Nagsimula siyang mag-aral ng C++ kasama ang isang guro sa Irkutsk Institute of Solar-Terrestrial Physics. Pagkatapos ay naging interesado ako sa pagbuo ng laro at sinubukan kong lumipat sa C#. At sa wakas, tulad ni Marat, nabihag siya ng wikang Swift.

“Napagpasyahan kong kunin ang libreng panimulang kurso sa GeekBrains. Sa totoo lang, siya ay napaka-boring, tamad at hindi maintindihan, "paggunita ni Boris, "ang guro ay nagsalita tungkol sa mga tampok ng wika, ngunit nagmamadali mula sa isang paksa patungo sa isa pa nang hindi inihayag ang kakanyahan. Nang matapos ang kurso, wala pa rin akong naiintindihan."

Samakatuwid, pagkatapos ng panimulang kurso, hindi nag-enrol si Boris sa isang taon na pagsasanay, ngunit sa isang maikling tatlong buwang kurso, kung saan itinuro nila ang mga pangunahing kaalaman sa propesyon. "Nakakita ako ng napakahusay na guro doon, at ipinaliwanag nila ang lahat nang malinaw."

“Madalas kaming pinupuna, diumano ang aming mga manual ng pagsasanay ay hindi lubos na napapanahon, may mga kamalian. Ngunit ang mga kurso ay patuloy na ina-update, at ang mga guro ay palaging nagsasalita tungkol sa mga pagbabago. Sa mga grupong pinamumunuan ko, marami ang nakakahanap ng trabaho pagkatapos ng unang quarter. Siyempre, kadalasan ito ay mga taong may karanasan sa programming, "sabi ni Andrey, "Sa kabilang banda, ang lahat ng kaalaman ay hindi maaaring ihatid sa isang kurso. Ang pakikipag-ugnayan ng network client sa buhay ay hindi maaaring isama sa sampung dalawang oras na lecture. At kung pupunta ka lamang sa mga kurso at wala kang ibang gagawin, kung gayon hindi ka magkakaroon ng sapat na kaalaman. Kung nag-aaral ka araw-araw para sa buong taon, kung gayon sa bilis na ito lamang ang tamad ay hindi makakakuha ng trabaho. Kasi napakataas ng demand sa profession.”

Ano ang aasahan kung gusto mong maging isang developer ng iOS

Maaari mong makita ang pinaka pinakabagong mga bakante para sa mga developer ng iOS at mag-subscribe sa mga bago.

Работа

Ngunit ni Marat o Boris ay hindi nakahanap ng trabaho nang ganoon kadali.

“Matagal nang binuo ng ilang malalaking kumpanya ang mga iOS application sa Objective-C, at patuloy na pinapanatili ang lumang code base. Sa kasamaang palad, wala akong mapanghikayat na argumento upang pilitin silang gamitin ang Swift nang eksklusibo. Lalo na ang mga gumagamit ng panuntunang "huwag hawakan kung ano ang gumagana," sabi ni Marat, "Kaunting pansin ang binabayaran sa direksyon ng Objective-C sa Geekbrains. Ito ay higit na nagbibigay-kaalaman. Ngunit ang bawat kumpanyang kinapanayam ko ay nagtanong tungkol sa Objective-C. At dahil ang aking pag-aaral ay nakatuon sa Swift, tulad ng aking nakaraang trabaho, nakatanggap ako ng mga pagtanggi sa mga panayam.

"Pagkatapos ng pag-aaral, alam ko sa aking sarili ang pinaka mababaw na mga pangunahing kaalaman, sa tulong kung saan maaari akong lumikha ng pinakasimpleng aplikasyon," sabi ni Boris "Para sa trabaho, siyempre, hindi ito sapat, ngunit masaya ako tungkol dito. Mahirap maghanap ng trabaho sa Irkutsk. Upang maging mas tumpak - hindi sa lahat. Nagpasya akong tumingin sa ibang mga lungsod. Sa mga tuntunin ng bilang ng mga bakante, ang Krasnodar, Moscow at St. Petersburg ay naging pinaka-kaugnay. Nagpasya akong pumunta sa St. Petersburg - mas malapit sa Europa.

Ngunit ang lahat ay naging hindi gaanong kulay-rosas. Kahit isang junior ay mapapatawad sa hindi niya alam. Wala pa akong nahahanap na trabaho. Nagtatrabaho ako para sa "salamat", pagkakaroon ng karanasan. Naiintindihan ko na hindi ito ang gusto ko, ngunit interesado ako, at ito ang nagtutulak sa akin. Gusto kong makakuha ng kaalaman."

Naniniwala si Andrey na ang mga bagong dating ay dapat maghanap ng mga internship kaysa sa mga trabaho. Kung kakaunti ang iyong kaalaman, normal lang na walang bayad ang internship. Pinapayuhan ni Andrey na mag-aplay para sa mga junior vacancies sa malalaking kumpanya kung saan naitatag na ang proseso ng trabaho.

“Kapag naunawaan mo kung paano gumagana ang proseso ng pag-develop ng software, magiging mas madali itong mag-navigate at makahanap ng karagdagang trabaho, depende sa iyong mga kagustuhan. Ang ilang mga tao ay pumunta sa independiyenteng pag-unlad, gumawa ng mga laro para sa kanilang sarili, i-upload ang mga ito sa tindahan, at pagkakitaan sila mismo. Ang ilan ay nagtatrabaho para sa isang malaking kumpanya na may mahigpit na mga patakaran. May mga taong kumikita sa maliliit na studio na gumagawa ng custom na software, at doon nila mapapanood ang buong proseso - mula sa paggawa ng proyekto mula sa simula hanggang sa paghahatid nito sa tindahan."

Mga suweldo

Ang suweldo ng isang developer ng iOS, tulad ng iba pa, ay nakasalalay sa tanong na "Moscow o Russia". Ngunit dahil sa mga detalye ng industriya - maraming malayong trabaho, mga pagkakataon para sa relokasyon at trabaho hindi sa rehiyonal na merkado - ang mga numero ay lalong lumalapit sa isa't isa.

Ano ang aasahan kung gusto mong maging isang developer ng iOS

Ayon sa calculator ng suweldo ng My Circle, ang average na suweldo ng isang developer ng iOS ay bahagyang mas mababa 140 000 rubles.

"Ang isang junior sa isang napakababang antas ay madalas na gumagana nang libre o para sa simbolikong pera - 20-30 libong rubles. Kung ang isang junior ay sadyang kinuha sa kanyang posisyon, makakatanggap siya ng mula 50 hanggang 80 libo. Ang mga middle ay tumatanggap ng mula 100 hanggang 150, at kung minsan kahit hanggang 200. Ang mga nakatatanda ay hindi tumatanggap ng mas mababa sa 200. Mga 200-300 yata ang sweldo nila. At para sa mga nangunguna sa koponan, naaayon, ito ay higit sa 300.

Ano ang aasahan kung gusto mong maging isang developer ng iOS

Mga panayam

“Naganap ang unang panayam sa Skype. Sa aking sorpresa, ito ay Google," paggunita ni Boris, "pagkatapos ay lumipat ako sa St. Petersburg at nagsimulang maghanap ng trabaho. Nakatanggap ako ng application para sa isang iOS developer position. Hindi junior, hindi middle, hindi senior - developer lang. Natuwa ako at nagsimulang makipagsulatan sa manager. Hiniling sa akin na kumpletuhin ang isang teknikal na gawain: Kailangan kong magsulat ng isang aplikasyon para sa mga biro tungkol kay Chuck Norris. Isinulat ko iyon. Sinabi nila sa akin na ang lahat ay mahusay at naka-iskedyul ng isang online na panayam.

Nagtawagan kami. Kinausap ako ng isang magandang babae. Ngunit hindi sila nagtanong tungkol sa kasanayan sa wika - iba't ibang lohikal na problema lamang, halimbawa, "Ang oras ay 15:15, ilang degree ang pagitan ng oras at minutong mga kamay?" gumagapang ang suso ng 10 metro pataas sa araw, at bumababa ng 3 metro sa gabi." Ilang araw ba siya gagapang sa tuktok?“, at ilang iba pang katulad.

Pagkatapos ay may mga kakaibang tanong - kung bakit mahal ko si Apple at kung ano ang nararamdaman ko kay Tim Cook. Sinabi ko na ang kumpanya sa kabuuan ay positibo, ngunit sa halip ay negatibo sa kanya, dahil pera ang mahalaga sa kanya, hindi produkto.

Nang magsimula ang mga tanong tungkol sa Swift, sapat lang ang aking kaalaman para sa mga pattern ng programming at ang mga pangunahing kaalaman ng OOP. Nagpaalam kami, makalipas ang isang linggo tinawagan nila ako at sinabing hindi ako bagay. Sa totoo lang, nakakuha ako ng napakalaking karanasan mula dito: kailangan mo ng kaalaman, kailangan mo ng marami nito - parehong teorya at kasanayan."

Sinabi ni Andrey na "ang unang bagay na tinatanong sa lahat sa panahon ng isang pakikipanayam ay ang siklo ng buhay ng controller. Talagang gusto nilang humingi ng ilang simpleng pattern ng programming. Tiyak na magtatanong sila tungkol sa iyong karanasan sa paggamit ng mga sikat na aklatan. Tiyak na magkakaroon ng tanong tungkol sa mga pagkakaiba sa Swift Value Types mula sa Reference Types, tungkol sa Automatic Reference Counting at memory management. Maaari silang magtanong kung paano nila ipinatupad ang pag-iimbak ng data sa mga application, at kung nagpatupad sila ng mga kahilingan sa network. Magtatanong sila tungkol sa mga pangunahing kaalaman ng REST at JSON. Ang junior ay hindi hihilingin para sa mga partikular na bagay at subtleties. At least hindi ako nagtatanong."

Si Boris ay may ibang karanasan: "Kahit na humiling ako ng internship, natapos ang mga teknikal na gawain at sinabi na ang suweldo ay hindi mahalaga sa akin, hangga't sapat na upang magrenta ng isang apartment, tinanggihan pa rin ako. Nagbasa ako ng mga artikulo, sinubukan kong maunawaan kung ano ang kailangan ng isang recruiter mula sa isang bagong dating. Ngunit karamihan sila ay nabigo sa mga teorya. Para sa ilang kadahilanan, nagtanong sila ng mga tanong mula sa mga pangunahing liga na walang kinalaman sa mga bagong dating.

Mas swerte si Marat. Ngayon ay nagtatrabaho siya sa isang kumpanya ng transportasyon at nag-iisa ang namamahala sa departamento ng iOS, habang ipinagpapatuloy ang kanyang pag-aaral sa faculty. "Dahil ako lang ang may pananagutan para sa iOS, ang aking trabaho ay tinatasa lamang sa pamamagitan ng aking kakayahang ipatupad ang mga gawaing itinalaga sa akin, at hindi sa pamamagitan ng aking kaalaman sa teorya."

Komunidad

Nakatira si Andrey sa Nizhny Novgorod at sinabi na kahit doon ay nabuo ang isang mahusay na komunidad. Noong unang panahon, isa siyang backend developer sa Python, ngunit kinaladkad siya ng kanyang mga kaibigan sa mobile development - at ngayon siya mismo ang naghihikayat sa lahat na gawin ito.

"Ang pandaigdigang komunidad ay karaniwang nakikipag-usap sa pamamagitan ng Twitter. Ang mga tao ay nagsusulat ng kanilang sariling mga blog, nagre-record ng mga video sa Youtube, nag-imbita sa isa't isa sa mga podcast. Isang araw may tanong ako tungkol sa isang presentasyon kung saan nagsalita ang pinuno ng pangkat ng HQTrivia. Ito ay isang American quiz game na nilalaro nang sabay-sabay ng ilang milyong tao. Sumulat ako sa kanya sa Twitter, sinagot niya ako, nag-usap kami, at nagpasalamat ako sa kanya. Ang komunidad ay sobrang palakaibigan, na napakahusay.”

Listahan ng mga inirerekomendang literaturaAntas ng nagsisimula:

Antas ng pagitan

Advanced na antas:

Pinagmulan: www.habr.com

Magdagdag ng komento