Что нужно чтобы стать ios разработчиком

iOS-разработка: способы быстрого старта

Когда мы задумываемся о разработке под iOS, чаще всего в голове возникает пятизначная сумма входного порога: как минимум нужно iOS-устройство на последней версии ОС и Mac. Если вы уже пишете под iOS, вам наверняка известны альтернативные варианты, а если нет — посмотрите, вдруг пригодится? Приведенный ниже обзорный пост — как раз на этот случай. Под катом вы найдете довольно простую информацию, так что если хотите хардкорчика, вам не сюда!

Путь от Apple

Путь настоящего джедая тру iOS-разработчика лежит в плоскости следования идеям Apple. Свежий SDK, свежая же версия Xcode, документация от Apple по технологиям Apple, форумы разработчиков на технологиях Apple – если вдуматься, а что ещё нужно для создания отличного приложения, кроме толики времени? Польза очевидна: разработка идет самым близким к платформе и к идеологии Apple образом, с использованием всех новинок, предлагаемых Apple в текущем (и будущих) iOS API, так что постоянное изучение нового приносят больше хорошего, чем плохого.

Новинки Apple озвучивает регулярно. На последней конференции для разработчиков WWDC 2017 были показан новый SDK и новая версия среды для разработке Xcode. Список изменений довольно обширен (тем более в преддверии выхода iOS 11):

Xcode

Текстовый редактор в Xcode переписали на Swift, сделав его надёжнее и быстрее. Можно ли это почувствовать? Да! Подсветка синтаксиса работает (почти) моментально, открытие и навигация по файлу теперь без заметных задержек, а сообщения об ошибках больше не перекрывают исходный код. В beta все выглядит очень приятно, посмотрим, что нас ждет в релизе!

В Xcode появилась поддержка Markdown. Разметку можно использовать при документировании кода, и функциональность эта, на первый взгляд, косметическая, довольно заметно облегчает чтение кода, особенно чужого:

Что нужно чтобы стать ios разработчиком. Смотреть фото Что нужно чтобы стать ios разработчиком. Смотреть картинку Что нужно чтобы стать ios разработчиком. Картинка про Что нужно чтобы стать ios разработчиком. Фото Что нужно чтобы стать ios разработчиком
(Источник)

Редактор, кстати, научился подсвечивать блоки кода, удобно при изучении большого объёма кода.

Что нужно чтобы стать ios разработчиком. Смотреть фото Что нужно чтобы стать ios разработчиком. Смотреть картинку Что нужно чтобы стать ios разработчиком. Картинка про Что нужно чтобы стать ios разработчиком. Фото Что нужно чтобы стать ios разработчиком
(Источник)

Ещё одной важной фичей Xcode 9 стал рефакторинг кода на Swift, Objective-C, Objective-C++, C. Рефакторинг позволяет переименовывать классы, переменные, а также дробить методы на менее крупные.

Что нужно чтобы стать ios разработчиком. Смотреть фото Что нужно чтобы стать ios разработчиком. Смотреть картинку Что нужно чтобы стать ios разработчиком. Картинка про Что нужно чтобы стать ios разработчиком. Фото Что нужно чтобы стать ios разработчиком
(Источник)

Из менее выделяющихся, но тем не менее полезных фич, можно назвать:

Swift 4

Это изменение стоит особняком. Все, кто уже пережил чувство «в Swift 2 было, в Swift 3 пропало?!», могут ощутить дежавю, но сейчас ожидаются изменения, скорее, в лучшую сторону (впрочем, замечу вполголоса, когда это было не так, по мысли авторов-то?)

Что нужно чтобы стать ios разработчиком. Смотреть фото Что нужно чтобы стать ios разработчиком. Смотреть картинку Что нужно чтобы стать ios разработчиком. Картинка про Что нужно чтобы стать ios разработчиком. Фото Что нужно чтобы стать ios разработчиком

«Гибридное», «не совсем нативное» приложение

Уточню: термин, вынесенный в заголовок, даже по сути своей не очень верен. Приложения, которые мы получим в результате, самые что ни на есть нативные в смысле того, что они исполняются на той же iOS, на том же железе, что и любое другое ПО для iOS, просто сам процесс разработки позволяет использовать не только предложенные Apple технологии и языки программирования. Если человек умеет писать, скажем, на JavaScript, и не хочет разбираться в Swift, то Apple ему ничем не поможет (кроме, конечно, хорошего учебника по Swift), а вот вариант написать, условно говоря, приложение на JavaScript, а потом запустить его на iOS, как если бы оно было написано в Xcode (получив, таким образом, некий «гибридный» вариант) существует, и вполне востребован.

Ionic

