Што да очекувате ако сакате да станете развивач на iOS

Што да очекувате ако сакате да станете развивач на iOS

Однадвор на iOS, развојот може да изгледа како затворен клуб. За да работите, дефинитивно ви треба компјутер на Apple, екосистемот е строго контролиран од една компанија. Однатре, понекогаш можете да слушнете и контрадикторности - некои велат дека јазикот на Objective-C е стар и несмасен, а други велат дека новиот јазик Свифт е премногу груб.

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

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

Во 2016 година, Марат Нургалиев од регионот Астрахан дојде да се вработи како развивач на мобилни телефони во локална телевизиска компанија. Ова беше негово прво интервју. Штотуку се врати од војска, без пракса и искуство, заборавајќи ја дури и теоријата со која веќе имаше проблеми. Единственото искуство на Марат во развојот на мобилни телефони беше неговата теза за анализа на протокот на истекување на информации преку апликациите за Android. На интервјуто, тој беше прашан за неговите студии, ООП и друга теорија, но Марат не можеше да ги скрие празнините во своето знаење.

Сепак, тој не беше одбиен, туку му беше дадена практична задача - да спроведе прикажување листа на вести со помош на API за две недели. И за iOS и за Android. „Ако имав искуство со Android, немаше ни алатка за создавање верзија на iOS. Околината за развој на апликации за iOS е достапна само на Mac. Но, две недели подоцна се вратив и покажав што можам да направам на Андроид. Со iOS морав да го сфатам тоа на лет. На крајот ме земаа. Тогаш живеев во Астрахан. Секоја работа во ИТ со плата над дваесет ми одговараше“.

Кои се развивачите на iOS?

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

„За да работите со iOS, потребен ви е MacBook, бидејќи само тој ја има потребната околина за развој на Xcode. Бесплатно е и дистрибуирано преку AppStore. За да инсталирате, треба да го имате вашиот Apple ID и ништо друго. Во Xcode можете да развивате апликации за се - телефон, таблет, часовник. Има вграден симулатор и уредник за сè“, вели Андреј Антропов, декан на одделот за развој на iOS во GeekBrains.

„Но, развојната околина може да се инсталира на Windows ако користите Hackintosh. Ова е работна, но опција за кружен тек - никој од сериозните програмери не го прави ова. Почетниците купуваат стар MacBook. А искусните обично можат да си го дозволат најновиот модел“.

Јазици - Swift или Objective-C

Речиси целиот развој на iOS се врши со користење на програмскиот јазик Swift. Се појави пред пет години и сега постепено го заменува стариот јазик Objective-C, кој Apple го користи во сите свои апликации повеќе од 30 години.

„Во Objective-C е акумулирана огромна база на кодови, така што сè уште се потребни програмери на двата јазика, во зависност од компанијата, нејзините задачи и апликации. Апликациите напишани пред многу години се базираат на Objective-C. И сите нови проекти стандардно се развиваат во Swift. Сега Apple прави многу за да го направи истовремениот развој за телефон, таблет, часовник и MacBook што е можно попогодно. Истиот код може да се компајлира и да работи насекаде. Ова не се случило порано. За iOS развивме во Swift, за MacOS користевме Objective-C.

Според Андреј, Свифт е многу едноставен јазик кој е пријателски за почетници. Тој е строго напишан, што ви овозможува да фатите многу грешки во фазата на компилација на проектот, а неточниот код едноставно нема да работи.

„Objective-C е прилично стар јазик - на иста возраст како и јазикот C++. Во времето кога беше развиен, барањата за јазици беа сосема различни. Кога излезе Swift, беше кабриолет, функционалноста беше ограничена, а синтаксата беше груба. И луѓето имаа полни раце работа со Objective-C. Многу години е подобрен, сите грешки таму се поправени. Но, сега мислам дека Свифт е исто толку добар како Objective-C. Иако дури и Apple сè уште ги користи и двете во своите проекти. Јазиците во голема мера се заменливи и меѓусебно се надополнуваат. Структурите и објектите на еден јазик можат да се трансформираат во објекти и структури на друг јазик. Добро е да се знаат двете опции, но за почетници Objective-C често изгледа застрашувачки и збунувачки“.

обука

„На мојата прва работа, мојот шеф ме обучи, ми помогна во спроведувањето и поставувањето на проектот“, вели Марат, „Но, истовремено е тешко да се работи на Android и iOS. Потребно е време за обнова, префрлање од проект на проект, од јазик на јазик. На крајот решив дека треба да изберам една насока и да ја проучам. Бев продаден на интерфејсот на Xcode и едноставната синтакса на Свифт“.

