Чаго чакаць, калі хочаш стаць iOS-распрацоўшчыкам

Чаго чакаць, калі хочаш стаць iOS-распрацоўшчыкам

З боку iOS распрацоўка можа здавацца зачыненым клубам. Для працы абавязкова патрэбен кампутар ад Apple, экасістэму пільна кантралюе адна кампанія. Знутры таксама часам чутныя супярэчнасці - хтосьці кажа, што мова Objective-C стары і непаваротлівы, а хтосьці, што новая мова Swift занадта волкай.

Тым не менш, распрацоўшчыкі ідуць у гэтую сферу і трапіўшы туды, застаюцца задаволеныя.

На гэты раз пра свой вопыт нам расказалі Марат Нургаліеў і Барыс Паўлаў — як яны вучыліся прафесіі, як праходзілі першыя сумоўі, чаму атрымлівалі адмовы. А экспертам выступіў Андрэй Антропаў - дэкан. факультэта iOS-распрацоўкі у GeekBrains.

У 2016 годзе Марат Нургаліеў з Астраханскай вобласці прыйшоў уладкоўвацца на працу мабільным распрацоўшчыкам у мясцовую тэлекампанію. Гэта была яго першая гутарка. Ён толькі што вярнуўся з войска, без практыкі і досведу, забыўшыся нават тэорыю, з якой і так былі праблемы. Адзіным досведам у мабільнай распрацоўцы ў Марата была дыпломная праца па аналізе струменяў уцечак інфармацыі праз Android-прыкладанні. На гутарцы яго пыталіся пра вучобу, ААП і іншую тэорыю, але прабелы ў ведах Марату схаваць не ўдалося.

Тым не менш, яму не адмовілі, а далі практычнае заданне - за два тыдні рэалізаваць адлюстраванне спісу навін з дапамогай API. І пад iOS, і пад Android. «Калі на Android у мяне быў нейкі досвед, то для стварэння iOS версіі не было нават прылады. Серада распрацоўкі ios прыкладанняў ёсць толькі на Mac. Але праз два тыдні я вярнуўся, паказаў што мог на Android. З iOS прыйшлося выкручвацца на хаду. У выніку мяне ўзялі. Тады я жыў у Астрахані. Мяне задавальняла любая праца ў ІТ з заробкам вышэй за дваццаць».

Хто такія – iOS-распрацоўшчыкі

Мабільныя распрацоўшчыкі робяць прыкладанні для любых партатыўных прылад. Смартфоны, планшэты, разумныя гадзіны і ўсе астатнія платформы, якія падтрымліваюць Android ці iOS. Фундаментальныя асновы мабільнай распрацоўкі не адрозніваюцца ад звычайнай, але з-за спецыфічных інструментаў яе вылучылі ў асобны напрамак. Тут выкарыстоўваюцца свае прылады, мовы праграмавання і фрэймворкі.

«Для працы з iOS патрэбен макбук, таму што толькі на ім ёсць неабходнае асяроддзе распрацоўкі Xcode. Яна бясплатная і распаўсюджваецца праз краму прыкладанняў AppStore. Для ўстаноўкі трэба мець сваёй Apple ID і больш нічога. У Xcode можна распрацаваць прыкладанні для чаго заўгодна – тэлефона, планшэта, гадзін. Убудаваны сімулятар і рэдактар ​​ёсць для ўсяго», - кажа Андрэй Антропаў, дэкан факультэта iOS распрацоўкі ў GeekBrains.

«Але асяроддзе распрацоўкі можна паставіць і на Windows, калі выкарыстоўваць „Хакінтош”. Гэта працоўны, але вакольны варыянт - ніхто з сур'ёзных распрацоўшчыкаў падобным не займаецца. Маладыя купляюць старэнькі Макбук. А дасведчаныя звычайна могуць сабе дазволіць апошнюю мадэль».

Мовы - Swift або Objective-C