Что нужно чтобы стать ios разработчиком. Смотреть фото Что нужно чтобы стать ios разработчиком. Смотреть картинку Что нужно чтобы стать ios разработчиком. Картинка про Что нужно чтобы стать ios разработчиком. Фото Что нужно чтобы стать ios разработчиком
Ionic – один из самых известных фреймворков для кросс-платформенной разработки. Он построен на базе Apache Cordova, что обеспечивает доступ к различным функциям устройства, таким как геолокация, push-уведомления, камера и прочим, и позволяет разработчикам создавать приложения для iOS и Android с веб-технологиями, такими как HTML, CSS и JavaScript.

В дополнение к фреймворку, Ionic может похвастаться целой экосистемой, облегчающей разработчикам-новичкам процесс изучения и вхождения. Ionic Cloud предоставляет разработчикам различные инструменты для управления, развертывания и масштабирования приложений на Ionic. Ionic Creator представляет собой визуальный редактор, который позволяет разработчикам быстро прототипировать и создавать мобильные приложения методом drag&drop. Наконец, существует Ionic View — бесплатное приложение для iOS и Android, которое позволяет разработчикам легко делиться своим Ionic-приложением с пользователями, тестерами и клиентами без необходимости развертывать приложение в магазине приложений конкретной мобильной платформы. Разработчики просто отправляют пользователям приглашение из приложения Ionic View, и как только оно принято, пользователь может загрузить и запустить конкретное приложение в своей копии Ionic View — так, как если бы приложение было установлено на его телефоне из магазина приложений.

Увы, есть и «ложка дегтя». Приложения, написанные с использованием Ionic, используют WebView, в результате мы получаем самое натуральное веб-приложение, со своей обычной (обычно не самой впечатляющей) скоростью работы. За счет этого трудно считать его подходящим для создания тяжелых приложений, таких, как игры, либо программы с интенсивным использованием графики. Разработка с Ionic требует хороших знаний Angular, по крайней мере при желании «выжать» из фреймворка как можно больше.

PhoneGap / Cordova

Что нужно чтобы стать ios разработчиком. Смотреть фото Что нужно чтобы стать ios разработчиком. Смотреть картинку Что нужно чтобы стать ios разработчиком. Картинка про Что нужно чтобы стать ios разработчиком. Фото Что нужно чтобы стать ios разработчикомPhoneGap исходно был создан компанией Nitobi. В 2011 году, Adobe приобретает Nitobi и бренд PhoneGap. Adobe затем передает одну из версий PhoneGap (назвав её Cordova), в Apache Foundation, оставив себе бренд PhoneGap и его как продукт. В результате Cordova можно рассматривать как движок, стоящий под капотом PhoneGap (а также некоторе другие гибридные фреймворки). PhoneGap, в свою очередь, добавляет к возможностям Cordova свои, дополнительные, функции.

PhoneGap во многих отношениях очень похож на Ionic. Он так же дает разработчикам возможность создавать кросс-платформенные приложения при помощи веб-технологий, и так же построен на базе Apache Codova. Однако PhoneGap не привязан к какому-то определенному Javascript-фреймворку, поэтому разработчики имеют бОльший выбор, на чем и как они будут создавать свои приложения. У PhoneGap имеется десктопное приложение, мобильное приложение, и облачный сервис под названием PhoneGap Build, который позволяет собирать и деплоить приложение.

Увы, подобно Ionic, PhoneGap использует WebView (который в iOS работает довольно медленно), так что со скоростью у приложений, созданных на базе этого фреймворка, дела не всегда обстоят блестяще.

Xamarin

Что нужно чтобы стать ios разработчиком. Смотреть фото Что нужно чтобы стать ios разработчиком. Смотреть картинку Что нужно чтобы стать ios разработчиком. Картинка про Что нужно чтобы стать ios разработчиком. Фото Что нужно чтобы стать ios разработчикомОснованная в 2011 году компания Xamarin, выпускающая семейство продуктов Xamarin через пять лет своего существования была купена компанией Microsoft. Сегодня продукты Xamarin представляют на рынке очень интересный подход к разработке кросс-платформенных мобильных приложений: приложения пишутся на C#, затем Xamarin компилирует его в нативное приложение для iOS, либо для Android, при этом в качестве базовой технологии Xamarin использует Mono, чем кросс-платформенность и обеспечивается. Разработчики Xamarin говорят, что полученные на выходе приложения используют нативное API платформы, для которой приложение компилируется, так что поведение полученного приложения никак не отличается от поведения любого другого приложения на этой же платформе. Разработку, кстати, можно вести при помощи Visual Studio (что совсем неудивительно).

Несмотря на то, что большая часть кода проекта может быть без изменений использована на каждой из поддерживаемых мобильных платформ, тем не менее, некоторые фрагменты потребуется писать специально для версии приложения под iOS и под Android.

React Native

