Чого чекати, якщо хочеш стати 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

Додати коментар або відгук