Амаль уся iOS-распрацоўка вядзецца пры дапамозе мовы праграмавання Swift. Ён з'явіўся пяць гадоў таму і цяпер паступова выцясняе старую мову Objective-C, якую Apple выкарыстоўвала ва ўсіх сваіх прыкладаннях больш за 30 гадоў.

«На Objective-C назапашана велізарная база кода, таму да гэтага часу патрабуюцца распрацоўшчыкі на абедзве мовы, у залежнасці ад кампаніі, ад яе задач і прыкладанняў. Прыкладанні, напісаныя шмат гадоў таму, заснаваныя на Objective-C. А ўсё новыя праекты па змаўчанні распрацоўваюцца на Swift. Цяпер Apple вельмі шмат робіць для таго, каб весці адначасовую распрацоўку пад тэлефон, планшэт, гадзіннік і Макбук было максімальна зручна. Адзін і той жа код можа быць скампіляваны і запушчаны ўсюды. Раней гэтага не было. Пад iOS распрацоўвалі на Swift, пад MacOS выкарыстоўвалі Objective-C».

Па словах Андрэя, Swift — вельмі простая мова, прыязная для пачаткоўцаў. Ён строга тыпізаваны, гэта дазваляе перахапіць на этапе кампіляцыі праекту шматлікія памылкі, а некарэктны код проста не будзе працаваць.

«Objective-C досыць старая мова – аднагодак мовы З++. У часы, калі яго распрацоўвалі, патрабаванні да моў былі зусім іншымі. Калі з'явіўся Swift, у ім было шмат багаў, функцыянальнасць была абмежаванай, сінтаксіс быў шурпатым. А на Objective-C у людзей была набітая рука. Ён шмат гадоў удасканальваўся, усе памылкі тамака былі выпраўленыя. Але зараз, я думаю, Swift не саступае Objective-C. Хоць нават Apple у сваіх праектах да гэтага часу выкарыстоўвае абодва. Мовы шмат у чым узаемазаменныя і ўзаемна дапаўняльныя. Структуры і аб'екты адной мовы можна ператварыць у аб'екты і структуры іншай мовы. Добра было б ведаць абодва варыянты, але для пачаткоўцаў Objective-C часта здаецца страшным і незразумелым».

Навучанне

«На маёй першай працы мяне навучаў начальнік, дапамагаў у рэалізацыі і наладзе праекта», – распавядае Марат, – «Але працаваць па Android і па iOS адначасова цяжка. Патрэбны час для перабудовы, пераключэння з праекту на праект, з мовы на мову. У выніку я вырашыў, што трэба абраць адзін кірунак і вывучаць яго. Мяне падкупілі інтэрфейс Xcode і просты сінтаксіс Swift».

Марат паступіў на факультэт iOS-распрацоўкі ў GeekBrains. Першыя часы было вельмі лёгка, таму што многія рэчы ён ведаў па досведзе працы. Гадавы курс разбіты на чатыры чвэрці. Па словах Андрэя, у першай даецца толькі самая база: "Аснова мовы Swift, веданне базавых фрэймворкаў, сеткавае ўзаемадзеянне, захоўванне дадзеных, жыццёвы цыкл прыкладання, кантролера, базавыя архітэктуры, асноўныя бібліятэкі, якія ўсё выкарыстоўваюць, шматструменнасць і паралелізм у прыкладаннях".

У другой чвэрці дадаецца Objective-C. Праводзіцца курс па архітэктуры, базавым патэрнам праграмавання. У трэцяй чвэрці вучаць правільнаму стылю напісання кода. Распавядаецца, што такое фабрыка, як правільна пісаць тэсты, фармаваць праекты, што такое Git-Flow, Continuous Integration праз Fast Lane. Чацвёртая і завяршальная чвэрць прысвечана каманднай рабоце, практычным заданням і стажыроўкам.

