Шта очекивати ако желите да постанете иОС програмер

Шта очекивати ако желите да постанете иОС програмер

Са спољне стране иОС-а, развој може изгледати као затворени клуб. Да бисте радили, дефинитивно вам је потребан Аппле рачунар; екосистем блиско контролише једна компанија. Изнутра се понекад могу чути и контрадикторности – неки кажу да је Објецтиве-Ц језик стар и неспретан, а други да је нови Свифт језик превише груб.

Ипак, програмери улазе у ову област и, када тамо, бивају задовољни.

Овог пута, Марат Нургалиев и Борис Павлов испричали су нам своје искуство – како су научили професију, како су прошли прве интервјуе, зашто су добијали одбијенице. А Андреј Антропов, декан, био је стручњак Факултет за иОС развој у ГеекБраинс-у.

У 2016. години, Марат Нургалиев из Астраханске области дошао је да добије посао као мобилни програмер у локалној телевизијској компанији. Ово је био његов први интервју. Тек што се вратио из војске, без праксе и искуства, заборавивши чак и теорију, са којом је већ имао проблема. Маратово једино искуство у развоју мобилних уређаја била је његова теза о анализи токова цурења информација кроз Андроид апликације. На интервјуу су га питали о студијама, ООП-у и другим теоријама, али Марат није могао да сакрије празнине у свом знању.

Међутим, није одбијен, већ је добио практичан задатак – да имплементира приказивање листе вести помоћу АПИ-ја за две недеље. И за иОС и Андроид. „Ако сам имао било какво искуство са Андроидом, није било чак ни алата за прављење иОС верзије. Окружење за развој иОС апликација доступно је само на Мац-у. Али две недеље касније вратио сам се и показао шта могу да радим на Андроиду. Са иОС-ом сам то морао да схватим у ходу. На крају су ме узели. Тада сам живео у Астрахану. Одговарао ми је било који ИТ посао са платом већом од двадесет.”

Ко су иОС програмери?

Мобилни програмери праве апликације за било који преносиви уређај. Паметни телефони, таблети, паметни сатови и све друге платформе које подржавају Андроид или иОС. Основни принципи мобилног развоја се не разликују од конвенционалног развоја, али је због специфичних алата издвојен у посебан правац. Користи сопствене алате, програмске језике и оквире.

„Да бисте радили са иОС-ом, потребан вам је МацБоок, јер само он има неопходно Ксцоде развојно окружење. Бесплатан је и дистрибуира се преко АппСторе-а. Да бисте инсталирали, морате имати свој Аппле ИД и ништа друго. У Ксцоде-у можете развити апликације за било шта - телефон, таблет, сат. Постоји уграђени симулатор и уређивач за све“, каже Андреј Антропов, декан одељења за иОС развој у ГеекБраинс-у.

„Али развојно окружење се може инсталирати на Виндовс ако користите Хацкинтосх. Ово је радна, али заобилазна опција - нико од озбиљних програмера то не ради. Почетници купују стари МацБоок. А они искусни обично могу себи приуштити најновији модел.”

Језици - Свифт или Објецтиве-Ц

Скоро сав развој иОС-а се обавља помоћу програмског језика Свифт. Појавио се пре пет година и сада постепено замењује стари језик Објецтиве-Ц, који Аппле користи у свим својим апликацијама више од 30 година.

„Огромна база кода је акумулирана у Објецтиве-Ц, тако да су програмери на оба језика и даље потребни, у зависности од компаније, њених задатака и апликација. Апликације написане пре много година засноване су на Објецтиве-Ц. А сви нови пројекти се подразумевано развијају у Свифт-у. Сада Аппле чини много како би симултани развој за телефон, таблет, сат и МацБоок учинио што је могуће погоднијим. Исти код се може компајлирати и покренути свуда. Ово се раније није дешавало. За иОС који смо развили у Свифт-у, за МацОС смо користили Објецтиве-Ц.”