Что нужно чтобы стать ios разработчиком. Смотреть фото Что нужно чтобы стать ios разработчиком. Смотреть картинку Что нужно чтобы стать ios разработчиком. Картинка про Что нужно чтобы стать ios разработчиком. Фото Что нужно чтобы стать ios разработчикомПроект React Native появился на свет в Facebook, и построен на основе React. Наше JS-приложение крутится на встроенном в iOS движке: на нем выполняется код и производятся все манипуляции с нативными виджетами ОС. React Native сопоставим с Xamarin, при этом приложения, созданные с помощью React Native, очень похожи на нативные приложения iOS и Android (потому что они собственно, оперируют нативными UI-элементами).

Синтаксис React довольно прост, что облегчает изучение фреймворка, а Стандартная библиотека UI-компонентов в поставке React Native содержит много полезных компонентов, однако самым большим отличием React Native от других JavaScript-фреймворков называют возможность использования кода на на Objective-C и Swift (чаще для для улучшения производительности или более тонкого взаимодействия с мобильной платформой). На практике это означает, что разработчики могут использовать существующие собственные библиотеки в своих приложениях React Native.

Веб, чистый веб

Часто недооцениваемая возможность использовать веб-страницу как отдельное приложение тем не менее к нашим услугам: если нет особых проблем со связью, а приложение обладает несложной функциональностью (вывод таблицы данных, или вывод постоянно обновляемого списка), то нет причин не воспользоваться старым добрым веб-просмотром информации с сервера.

Разница между открытием той же страницы в браузере будет в оформлении экрана: элементы управления браузера (в т.ч. и адресная строка) будут спрятаны, а содержимое страницы окажется выведенным на весь экран устройства. Из неудобств нас, конечно, ждет довольно долгое время открывания такого «приложения» (что связано со скоростью ответа удаленного веб-сервера), но для ряда применений это, думаю, вовсе не проблема.

Разработка приложений для мобильных платформ имеет свой подвох: поначалу думаешь, что дело не стоит усилий и времени, затем твоим приложением начинают пользоваться люди, причем пользоваться, в буквальном смысле нося его с собой, и вот тут ты понимаешь, что дело оказалось глубже, и затянуло тебя больше, чем ты мог бы себе представить.

Если вы любите мобильную разработку так же, как любим ее мы, рекомендую обратить внимание на следующие доклады Mobius 2017 Moscow (да-да, в ноябре Мобиус едет в Москву, если вы еще не знали):

Источник

10 навыков и знаний необходимых начинающему iOS разработчику

Что нужно чтобы стать ios разработчиком. Смотреть фото Что нужно чтобы стать ios разработчиком. Смотреть картинку Что нужно чтобы стать ios разработчиком. Картинка про Что нужно чтобы стать ios разработчиком. Фото Что нужно чтобы стать ios разработчиком

Профессия iOS разработчик сейчас довольно востребована, хорошо оплачивается и, возможно даже, модная, а потому привлекает много людей.

Ко мне и коллегам на собеседования приходит много кандидатов на открытые у нас вакансии, и я отчетливо вижу у многих новичков отсутствие базовых знаний или просто неуверенное владение ими. Хотя в интернете и много статей, книг и курсов (платных и бесплатных), из которых можно получить необходимые знания, не всегда просто понять, на изучении каких тем стоит сконцентрироваться.

В этой заметке я поделюсь информацией про то, какие навыки и знания я считаю важными для начинающего iOS разработчика, попробую объяснить зачем они нужны и дам ссылки на материалы для их изучения.

Материал адресован в первую очередь тем, кто хочет начать обучение, восполнить пробелы или понять свою готовность работать iOS разработчиком. Буду стараться пояснить все простыми словами.

Сразу скажу, что большая часть материалов, на которые буду давать ссылки, на английском языке. Я понимаю, что учиться на английском может быть сложнее и медленнее в начале, но это даст плоды позже — вы не сможете всегда находить хорошие актуальные материалы на русском.

Первые шаги

Абсолютно нормально, если вы при этом поймете или запомните не все темы, зато у вас появится основа — структурированные базовые понимания устройства iOS приложений и конструкций языка Swift. Уделив время этим вещам на старте, вам будет сильно проще добавлять знания по каждой из тем.

1. Auto Layout, Storyboard, верстка из кода

Создание интерфейса приложения на основе макета — базовый навык для iOS программиста. Знать стоит не только основные компоненты, из которых собирается интерфейс (UIView, UILabel, UIButton, UIImageView и т. д.), но и то как их расположить на экране, чтобы добиться желаемого положения и размера на разных по размеру экранах, в том числе при повороте устройства. Для простоты я бы выделил 3 способа создания интерфейса:

Чтобы освоить тему, рекомендую:

Что нужно чтобы стать ios разработчиком. Смотреть фото Что нужно чтобы стать ios разработчиком. Смотреть картинку Что нужно чтобы стать ios разработчиком. Картинка про Что нужно чтобы стать ios разработчиком. Фото Что нужно чтобы стать ios разработчиком

2. Жизненный цикл ViewController