Марат влезе во одделот за развој на iOS во GeekBrains. Отпрвин беше многу лесно, бидејќи знаеше многу работи од работното искуство. Годишниот курс е поделен на четири четвртини. Според Андреј, првиот ги дава само основите: „Основата на јазикот Swift, познавање на основни рамки, вмрежување, складирање податоци, животен циклус на апликацијата, контролер, основни архитектури, главни библиотеки што ги користат сите, повеќенишки и паралелизам во апликации“.

Во вториот квартал се додава Цел-Ц. Се спроведува курс за архитектура и основни програмски обрасци. Во третиот квартал, тие го учат правилниот стил на пишување код. Објаснува што е фабрика, како правилно да се пишуваат тестови, да се креираат проекти, што е Git-Flow, Континуирана интеграција преку Fast Lane. Четвртиот и последен квартал е посветен на тимска работа, практични задачи и практиканти.

„Првиот квартал беше лесен“, вели Марат, „но потоа почнав да учам програмирање во Objective-C, да ги проучувам моделите за дизајн, принципите на Solid, Git-Flow, проектната архитектура, Unit и UI тестирањето на апликациите, да поставувам приспособена анимација. - а потоа јас Стана интересно да се учи“.

„Не започна супер глатко за мене во GeekBrains“, вели Борис Павлов, а неговиот пат кон развој на iOS воопшто не беше најдиректен. Момчето го одгледала неговата баба. Таа беше архитект, математичар и дизајнер и на Борис му всади љубов кон дизајнот, го научи да црта рачно и да црта. Неговиот вујко бил системски администратор и го интересирал неговиот внук за компјутери.

Борис бил одличен ученик, но изгубил интерес за учење и го напуштил училиштето по девет одделенија. По факултетот се зафатил со возење велосипед, а компјутерите исчезнале во втор план. Но, еден ден Борис доби повреда на 'рбетот, што го спречи да ја продолжи спортската кариера.

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

„Решив да го поминам бесплатниот воведен курс во GeekBrains. Да бидам искрен, тој беше многу досаден, тром и неразбирлив“, се сеќава Борис, „наставникот зборуваше за карактеристиките на јазикот, но брзаше од една тема на друга без да ја открие суштината. Кога заврши курсот, сè уште не разбрав ништо“.

Затоа, по воведниот курс, Борис не се запишал на едногодишна обука, туку на краток тримесечен курс, каде што ги учат самите основи на професијата. „Таму најдов многу добри наставници и тие објаснија сè сосема јасно“.

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

Што да очекувате ако сакате да станете развивач на iOS

Можете да видите најмногу најнови слободни работни места за развивачите на iOS и претплатете се на нови.

Работни места

Но ниту Марат ниту Борис не најдоа така лесно вработување.

„Некои големи фирми одамна развиваат апликации за iOS во Objective-C и продолжуваат да ја одржуваат старата база на кодови. За жал, немам убедлив аргумент да ги принудам да користат исклучиво Swift. Особено оние кои го користат правилото „не допирајте го она што функционира“, вели Марат, „Малку внимание се посветува на насоката Objective-C во Geekbrains. Тоа е повеќе од информативна природа. Но, секоја компанија за која интервјуирав прашуваше за Objective-C. И бидејќи моите студии се фокусирани на Свифт, како и мојата претходна работа, добивав одбивања на интервјуа“.

„Откако студирав, сам ги знаев само најповршните основи, со помош на кои можев да ја создадам наједноставната апликација“, вели Борис „За работа, се разбира, тоа не беше доволно, но бев среќен за ова. Беше тешко да се најде работа во Иркутск. Да бидам попрецизен - никако. Решив да барам во други градови. Во однос на бројот на слободни работни места, најрелевантни се покажаа Краснодар, Москва и Санкт Петербург. Решив да одам во Санкт Петербург - поблиску до Европа.

Но, сè се покажа дека не е толку розово. Дури и на помладиот ќе му се прости она што не може да го знае. Сè уште не сум нашол работа. Работам за „благодарам“, стекнувам искуство. Разбирам дека тоа не е она што го сакав, но ме интересира и тоа ме тера. Сакам да стекнам знаење“.

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