Према Андреју, Свифт је веома једноставан језик који је пријатељски за почетнике. Строго је откуцан, што вам омогућава да ухватите многе грешке у фази компилације пројекта, а нетачан код једноставно неће радити.

„Објецтиве-Ц је прилично стар језик - истог доба као и језик Ц++. У време када је развијен, захтеви за језике су били потпуно другачији. Када је Свифт изашао, био је грешан, функционалност је била ограничена, а синтакса груба. И људи су имали пуне руке посла са Објецтиве-Ц. Годинама је унапређиван, све грешке су исправљене. Али сада мислим да је Свифт једнако добар као Објецтиве-Ц. Иако чак и Аппле и даље користи оба у својим пројектима. Језици су углавном заменљиви и међусобно се допуњују. Структуре и објекти једног језика могу се трансформисати у објекте и структуре другог језика. Добро је знати обе опције, али за почетнике Објецтиве-Ц често делује застрашујуће и збуњујуће."

тренинг

„На мом првом послу, мој шеф ме је обучио, помогао ми у имплементацији и постављању пројекта“, каже Марат, „Али рад на Андроиду и иОС-у истовремено је тежак. Потребно је време да се обнови, пређе са пројекта на пројекат, са језика на језик. На крају сам одлучио да треба да изаберем један смер и да га проучавам. Продат сам на Ксцоде-овом интерфејсу и Свифтовој једноставној синтакси."

Марат је ушао у одељење за развој иОС-а у ГеекБраинс-у. У почетку је било врло лако, јер је многе ствари знао из радног искуства. Годишњи курс је подељен на четири квартала. Према Андреју, први даје само основе: „Основе језика Свифт, познавање основних оквира, умрежавање, складиштење података, животни циклус апликације, контролер, основне архитектуре, главне библиотеке које сви користе, вишенитно и паралелизам у апликације.”

Друга четвртина додаје Објецтиве-Ц. Курс се изводи о архитектури и основним обрасцима програмирања. У трећем кварталу уче правилном стилу писања кода. Објашњава шта је фабрика, како правилно писати тестове, креирати пројекте, шта је Гит-Флов, Континуирана интеграција кроз Фаст Лане. Четврто и последње тромесечје посвећено је тимском раду, практичним задацима и пракси.

„Прво тромесечје је било лако“, каже Марат, „али онда сам почео да учим програмирање у Објецтиве-Ц, проучавајући обрасце дизајна, принципе Солид, Гит-Флов, архитектуру пројекта, тестирање јединица и корисничког интерфејса апликација, подешавање прилагођене анимације - а онда ми је постало занимљиво учити."

„За мене у ГеекБраинс-у није почело супер глатко“, каже Борис Павлов, а његов пут ка развоју иОС-а уопште није био најдиректнији. Дечака је подигла његова бака. Била је архитекта, математичар и дизајнер и усадила је Борису љубав према дизајну, научила га да црта руком и црта. Његов ујак је био систем администратор и заинтересовао је свог нећака за рачунаре.

Борис је био одличан ученик, али је изгубио интересовање за учење и напустио школу након деветог разреда. Након колеџа, почео је да се бави бициклизмом, а компјутери су избледели у позадини. Али једног дана Борис је задобио повреду кичме, што га је спречило да настави спортску каријеру.

Почео је да учи Ц++ код наставника на Иркутском институту за соларно-терестријалну физику. Тада сам се заинтересовао за развој игара и покушао да пређем на Ц#. И коначно, као и Марат, био је опчињен језиком Свифта.

„Одлучио сам да похађам бесплатни уводни курс на ГеекБраинс-у. Да будем искрен, био је веома досадан, тром и неразумљив“, присећа се Борис, „учитељ је причао о особинама језика, али је јурио с једне теме на другу не откривајући суштину. Када се курс завршио, још увек ништа нисам разумео.”