Предположим для простоты, что каждый экран в мобильном приложении — это ViewContoller, а точнее — это наследник класса UIViewContoller. iOS разработчику важно знать, как устроен жизненный цикл экрана, а точнее — какие методы будут выполняться при подготовке, появлении, повороте, уничтожении и других состояниях экрана.

Что нужно чтобы стать ios разработчиком. Смотреть фото Что нужно чтобы стать ios разработчиком. Смотреть картинку Что нужно чтобы стать ios разработчиком. Картинка про Что нужно чтобы стать ios разработчиком. Фото Что нужно чтобы стать ios разработчиком

3. Работа с UITableView и UICollectionView

Большая часть интерфейсов мобильных приложений сделаны на основе таблиц. Вы должны уметь добавить на экран таблицу, подготовить ячейки, реализовать нужные протоколы, назначить делегат и источник данных.
Помимо этого важно понимать, зачем нужны идентификаторы, и что понимается под переиспользованием ячеек.

4. Grand Central Dispatch

Приложения должны уметь параллельно решать несколько задач. К примеру, пока пользователь листает ленту новостей, загружаются данные из сети, и интерфейс при этом не блокируется.

Grand Central Dispatch — одна из важных и довольно непростых тем, которую вам точно стоит знать, если вы собираетесь программировать под iOS.

5. Работа с сетью, получение данных из JSON

Какие из ваших любимых приложений продолжают работать без подключения к Интернету? Думаю, что если откинуть игры, вы увидите, что большая часть приложений работает с данными из сети. Что в этом случае должен уметь начинающий iOS разработчик? Думаю, что создать сетевой запрос, получить и обработать данные. Знаний о URLSession для начала должно хватить. Это самый базовый подход, и я рекомендую в первую очередь освоить применение именно его. Возможно будет не лишним знать о существовании такой популярной библиотеки как Alamofire, но это не должно быть в ущерб URLSession.

Чаще всего данные, которые приходят в приложения по сети, передаются в формате JSON. Нужно уметь эти данные получить и обработать, к примеру, вывести на основе их какой-нибудь список. При этом желательно, чтобы вы умели делать это не только с помощь одной из популярных библиотек, к примеру, SwiftyJSON, но также владели стандартными средствами языка, были знакомы с Codable.

Довольно подробно про работу с URLSession рассказано в статье от Audrey Tam. Материалов по работе с JSON довольно много, можно посмотреть статью Anand Nimje.

Чтобы освоить тему на практике рекомендую сделать приложение с прогнозом погоды, в котором есть поле ввода названия города, создается запрос к API (подойдет OpenWeatherMap), и на основе полученного JSON выводится информация о погоде.

6. Знания Swift

Тут очень поможет прочтение документации. Изучение Swift может занять время, но на выходе вы должны взять с собой и свободно ориентироваться в следующих темах:

Тщательно разберите отличия структур и классов — не только потому что этот вопрос вам зададут на собеседовании с большой вероятностью, просто это нужно будет в работе.

Параллельно с прочтением документации по Swift можно смотреть видео марафон по Swift Алексея Скутаренко. Этот марафон не заменит прочтение документации из-за того, что в нем раскрыты не все темы, а еще он опубликовал 4 года назад, и за это время в Swift произошли небольшие изменения. Алексей проделал грандиозный труд, полезного материала и мыслей там много.

7. Сильные и слабые ссылки, ARC, утечки памяти

Как сделать так, чтобы у приложения не было проблем с нехваткой памяти?
Что такое ссылки, какие бывают типы ссылок? Что именно делает ARC, и как избежать Retain Cycle, и что это вообще такое? Тема не сложная, но крайне важная. Ознакомиться можно, к примеру, в SwiftBook.

8. Протоколы и делегаты

При разработке под iOS вы часто будете встречать делегирование, а точнее передачу отвественности от одного объекта к другому. Для примера классическая задача — таблица с ячейками, в каждой из которых есть кнопка «добавить элемент в избранное». Вы должны уметь создать для этой ситуации протокол, назначить делегат, реализовать у него поддержку протокола.

9. Архитектурные подходы: MVC, MVVM, MVP, VIPER

Для простоты создания и поддержки программных продуктов при разработке их разделяют на отдельные блоки. К примеру, один блок отвечает только за работу с данными, а другой за внешний вид. У такого подхода есть ряд преимуществ, к примеру, вы сможете изменить внешний вид, не трогая логику, или при необходимости сможете поменять источник данных, опять же не меняя остальные части приложения. Очевидно, что эти подходы используются не только в iOS, скажу больше — они пришли сюда из других платформ. Есть несколько устоявшихся подходов к разделению ответсвенности между разными блоками, для работы с iOS я рекомендую хорошо разобраться с MVC и MVVM.

Вместо нормального объяснения разделения отвественности в архитектуре я часто слышу на собеседованиях, что-то вроде «MVC это плохо, потому что это Massive View Controller, а MVVM гораздо лучше».