„Кога ќе разберете како функционира процесот на развој на софтвер, ќе ви биде многу полесно да се движите и да најдете понатамошна работа, во зависност од вашите желби. Некои луѓе влегуваат во независен развој, прават игри за себе, ги поставуваат во продавница и сами ги монетизираат. Некои работат во голема компанија со строги правила. Некои луѓе заработуваат пари во мали студиа кои прават софтвер по нарачка и таму можат да го гледаат целиот процес - од создавање на проект од почеток до доставување до продавница.

Плати

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

Што да очекувате ако сакате да станете развивач на iOS

Според калкулаторот за плата My Circle, просечната плата на развивач на iOS е нешто помала 140 000 рубли.

„Помладиот на многу ниско ниво често работи бесплатно или за симболични пари - 20-30 илјади рубли. Ако некој помлад намерно биде одведен на неговата позиција, тој ќе добие од 50 до 80 илјади. Средните добиваат од 100 до 150, а понекогаш дури и до 200. Постарите не добиваат помалку од 200. Мислам дека платата им е околу 200-300. И за водечките тимови, соодветно, тоа е над 300“.

Што да очекувате ако сакате да станете развивач на iOS

Интервјуа

„Првото интервју се одржа на Skype. На мое изненадување, тоа беше Google“, се сеќава Борис, „тогаш штотуку се преселив во Санкт Петербург и почнав да барам работа. Добив апликација за позиција за развивач на iOS. Не помлад, не среден, не постар - само програмер. Бев воодушевен и почнав да се допишувам со менаџерот. Од мене беше побарано да завршам техничка задача: морав да напишам апликација за шеги за Чак Норис. Јас го напишав. Ми рекоа дека се е супер и закажаа онлајн интервју.

Си се јавивме. Зборуваше убава девојка со мене. Но, тие не поставуваа никакви прашања за владеењето на јазикот - само разни логички проблеми, на пример, „Времето е 15:15, колку степени се помеѓу стрелките на часовникот и минутажата?“ или „Постот е долг 10 метри, а Полжавот во текот на денот лази 3 метри нагоре, а ноќе се спушта 1 метар. За колку дена ќе ползи до врвот?“, и уште неколку слични.

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

Кога започнаа прашањата за Swift, моето знаење беше доволно само за програмирање на обрасци и основите на OOP. Се поздравивме, една недела подоцна ми се јавија и ми рекоа дека не сум погоден. Всушност, од ова стекнав огромно искуство: ви треба знаење, ви треба многу - и теорија и практика.

Андреј вели дека „првото нешто што се прашуваат сите за време на интервјуто е животниот циклус на контролорот. Тие навистина сакаат да бараат некоја едноставна шема за програмирање. Тие дефинитивно ќе ве прашаат за вашето искуство со користење на популарни библиотеки. Дефинитивно ќе има прашање за разликите во типовите на вредности на Swift од типовите на референци, за автоматското броење референци и управувањето со меморијата. Тие може да прашаат како имплементирале складирање податоци во апликациите и дали имплементирале мрежни барања. Ќе прашаат за основите на REST и JSON. Од јуниорот нема да се бараат конкретни работи и суптилности. Барем јас не прашувам“.

Борис имаше поинакво искуство: „Дури и кога барав пракса, ги завршив техничките задачи и реков дека платата не ми е важна, се додека е доволна за изнајмување стан, сепак бев одбиен. Читав статии, се обидов да разберам што му треба на регрутер од новодојденец. Но, тие најмногу потфрлија на теории. Поради некоја причина, тие поставуваа прашања од големите лиги кои не се однесуваат на новодојденците“.

Марат имаше повеќе среќа. Сега работи во транспортна компанија и е сам на чело на одделението за iOS, додека ги продолжува студиите на факултетот. „Бидејќи јас сум единствениот одговорен за iOS, мојата работа се оценува само според мојата способност да ги спроведам задачите што ми се доделени, а не според моето познавање на теоријата“.

Заедница

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

„Глобалната заедница обично комуницира преку Твитер. Луѓето пишуваат свои блогови, снимаат видеа на YouTube, меѓусебно се покануваат на подкасти. Еден ден имав прашање за презентација на која зборуваше лидерот на тимот на HQTrivia. Ова е американска квиз игра која ја играат истовремено неколку милиони луѓе. Му пишав на Твитер, ми одговори, разговаравме, а јас му се заблагодарив. Заедницата е исклучително пријателска, што е одлично“.

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

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

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

Извор: www.habr.com

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