Дакле, након уводног курса, Борис није уписао једногодишњу обуку, већ кратки тромесечни курс, где предају саме основе струке. „Тамо сам нашла веома добре наставнике и све су јасно објаснили.

„Често смо критиковани, наводно наши приручници за обуку нису у потпуности ажурни, има нетачности. Али курсеви се стално ажурирају, а наставници увек говоре о иновацијама. Од група које водим, многе нађу посао након првог квартала. Наравно, обично су то људи са искуством у програмирању“, каже Андреј, „С друге стране, сво знање се не може пренети на једном курсу. Интеракција мрежног клијента у животу не може се уклопити у десет двосатних предавања. А ако идете само на курсеве и не радите ништа друго, онда нећете имати довољно знања. Ако учите сваки дан током целе године, онда овим темпом само лењи неће добити посао. Зато што је потражња у професији веома велика.”

Шта очекивати ако желите да постанете иОС програмер

Највише се види најновија слободна радна места за иОС програмере и претплатите се на нове.

Рад

Али ни Марат ни Борис нису тако лако нашли посао.

„Неке велике компаније већ дуго развијају иОС апликације у Објецтиве-Ц и настављају да одржавају стару базу кода. Нажалост, немам убедљив аргумент да их натерам да користе искључиво Свифт. Нарочито они који користе правило „не дирајте оно што функционише“, каже Марат, „Мало пажње се поклања смеру Објецтиве-Ц у Геекбраинс-у. Више је информативне природе. Али свака компанија за коју сам интервјуисао питала је за Објецтиве-Ц. А пошто су моје студије фокусиране на Свифта, као и мој претходни рад, добијао сам одбијања на интервјуима.

„После студија сам сам знао само најповршније основе, уз помоћ којих сам могао да направим најједноставнију апликацију“, каже Борис. „За посао, наравно, није било довољно, али сам био срећан због овога. У Иркутску је било тешко наћи посао. Тачније – никако. Одлучио сам да потражим у другим градовима. По броју слободних места, Краснодар, Москва и Санкт Петербург су се показали најрелевантнијим. Одлучио сам да одем у Санкт Петербург – ближе Европи.

Али испоставило се да није све тако ружичасто. Чак и јуниору ће бити опроштено оно што не може знати. Још нисам нашао посао. Радим за "хвала", стицање искуства. Разумем да то није оно што сам желео, али сам заинтересован и то ме покреће. Желим да стекнем знање“.

Андреи сматра да придошлице треба да траже праксу, а не посао. Ако имате врло мало знања, онда је нормално да стаж буде неплаћен. Андреи саветује да се пријаве за јуниорска радна места великим компанијама у којима је већ успостављен процес рада.

„Када схватите како функционише процес развоја софтвера, биће вам много лакше кретати се и пронаћи даљи посао, у зависности од ваших жеља. Неки људи иду у самостални развој, праве игре за себе, постављају их у продавницу и сами их уновчавају. Неки раде за велику компанију са строгим правилима. Неки људи зарађују у малим студијима који праве софтвер по мери, и тамо могу да посматрају цео процес – од креирања пројекта од нуле до испоруке у продавницу.”

Плате

Плата иОС програмера, као и сваког другог, зависи од питања „Москва или Русија“. Али због специфичности индустрије - пуно рада на даљину, могућности за пресељење и рад не на регионалном тржишту - бројке се све више приближавају једна другој.

Шта очекивати ако желите да постанете иОС програмер

Према калкулатору плата Ми Цирцле, просечна плата иОС програмера је нешто мања КСНУМКС КСНУМКС рубаља.

„Јуниор на веома ниском нивоу често ради бесплатно или за симболичан новац - 20-30 хиљада рубаља. Ако се јуниор намерно одведе на своју позицију, добиће од 50 до 80 хиљада. Средњи добијају од 100 до 150, а понекад и до 200. Сениори не добијају мање од 200. Мислим да им је плата око 200-300. А за вође тима, сходно томе, то је преко 300.”