«Першая чвэрць прайшла лёгка», – кажа Марат, – «але потым пачалося вывучэнне праграмавання на Objective-C, вывучэнне патэрнаў праектавання, прынцыпаў Solid, Git-Flow, архітэктуры праекта, Unit і UI тэставання прыкладанняў, налада кастамнай анімацыі – і тады мне стала цікава вучыцца».

"У мяне ў GeekBrains усё пачалося не супер гладка", – распавядае Барыс Паўлаў, і яго шлях да iOS-распрацоўцы ў цэлым быў не самым прамым. Хлопца выхоўвала бабуля. Яна была архітэктарам, матэматыкам і дызайнерам і прывіла Барысу любоў да праектавання, навучыла чарціць ад рукі і маляваць. Яго дзядзька быў сісадмінам і зацікавіў пляменніка кампутарамі.

Барыс быў выдатнікам, але страціў цікавасць да вучобы і пайшоў са школы пасля дзевяці класаў. Пасля тэхнікума ён заняўся веласпортам, і камп'ютары пайшлі на другі план. Але аднойчы Барыс атрымаў траўму пазваночніка, якая не дала прадоўжыць спартыўную кар'еру.

Ён пачаў вывучаць C++ з выкладчыкам у Іркуцкім Інстытуце Сонечна-Зямной Фізікі. Затым зацікавіўся геймдэвам і паспрабаваў перайсці на C#. І, нарэшце, як і Марата, яго падкупіў мову Swift.

«Я вырашыў прайсці бясплатны ўступны курс у GeekBrains. Калі сапраўды, ён быў вельмі сумным, млявым і незразумелым», – успамінае Барыс, – «выкладчык распавядаў пра асаблівасці мовы, але кідаўся з адной тэмы ў іншую не расчыняючы сутнасці. Калі курс скончыўся, я так нічога і не зразумеў».

Таму пасля ўступнага курса Барыс паступіў не на гадавое навучанне, а на кароткі трохмесячны курс, дзе выкладаюць самыя асновы прафесіі. "Там мне трапіліся вельмі добрыя выкладчыкі, і тлумачылі ўсё дастаткова зразумела".

«Нас часта крытыкуюць, нібыта ў нас не зусім актуальныя метадычкі, ёсць недакладнасці. Але курсы ўвесь час абнаўляюцца, а выкладчыкі заўсёды распавядаюць аб навінах. З гуртоў, якія я вяду, вельмі шмат хто працаўладкоўваецца ўжо пасля першай чвэрці. Вядома, звычайна гэта людзі з досведам праграмавання», - кажа Андрэй, - «З іншага боку, усе веды немагчыма данесці за адзін курс. Сеткавае кліенцкае ўзаемадзеянне ў жыцці не змесціш у дзесяць лекцый па дзве гадзіны. І калі ты ходзіш толькі на курсы і больш нічога дадаткова не робіш, то ведаў не хопіць. Калі ж увесь год займацца кожны дзень, то пры такім тэмпе толькі лянівы не ўладкуецца. Таму што попыт у прафесіі вельмі вялікі».

Чаго чакаць, калі хочаш стаць iOS-распрацоўшчыкам

Вы можаце паглядзець самыя свежыя вакансіі для iOS-распрацоўшчыкаў і падпісацца на новыя.

Праца

Але ні ў Марата, ні ў Барыса працаўладкаванне не прайшло так проста.

«Некаторыя буйныя фірмы даўно распрацавалі iOS прыкладанні на Objective-C, і працягваюць падтрымліваць старую кодавую базу. Нажаль, у мяне няма важкага аргументу, каб прымусіць іх выкарыстоўваць выключна Swift. Асабліва тых, хто карыстаецца правілам „не чапай тое, што працуе“», – кажа Марат, – «Напрамку Objective-C у Geekbrains надаецца мала ўвагі. Яно нясе хутчэй за азнаямленчы характар. Але кожная кампанія, у якую я гутарыў, пыталася пра Objective-C. А так як вучоба арыентавана на Swift, як і мая мінулая праца, то на сумоўях я атрымліваў адмовы».

