Мій шлях в iOS-розробку з нуля до працевлаштування на €600

Привіт, Днз! Мене звати Олег, і мені 29 років. 2 місяці тому я став розробником додатків для iOS, а ще я працюю фейсером (той самий чоловік, який іноді каже: «Вибачте, Вам відмовлено у відвідуванні...») в барі в кільці Арени. Сьогодні вирішив написати про свій досвід вивчення розробки на мові Objective-C самостійно за 5 місяців без курсів і менторів абсолютно безкоштовно, використовуючи матеріали в мережі. Текст буде цікавий початківцям розробникам або тим, чиє майбутнє ще туманно.

Пошук інформації для тих, хто вибрав шлях розробника, проходив і проходить власними руками, і ви завжди працюєте на межі незнання необхідної інформації. Мій шлях з нуля до працевлаштування на €600 і перших робочих днів в компанії з Люксембургу з офісом в центрі Києва (виявляється, ми ті ще індуси) цілком під силу будь-кому. Компанія монополізувала послуги IPTV та інтернет у себе в державі, а я в складі команди з 10 осіб (4 з яких — розробники Objective-C/Swift) вже півтора місяці пишу і правлю код додатків для сервісів IPTV та безкоштовних оголошень під платформу iOS.

Чому IT і вибір напрямку

У бік розробки почав дивитися під час другого серйозного даунстрика в покері, в якому за 2 роки пройшов шлях від знайомства з правилами до успішної професійної ігри онлайн в турнірах на низьких лімітах ($5-30) Pokerstars, подорожей в Дубаї, Берлін і кількох місяців життя в Барселоні і Гоа. Шукав для себе заняття, в якому досвід і знання будуть примножуватися з кожним днем і приносити прогнозований дохід, а не залежати від конкретної роздачі на фінальному столі. Курс гривні впав, і освоювати роботу на 5000 грн зовсім не хотілося. З комп'ютером був знайомий з п'яти років, програмування було забавою. Закінчував КРОК за спеціальністю «Веб-дизайн та інтернет технології» ще в далекому 2004 році в Маріуполі, разом із закінченням школи. Здобував освіту у військовому інституті в КПІ на факультеті Телекомунікації. Однак, програмування зовсім не приваблювало. Довгий час шукав себе.

Отже, чому програмування? Прагматичний підхід: можливість працювати за межами України, дистанційно; гідний рівень заробітної плати, яка росте разом з особистим розвитком і індустрії конкретно; задоволення від великих і маленьких успіхів.

Далі, чому iOS? Знайомство з пристроями Apple почалося в 2009 з плоского iPod із залізним корпусом, великим екраном і кльовим. Потім був iMac 27 дюймів, який вражав якістю картинки і дозволом екрану, що яскраво виділяє пристрій серед інших аналогів. Загалом, сподобався підхід виробника до формування та втілення своїх ідей у готовий вигляд, а також — комфорт від їх взаємодії між собою.

З чого почати навчання

Розробка для яблука ведеться на Objective-C і Swift (є й інші не рідні мови). Вивчив багато думок щодо вибору мови в якості першого кроку, спробував Try Objective-C by CodeSchool , сподобався підхід середовища розробки до позначення методів, назви змінних, — ніби пишеш лист (ага, точно, — бабусі). Як поет і затятий любитель гарних виразів і текстів, оцінив синтаксис мови і виділив його як привабливий для вивчення. Якби вибирав зараз починав би з Swift'а (напрям розвивається дуже швидко), однак багато хто додатки, написані на Objective-C також необхідно підтримувати.

Як точного плану для навчання з нуля вибрав безкоштовний повноцінний (і трохи застарілий) ресурс iOS Development Course , де Олексій Скутаренко, у вигляді волонтерської роботи та грандіозного плюси для власного резюме та працевлаштування в кращі компанії Силіконової долини, записав два курси з програмування Objective-C і Swift. Основною родзинкою даного ресурсу є не сам рівень подачі і глибина матеріалу, поданого в зручній формі теорія/практика від досвідченого фахівця, а постійно зростаюче ком'юніті з обговоренням домашніх завдань, проблем з якими стикаються студенти. Під час запису відео аудиторія групи була < 1'000 користувачів на кінець 2014 — початок 2015 років, а зараз вже — > 13'000. Бібліотека матеріалів розрослася і охоплює багато супутні теми у розробці для iOS і нові тенденції, з'являються нові відео курси від інших фахівців.

Для комфортного вивчення та аналізу будь-якої теми необхідно використовувати мінімум 3 джерела, так що після освоєння цього курсу, наступний проходив вже на англійській від Udemy — iOS 9 & Objective-C — Make 20 Applications (повторюючи вивчене) для вдосконалення професійної англійської. Паралельно з цим я регулярно вивчав навчальні відео англійською мовою за темами, які вже застаріли в курсі вивчення Олексія Скутаренко з виходом оновлень. Встиг ще почати вивчати Swift від iOS Development Course , однак розвиток Swift проходить семимильними кроками, і я припинив вивчення для того, щоб спрямувати всі сили на підготовку до співбесіди, вирішення тестових завдань та працевлаштуванню, адже для цього я і затіяв.

Підготовка та пошук першої роботи