Шта очекивати ако желите да постанете иОС програмер

интервјуи

„Први интервју је одржан преко Скајпа. На моје изненађење, то је био Гугл“, присећа се Борис, „тада сам се тек преселио у Санкт Петербург и почео да тражим посао. Добио сам пријаву за позицију иОС програмера. Не јуниор, не средњи, не старији - само програмер. Био сам одушевљен и почео сам да се дописујем са менаџером. Од мене је затражено да урадим технички задатак: морао сам да напишем пријаву за шале о Чаку Норису. Написао сам га. Рекли су ми да је све супер и заказали интервју на мрежи.

Звали смо једни друге. Лепа девојка је разговарала са мном. Али нису постављали никаква питања о познавању језика – само разне логичке проблеме, на пример, „Време је 15:15, колико је степени између казаљки сата и минута?“ или „Стуб је дугачак 10 метара, а пуж током дана пузи 3 метра, а ноћу се спушта 1 метар. За колико дана ће допузати до врха?“, и још пар сличних.

Затим су се појавила врло чудна питања – зашто волим Аппле и како се осећам према Тиму Куку. Рекао сам да је компанија у целини позитивна, али пре негативна према њему, јер му је важан новац, а не производи.

Када су почела питања о Свифту, моје знање је било довољно само за шеме програмирања и основе ООП-а. Поздравили смо се, недељу дана касније су ме позвали и рекли да нисам прикладан. У ствари, стекао сам огромно искуство из овога: потребно вам је знање, потребно вам је много – и теорија и пракса.”

Андреи каже да је „прва ствар коју свако пита током интервјуа животни циклус контролора. Они заиста воле да траже неки једноставан образац за програмирање. Дефинитивно ће питати о вашем искуству коришћења популарних библиотека. Дефинитивно ће се поставити питање о разликама у Свифт типовима вредности од референтних типова, о аутоматском бројању референци и управљању меморијом. Они могу да питају како су имплементирали складиштење података у апликације и да ли су имплементирали мрежне захтеве. Питаће се о основама РЕСТ-а и ЈСОН-а. Од јуниора се неће тражити одређене ствари и суптилности. Барем не питам."

Борис је имао другачије искуство: „Чак и када сам тражио праксу, обављао техничке послове и рекао да ми плата није битна, све док је то било довољно за изнајмљивање стана, и даље сам био одбијен. Читао сам чланке, покушавао да схватим шта регрутеру треба од придошлице. Али углавном су подбацили у теоријама. Из неког разлога су постављали питања из водећих лига која се не тичу новајлија.”

Марат је имао више среће. Сада ради у транспортној компанији и сам је задужен за иОС одељење, док наставља студије на факултету. „Пошто сам ја једини одговоран за иОС, мој рад се оцењује само по мојој способности да спроведем задатке који су ми додељени, а не по познавању теорије.“

Заједница

Андреј живи у Нижњем Новгороду и каже да се и тамо формирала велика заједница. Некада је био бацкенд програмер у Питхон-у, али су га пријатељи увукли у развој мобилних уређаја – а сада и сам подстиче све да то раде.

„Глобална заједница обично комуницира преко Твитера. Људи пишу своје блогове, снимају видео снимке на Иоутубе-у, позивају једни друге на подкастове. Једног дана сам имао питање о презентацији на којој је говорио вођа тима ХКТривиа. Ово је америчка квиз игра коју истовремено игра неколико милиона људи. Писао сам му на Твитеру, он ми је одговорио, разговарали смо, и ја сам му се захвалио. Заједница је изузетно пријатељска, што је одлично.”

Списак препоручене литературеПочетни ниво:

Просечан ниво:

Напредни ниво:

Извор: ввв.хабр.цом

Додај коментар