10. Хранение данных, Core Data

Как мы говорили выше, многие приложения работают с данными из сети. Нужно уметь сохранять эти данные на устройстве, а также сохранять то, что вводил пользователь. В базовый набор способов для хранения данных для начинающего iOS программиста, на мой взгляд, входят

Я считаю, что равномерно распределив указанные выше темы и уделяя учебе от 20 часов в неделю, реально даже с нуля освоить всё это за срок в 4-5 месяцев.
С таким багажом знаний можно начинать брать заказы на небольшие приложения или ходить на собеседования. К примеру, при наличии вакансии мы бы человека с таким набором знаний взяли в нашу мобильную команду.

Напишите свое законченное приложение

Я уверен, что iOS разработчику стоит иметь своё приложение. Речь идет про законченное приложение, которое решает какую-то нужную задачу или проблему (ничего страшного, если решает только для автора приложения). В процессе написания своего приложения вы столкнетесь с творческими задачами поиска подходящих решений, это не только позволит лучше закрепить теоретические знания, но и доставит вам удовольствие.

Не стесняйтесь своих приложений, показывайте их на собеседованиях. Даже если приложение простое, даже если дизайн делали сами, и получилось не самое красивое приложение (если приложение нужное, функционал потом можно расширить, а дизайн сделать новый).

Источник

Советы для тех, кто решил стать iOS-разработчиком

Что нужно чтобы стать ios разработчиком. Смотреть фото Что нужно чтобы стать ios разработчиком. Смотреть картинку Что нужно чтобы стать ios разработчиком. Картинка про Что нужно чтобы стать ios разработчиком. Фото Что нужно чтобы стать ios разработчиком

Очень давно меня просили написать эту статью, но то ли мне микрофон мешал, то ли просто звезды не сошлись.

Коротко обо мне: мне 43, я Женщина и iOS-разработчик. Сейчас у меня одна из самых востребованных специальностей на рынке, поиск работы составляет в среднем от 2 дней до 2 недель.

Тем, кто случайно натолкнулся на эту статью и все еще раздумывает, сменить ли ему профессию или род деятельности, отвечу: если Вы не попробуете, то никогда и не узнаете — сможете изменить свою жизнь, или нет. Заранее бояться ошибиться — пустая трата времени.

Ну а теперь, хватит моралей, приступаю к повествованию о том, как я стала iOS-разработчиком, и с какими столкнулась трудностями на своем пути. Кому лень читать, можете сразу перейти к итогам.

Определение направления

В 2014 году компания, в которой я проработала 7 лет, закрылась (сотрудникам Ланка привет!). И передо мной встал выбор: искать работу или подумать о том, кем я на самом деле хочу работать.
При закрытии руководство компании поступило по отношению ко всем своим сотрудникам очень лояльно, и мы получили при увольнении деньги, с учетом скакнувшего тогда курса очень даже приличные (мне хватило прожить на них 8 месяцев).

В Ланке я работала в закупках, аналитиком. Ничего аналогичного по зарплате или функциональным обязанностям я долго не могла найти.

На сайте hh.ru натолкнулась на рекламу: стань программистом и получи «сто миллионов» зарплату уже через полгода! Я решила проверить рынок и была приятно удивлена, что средняя зарплата программиста выше зарплаты хорошего закупщика со знанием английского в 2-3 раза. Ух ты! (подумала тогда я): работаешь в офисе, занимаешься логическими задачами. Может, вспомнить институтскую молодость и начать программировать?

Пошла на один общеизвестный ресурс, о котором, по этическим соображениям к читателям, не буду сообщать, и прошла там бесплатный курс по основам программирования. Курс пролетел, даже не заметила! Все задачи были легкими (сказалась институтская база), и я окончательно поняла, что ближайшей моей целью будет: переквалифицироваться в программиста! (для понимающих небольшое отступление: знания английского у меня были нулевые, т.к. в школе и ВУЗе учила французский).

Курсы

Цель поставлена, теперь надо было определиться — какой из множества направлений в программировании имеет смысл освоить? Нашла друга — программиста (java), он мне порекомендовал податься в Мобильную разработку, т.к. ниша достаточно новая, быстро развивается, и разработчиков с каждым годом будет все больше и больше не хватать. (Альберт, если ты это читаешь, очередной тебе привет и огромная благодарность за совет!).

Ну что ж, цель поставлена, пора действовать! Заплатила за онлайн курсы (рассчитанные на 6 месяцев + 2 месяца стажировка), тогда стоимость курсов составляла порядка 40к рублей (если что, то сейчас в два раза дороже). Подождала старта своей группы и плюхнулась со всего разбега в этот океан новых знаний.

Было очень страшно рисковать, т.к. на курсе все были сильно моложе меня (от 18 до 30 лет), а девушек практически не было (отсеялись после первых уроков).