Пошук роботи для мене звернувся в дуже азартне заняття. Ресурсів для пошуку вакансій розробника в Україні не так щоб багато. Поряд з гігантами широкого профілю work.ua і rabota.ua , а також вузькоспеціалізованими друзями jobs.dou.ua і djinni.co , використовував безліч інших зарубіжних сайтів, які не принесли ніякого ефекту. До речі, як і Джіні, де отримав лише одну пропозицію вже після того, як знайшов свого роботодавця.

Завдяки Junior дайджесту боровся за можливість потрапити на інтернатуру в Booking.com . Відправив резюме та супровідний лист, які були прийняті, пройшов тест на сайті HackerRank на знання основ алгоритмів і структур даних на базі Objective-C/Swift (до речі, перед здачею тестів на подібних ресурсах, переконайтеся, що ви спробували здати парочку прикладів перед тим, як пройти контрольний), отримав підтвердження на проходження усного інтерв'ю з рекрутером по телефону. Повністю підготувався, практикував англійська, вивчив купу інформації про компанії (яка, до речі, ого-го який потужний динозавр індустрії!), позитивних і негативних відгуків від людей, які вже проходили цей етап співбесід (спасибі GlassDoor за величезну кількість довірилися шукачів, трудящих і їх відгуки), склав шпаргалку. Розмова тривала понад 20 хвилин, в процесі якого я звернув увагу співрозмовника, що я добре підготувався. Але через деякий час прийшла відповідь, що моя кандидатура не була обрана для проходження подальших етапів відбору. Ок.

На ДОУ ще достатньо можливостей проявити себе починаючому розробнику без досвіду. Я відправляв резюме скрізь, де була відсутня згадка про комерційний досвід, а стек технологій підходив моїми скромними знаннями. Завдяки ресурсу VisualCV я створив CV зручне для редагування та відправлення прямо з телефону. Всі проекти залив на GitHub , створив докладний опис, анімовані гифки з наочним відображенням функціоналу, а також включив опис проектів із зображеннями скрінів в резюме. Достатньо уваги приділив написання шаблону супровідного листа, яке завжди правил під виявлену вакансію конкретної компанії.

Паралельно з цим, зібрав трохи посилань з питаннями/відповідями для підготовки до співбесід, статтями за паттернам проектування та іншим важливим аспектам для старту кар'єри. Деякі з ресурсів вже не молоді, проте актуальні:

— Посилання на російською:
Патерни ООП в прикладах для iOS/Хабрахабр
Довідник iOS дизайну (Human Interface Guidelines російською)
Архітектурні патерни в iOS/Хабрахабр
27 iOS бібліотек з відкритим вихідним кодом
Ідеальне резюме Junior'а: як знайти кращу роботу в сфері інформаційних технологій (тут більш повчальними є коментарі)
Як навчитися програмувати під iOS
Навчальний курс по розробці iOS+Swift+Objective-C додатків (розбір домашки курсу CS193P Stanford Spring 2016, Swift)

— Англійською:
Core Data у середовищі Cocoa, Mac OS, iOS
What Every Junior iOS Developer Needs to Know
iOS interview Questions with Answers part 1
iOS interview Questions with Answers part 2
iOS Interview Questions & answers for experienced developers
Sorting Algorithms in Objective-C
Sizes of iPhone UI Elements
iOS Developer Resume Examples

Інтерв'ю траплялися різні, боятися тут нічого. Одна компанія з головними офісами в Катарі та ОАЕ запрошувала на $400 проти заявлених мною $500 на перші 2 місяці практики навіть без тестового завдання і технічного співбесіди. Спілкувався по скайпу англійською з HR зі Львова та директором з Катару (який любив виголошувати «хараше»). Мабуть, вакансію необхідно було терміново замінити, тому співбесіду складалося в основному з односкладових питань «стикався я з тим-то і тим-то», на що я майже завжди відповідав «так». На прийняття рішення надали 3 дні. Довелося відмовитися на користь погоджених дат по співбесідах, тестові завдання для яких вже були успішно завершені.

Щодо тестових завдань — берись і роби! Тут знадобляться всі знання, отримані раніше, плюс регулярний серфінг . Діапазон складності різний — від елементарного додатки тестовій торгової площадки на 2 екрану (1 — список продуктів з однієї кастомних клітинки в TableView з кількома Header'ами, 2 — екран зі статичною таблицею полів властивостей кожного продукту з картинкою) до реалізації сервісу на основі API Кинопоиск для перегляду актуальних фільмів у кіно з сортировками по даті, відображенням локації, часу з докладним описом картини, подгрузкой трейлерів і списку людей, які брали участь в організації зйомок.

У підсумку, отримав непогану пропозицію в €600 для старту кар'єри, відмінний колектив і достатньо часу для вивчення Swift (на якому пишу новий проект), а також перспективу розвитку заробітної плати до €800 за півроку і до €1000 за рік. Тільки от вже зараз замислююся про те, щоб за рік піти на дистанционку і продовжити подорожі без прив'язки до робочого місця. Житло в Гоа коштує дешевше, ніж у нашій столиці біля метро, так чого мерзнути? Сніг, звичайно, красивий, тільки захід в аравійському морі набагато яскравіше.

Опубліковано: 22/12/16 @ 08:06
Розділ Різне

Рекомендуємо:

Інтерв'ю – Олексій Праць, автор блогу alexeytrudov.com
DOU Проектор: Pixpie — сервіс оптимізації зображень
Переїзд в Нідерланди: мій досвід
AI & ML дайджест #4: 16 трендів 2016 року
Огляд ІТ-ринку праці: Івано-Франківськ