«Пасля вучобы я самастойна ведаў толькі самыя павярхоўныя асновы, з дапамогай якіх мог стварыць самае простае прыкладанне», — расказвае Барыс, — «Для працы, вядома ж, было недастаткова, але я радаваўся і гэтаму. З пошукамі працы ў Іркуцку было складана. Калі дакладней - зусім ніяк. Я вырашыў шукаць у іншых гарадах. Па колькасці вакансій самымі актуальнымі аказаліся Краснадар, Масква і Пецярбург. Я вырашыў паехаць у СПБ - бліжэй да Еўропы.

Але ўсё аказалася не так вясёлкава. Нават ад джуніёра прабачаць таго, чаго ён ведаць не можа. Я пакуль не знайшоў працу. Працую за „дзякуй“, набіраюся досведу. Разумею, што гэта не тое, чаго я хацеў, але мне цікава і гэта рухае мной. Я хачу атрымліваць веды».

Андрэй лічыць, што навічкам варта шукаць не працу, а стажыроўкі. Калі ведаў зусім мала - то гэта нармальна, калі стажыроўка не аплачваецца. Ісці на джуніёрскія вакансіі Андрэй раіць у вялікія кампаніі, дзе ўжо наладжаны працэс працы.

«Калі прыйдзе разуменне, як уладкованы працэс распрацоўкі софту, стане значна лягчэй арыентавацца і знаходзіць наступную працу, у залежнасці ад сваіх жаданняў. Нехта сыходзіць у незалежную распрацоўку, робіць гульні сам для сябе, сам жа іх залівае ў краму, і сам манетызуе. Хтосьці працуе на вялікую кампанію са строгімі правіламі. Хтосьці зарабляе ў невялікіх студыях, якія робяць софт на замову, і там могуць назіраць за ўсім працэсам - ад стварэння праекта з нуля да яго здачы ў краму ».

Зарплаты

Зарплата iOS распрацоўніка, як і любая іншая залежыць ад пытання "Масква ці Расія". Але з-за спецыфікі індустрыі - шмат выдаленай працы, магчымасці для рэлакацыі і праца не на рэгіянальным рынку - лічбы ўсё часцей набліжаюцца адзін да аднаго.

Чаго чакаць, калі хочаш стаць iOS-распрацоўшчыкам

Па дадзеных калькулятара заробкаў «Майго круга» сярэдні заробак iOS-распрацоўніка складае крыху менш 140 000 рублёў.

«Джуніёр зусім нізка ўзроўню часта працуе бясплатна або за сімвалічныя грошы - 20-30 тысяч рублёў. Калі ж джуніёр мэтанакіравана ўзяты на сваю пазіцыю, то атрымае ад 50 да 80 тысяч. Мідлы атрымліваюць ад 100 да 150, і часам нават да 200. Сіньёры менш за 200 не атрымліваюць. Я думаю, іх заробак у раёне 200–300. А ў тымлідаў, адпаведна, за 300».

Чаго чакаць, калі хочаш стаць iOS-распрацоўшчыкам

Гутаркі

«Першая гутарка прайшла па скайпе. На маё здзіўленне гэта быў Google», успамінае Барыс, - «тады я толькі пераехаў у Піцер і пачаў шукаць працу. Мне прыйшоў водгук на вакансію iOS распрацоўніка. Не джуніёр, не мидл, не сіньёр - проста распрацоўшчык. Я ўзрадаваўся, пачаў перапісвацца з мэнэджэрам. Мяне папрасілі выканаць тэхнічнае заданне: трэба было напісаць прыкладанне для жартаў пра Чака Норыса. Я яго напісаў. Мне сказалі, што ўсё класна і прызначылі онлайн гутарку.