Небольшое отступление: здесь и ниже все цены будут указаны для Москвы. Как дела с зарплатами и ценами в другом регионе, я подсказать не смогу.

Забегая вперед, хочу сказать, что многое зависит не только от Вашей целеустремленности, желания и возможностей, но и от того, какой преподаватель вам попадется на этом пути. Мне в этом смысле повезло!

Теперь же по порядку: онлайн-обучение на мобильного разработчика включало в себя 2 курса по ios-разработке, основы Java и 2 курса по Андроид-разработке + любой подарочный курс, какой мне понравится. Занятия (онлайн) начинались вечером около 20-00, чтобы все работающие успели к этому времени вернуться домой.

Я для себя определила, что хочу заниматься именно Андроид-разработкой, т.к. ни одного яблочного устройства у меня не было, да и я относилась к тем людям, кто постоянно троллил владельцев гаджетов apple за их необдуманную трату денег (кто бы тогда мог представить, что через три года у меня будет два iPhone и macBook pro).

Я несколько разочаровалась из-за того, что обучение стартовало именно с изучения iOS. Однако, поскольку iOS изучался на языке objectiveC, мне в этом смысле было даже проще, т.к. синтаксис очень схож с родным институтским C/C++. Самая большая сложность на курсе возникла из-за отсутствия mac-а. У меня был очень крутой ноутбук на Windows (16gb, i7, SSD256), поэтому, перелопатив форумы, нашла, как можно установить виртуальную машину и под ней уже разрабатывать на iOS. Сказать, что виртуалка тормозила — это мягко сказано! Кроме того, собирать проекты приходилось на симуляторе, т.к. у меня ни аккаунта разработчика не было, ни устройства, на котором разрабатывать, да и подключить устройство для сборки на виртуальной машине — то еще удовольствие. Покупать б/у телефон я не рискнула, да и бюджет у меня был жестко распланирован ровно на 8 месяцев.

Поэтому совет тем, кто решил заняться изучением iOS: купите себе дешевенький б/у macMini или поставьте хакинтош. И по деньгам не дорого, и эффективность выше (не нужно будет ждать по 10 минут каждой сборки).

На первое время телефон не понадобится, т.к. для сборки на телефоне нужен аккаунт разработчика. Ну а если у вас уже есть айфон и если денег не жалко, то аккаунт стоит 100 у.е./год. Я пошла по сложному пути и обучение проходила на виртуалке, т.к. не видела смысла тратить деньги, к тому же Андроид тогда был моей целью.

Но… так получилось, что мне очень повезло с преподавателем iOS. (Lowtrack, в очередной раз, огромная Вам благодарность за помощь и терпение!). Он очень ответственно подходил ко всем урокам, готовился заранее, каждый урок длился не 1 час, а 3+ часа, т.к. за 1 час сложно было раскрыть все темы, объяснить начинающим, как пользоваться XCode. Но самое замечательное то, что если я чего-то не понимала, Lowtrack всегда был на связи и в любой день (рабочий или выходной) давал по скайпу все разъяснения, объяснял ошибки, разжевывал весь непонятный для меня материал.

Небольшое отступление: я надолго запомню, как он мне на примере офисного шкафа и рабочего стола объяснял, что такое ООП, что такое классы, объекты, методы.

Поскольку, я знала, что мой уровень в программировании далек от того, который имелся у молодых ребят после ВУЗа, я занималась целыми днями по 14 часов. Забывала обедать, ужинать. Иногда ДЗ делала не только днем, но и ночью. Сбила себе режим так, что ложилась в 6 утра, в 12 просыпалась и опять за учебу. В общем, чтобы все успевать наравне со всеми, выкладывалась на 300%.

На курсах Lowtrack посоветовал мне пойти изучать английский (хотя бы получить базовый уровень), пришлось раскошелиться и еще 25к вложить в начальные 3-х месячные курсы английского.

Поиск стажировки

Через 3 месяца курсы iOS закончились, и я осознала для себя, что влюбилась в iOS-разработку. Позже, когда я уже приступила к изучению Андроида, я поняла, что хочу заниматься именно iOS. Да и преподавание Андроида было ниже плинтуса: не смотря на то, что преподаватель на курсах был лучшим из лучших, он совсем не уделял нам времени, скидывал уже заранее заготовленные методички по теории, 90% занятий уходило на разбор чужих домашних заданий, причем моя работа так ни разу и не была просмотрена. В общем, на этих курсах я поняла, что зря трачу время, пора искать стажировку.

На онлайн-обучении мне обещали обязательную стажировку 2 месяца. Я начала их дергать по этому поводу, и мне предоставили контакты фирм, которые набирают джуниоров на стажировку после этих курсов. Как оказалось, стажировка — это замануха. На самом деле никто ее тебе не организует, только даст контакты компаний, где твое резюме, возможно, посмотрят. Контакты онлайн-ресурса на стажировки у них были красиво оформлены на отдельной странице. Результат: из 5 компаний только 2 рассмотрели мое резюме, и я тут же получила отказ (да и что тут удивляться, когда там висели вакансии таких компаний как redmadrobot), остальные компании даже не удосужились посмотреть мое резюме. На hh также ни одной вакансии для джуниоров не было. Я начинала паниковать, т.к. прошло уже 5 месяцев с начала курсов, и время уже поджимает.

Мне пришлось заняться поиском стажировки самостоятельно. Те золотые горы, что мне обещали на hh.ru в рекламе, я не обнаружила. Много гуглила и натолкнулась на сообщение в vk, что в команду Conditional (название специально изменено) постоянно набираются стажеры ios и Андроид. Написала им в группе. Что самое удивительное, быстро получила ответ. Мне и ребятам, с которыми я вместе закончила курсы ios (таких было еще 3, а брали только 1), дали тестовое задание. Я его выполнила (подозреваю, код у меня был очень смешной и некрасивый). Мне дали еще одно задание, чтобы я не изобретала велосипеды, а свое тествое задание сделала с определенным фреймворком. Переделала! И дальше оставалось только ждать ответа… Ждали ответа мы долго (порядка 3 недель). Через 3 недели я не выдержала ожидания и съязвила в чатике, что, наверное, тестовое задание — это и было нашей стажировкой. После этой фразы из Conditional со мной связались и позвали на собеседование в Зеленоград.

На собеседовании мне дали простенькую задачку, что-то связанное с сортировкой. Я честно говоря, не знала синтаксис, поэтому загуглила, а саму сортировку худо-бедно изобрела. Уж не знаю, видел ли руководитель мои мучения (наверняка видел), сказал только, что логика интересная, но можно было сделать попроще.

Потом задал несколько задач на логику. И сообщил, что я им подхожу.

Стажировка и первая работа

Через 6 месяцев после старта курсов я получила долгожданную стажировку! Но радоваться я перестала сразу, как только мне объявили, что стажировка неоплачиваемая, и если я стажировку пройду успешно, то тогда, возможно, меня возьмут на работу. Т.е. я 3 месяца каждый день приезжаю в компанию, учусь/работаю, а за это мне не платят ни копейки! Взгрустнулось немного, т.к. те ребята, которых не позвали на эту стажировку, всё же нашли себе оплачиваемую работу, правда у них уже был опыт программирования на других языках. Я решила, что не нужно завидовать, а ухватиться за этот шанс. Конечно, я очень рисковала! Денег у меня было запланировано только на 8 месяцев, а поскольку еще ушли деньги на курсы английского, вообще только на 7, поэтому даже пришлось немного влезть в долги.

Что нужно чтобы стать ios разработчиком. Смотреть фото Что нужно чтобы стать ios разработчиком. Смотреть картинку Что нужно чтобы стать ios разработчиком. Картинка про Что нужно чтобы стать ios разработчиком. Фото Что нужно чтобы стать ios разработчиком

К концу стажировки я осознала, насколько знания, которые даются на курсах, отличаются от реального опыта! Если брать в процентном соотношении, то те знания, что я получила на курсах — это примерно 10% от всех знаний, что я получила на стажировке.

К моему стыду, на стажировке и курсах я очень мало внимания уделяла теории. Тогда мне никто не объяснил, что теоретические знания очень важны и понадобятся при освоении практических заданий и для дальнейших прохождений собеседований.

На стажировке нам, таким же джуниорам, как и я (по 5 человек на каждой платформе), доверили писать реальный проект! Это было очень интересно!

Поскольку в этой компании такой большой проект был организован впервые, везде и всюду в проекте наблюдался хаос. Каждый стажер писал кто во что горазд. Толком ревью не было, т.к. не успевал у нас один руководитель уследить за всеми, обучить всех, еще и архитектуру продумать. Но зато мы все получили незабываемый опыт, при работе над этим проектом. (Отдельная благодарность: Mehdzor, руководителю Мобильной разработки, за полученные знания, за терпение и за понимание).

Стажировка закончилась. По завершении стажировки мне предложили не густо, не пусто — зп в 45к (это, конечно, не такая зарплата, которую мне бы хотелось, т.к. работая менеджером я бы смогла получать около 60к), но я так уже сработалась с этими ребятами, что мне не хотелось расставаться. Компания серая, все платили наличными в конверте, по трудовой мы даже не числились. Ни дня стажировки мне не сократили, хотя обещали, что если я себя хорошо покажу, то срок уменьшится. Как оказалось, это только обещания… испытательный срок у всех коллег был одинаковым, т.к. это дополнительная мотивация для стажеров для улучшения работы!

Через полгода к нам в компанию на стажировку взяли еще 2 девочек.