Мы стэлефанаваліся. Са мной размаўляла прыемная дзяўчына. Але ніякіх пытанняў пра веданне мовы не задавалі - толькі розныя лагічныя задачы, напрыклад, "Час 15:15 колькі градусаў паміж гадзіннікавай і хвіліннай стрэлкай?" або "Слуп 10 метраў, слімак днём паўзе 3 метры ўверх, ноччу спускаецца на 1 метр. Праз колькі дзён яна дапаўзе да верха?», і яшчэ парачка падобных.

Потым былі зусім дзіўныя пытанні - завошта я кахаю Apple і як стаўлюся да Ціма Куку. Я сказаў, што да кампаніі ў цэлым - станоўча, а да яго хутчэй адмоўна, таму што яму важныя грошы, а не прадукты.

Калі пачаліся пытанні пра Swift, маіх ведаў хапіла толькі на патэрны праграмавання і асновы ААП. Мы развіталіся, праз тыдзень мне ператэлефанавалі і сказалі, што я не падыходжу. Уласна, я з гэтага дастаў велізарны досвед: патрэбныя веды, іх трэба шмат — і тэорыя, і практыка».

Андрэй расказвае, што «першая рэч, якую ва ўсіх пытаюцца на сумоўі — гэта жыццёвы цыкл кантролера. Вельмі кахаюць пытаць які-небудзь просценькі патэрн праграмавання. Абавязкова спытаюць пра досвед выкарыстання папулярных бібліятэк. Дакладна будзе пытанне пра адрозненні ў Swift Value Types ад Reference Types, пра Automatic Reference Counting і кіраванне памяццю. Могуць спытаць, як рэалізоўвалі захоўванне дадзеных у дадатках, і ці рэалізоўвалі сеткавыя запыты. Спытаюць пра асновы REST і JSON. Спецыфічныя рэчы і тонкасці ў джуніёра не будуць пытацца. Прынамсі я не пытаю».

У Барыса ж быў іншы досвед: «Нават калі я прасіўся на стажыроўкі, выконваў тэхнічныя заданні і казаў, што мне не важная зарплата, абы яе хапала на арэнду кватэры — мне ўсё роўна адмаўлялі. Я чытаў артыкулы, спрабаваў зразумець, што трэба рекрутеры ад пачаткоўца. Але завальвалі ў асноўным на тэорыі. Чамусьці задавалі пытанні з вышэйшай лігі, якія не датычацца навічкоў».

Марату пашанцавала больш. Цяпер ён працуе ў транспартнай кампаніі і адзін адказвае за iOS напрамак, працягваючы вучобу на факультэце. "Паколькі за iOS адказваю я адзін, мая праца ацэньваецца толькі ўменнем рэалізаваць пастаўленыя перада мной задачы, а не веданнем тэорыі".

Супольнасць

Андрэй жыве ў Ніжнім Ноўгарадзе і кажа, што нават там сфармавалася выдатная супольнасць. Калісьці даўно ён быў бэкэнд-распрацоўнікам на Python, але сябры перацягнулі яго ў мабільную распрацоўку – і зараз ён сам агітуе ўсіх ёй займацца.

«Сусветнае кам'юніці звычайна мае зносіны праз твітар. Людзі вядуць свае блогі, запісваюць ролікі на Youtube, клічуць адзін аднаго на падкасты. Аднойчы ў мяне з'явілася пытанне па прэзентацыі, дзе выступаў тымлід HQTrivia. Гэта амерыканская віктарына, у якую гуляе адначасова некалькі мільёнаў чалавек. Я яму напісаў у твітары, ён мне адказаў, мы пагутарылі, я падзякаваў. Кам'юніці надзвычай прыязныя, і гэта выдатна».

Спіс рэкамендаванай літаратурыНавічковы ўзровень:

Сярэдні ўзровень:

Прасунуты ўзровень:

Крыніца: habr.com

Дадаць каментар