И тут началась травля: мне постоянно указывали на прогресс этих двух девочек-студенток, на их отличную теоретическую базу, на схватывание на лету (кстати, одна из них стажировку так и не прошла). Было очень обидно! Кроме того, мне тогда приходилось параллельно заниматься менеджерской работой на новом проекте, и времени на разработку оставалось мало (80% времени я уделяла не разработке, а менеджерским обязанностям). Чем дальше, тем было в компании хуже. Набрали много студентов-стажеров, появились задержки в зарплатах. А осенью начали сокращать людей, т.к. проектов больше не было.

Да, обидно, грустно, но, видно, пришло время двигаться дальше.

К сожалению, последнюю зп мне так и не выплатили. Думаю, эти деньги легли черным пятном на их карму. Проекты у них больше не появились, и компания закрылась.

Однако все, кто ушел, смогли быстро найти хорошую работу на зп от 80+, даже с опытом от 6 месяцев, в таких компаниях как Сбертех, Альфабанк, Тинькофф.

Очередной совет начинающим: да, найти работу джуниорам очень сложно, и возможно, вы потратите не один месяц, однако старайтесь все же найти белую зарплату и желательно, чтобы был куратор (т.е. либо стажировка с дальнейшим рабочим местом, либо джуниором в уже сложившийся коллектив).

Например, у меня коллега (Саша, помаши рукой маме!), который со мной работает (джуниор), искал работу после курсов 2 месяца. Прошел 8 собеседований. Из них только 2 приглашения. Средняя ЗП на рынке для джуниора порядка 60-80к. Если вариант со стажировкой, то за стажировку могут платить около 30-50к, что, согласитесь, лучше, чем работать в H&M или курьером.

Низкая квалификация разработчиков в маленьких компаниях

Меня же немного поштормило. Hr-ы, когда видят мой возраст, скептически относятся к моему резюме (и я их, наверное, даже понимаю), поэтому такого количества предложений, как молодые ребята, я не получала.

Я устроилась в одну небольшую конторку с белой зарплатой. Поскольку опыта у меня было чуть больше года, я себя честно оценивала джуниором. Очень сильно удивилась, когда в этой компании ребята, которые писали проект уровнем, оказались еще ниже (такое тоже бывает)…

Моей главной ошибкой при устройстве в эту компанию было: на собеседовании я не поинтересовалась, кто будет тимлидом и как организован процесс обучения джуниоров. Позже оказалось, что тимлида не было вообще, и им пытались сделать меня, повесив обязанности без повышения в зарплате, т.к. по уровню я только джуниор.

Возможно, кому-нибудь из молодых и амбициозных ребят это покажется очень интересным, но я бы рекомендовала не браться за такую должность без соответствующего опыта, т.к. не имея опыта, вы не сможете продумать архитектуру проекта (можно, конечно, везде и всюду пихать Viper, но далеко не все стажеры или джуниоры знают, что это такое из-за отсутствия теоретической базы).

Проработав 2 месяца, я решила уйти, т.к. не было грамотного тимлида в компании, мало работы, запрещали проводить рефакторинг, а поддерживать такой код нереально.

Потом мне опять пришлось искать работу и не один раз…

Ситуация на рынке и серые зарплаты

Ситуация на рынке сейчас такая, что многие компании не заморачиваются над маркетингом, набирают разработчиков, вкладывают деньги, проект стартует, после того, как написан минимальный функционал, и проект попадает в стор, проходит неделя и проект закрывают, т.к. не приносит ожидаемой прибыли.

Что нужно чтобы стать ios разработчиком. Смотреть фото Что нужно чтобы стать ios разработчиком. Смотреть картинку Что нужно чтобы стать ios разработчиком. Картинка про Что нужно чтобы стать ios разработчиком. Фото Что нужно чтобы стать ios разработчиком

Вот с такой же ситуацией я тоже столкнулась: решила рискнуть и пошла опять на серую зарплату, т.к. на этот проект позвали бывшие коллеги. Хороший коллектив и адекватный тимлид для многих имеет большое значение. Для меня тоже это сыграло большую роль, и пришлось за это поплатиться. Проект был закрыт, зарплаты за последние 1.5 месяца не выплатили. Предложили компенсировать оборудованием с рабочего места.

Итоги

Подвожу итог всему изложенному:

Всем желаю удачи в достижении поставленных целей!

P.S. HR-ам: Нет, я не занимаюсь поиском работы. Да, у меня есть хорошая высокооплачиваемая работа с белой зарплатой на интересном проекте, менять я ее не планирую. Точно не рассматриваю варианты релокации в СПБ, Н-Новгород, Калининград, Казань или Севастополь.
Рассмотрю только вариант переезда в Израиль (нет, еврейских корней нет, английский на уровне intermediate, еще знаю русский и украинский. Просто мне нравится море, страна и еврейское мировоззрение).

P.P.S.: Выйду замуж за еврея, желательно с фамилией Абрамович или Ротенберг (шутка)

Спасибо за то, что дочитали до конца!

Благодарю Lowtrack, за помощь в написании статьи.

Источник

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *