С чего начать 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. Разметку можно использовать при документировании кода, и функциональность эта, на первый взгляд, косметическая, довольно заметно облегчает чтение кода, особенно чужого:
(Источник)
Редактор, кстати, научился подсвечивать блоки кода, удобно при изучении большого объёма кода.
(Источник)
Ещё одной важной фичей Xcode 9 стал рефакторинг кода на Swift, Objective-C, Objective-C++, C. Рефакторинг позволяет переименовывать классы, переменные, а также дробить методы на менее крупные.
(Источник)
Из менее выделяющихся, но тем не менее полезных фич, можно назвать:
Swift 4
Это изменение стоит особняком. Все, кто уже пережил чувство «в Swift 2 было, в Swift 3 пропало?!», могут ощутить дежавю, но сейчас ожидаются изменения, скорее, в лучшую сторону (впрочем, замечу вполголоса, когда это было не так, по мысли авторов-то?)
«Гибридное», «не совсем нативное» приложение
Уточню: термин, вынесенный в заголовок, даже по сути своей не очень верен. Приложения, которые мы получим в результате, самые что ни на есть нативные в смысле того, что они исполняются на той же iOS, на том же железе, что и любое другое ПО для iOS, просто сам процесс разработки позволяет использовать не только предложенные Apple технологии и языки программирования. Если человек умеет писать, скажем, на JavaScript, и не хочет разбираться в Swift, то Apple ему ничем не поможет (кроме, конечно, хорошего учебника по Swift), а вот вариант написать, условно говоря, приложение на JavaScript, а потом запустить его на iOS, как если бы оно было написано в Xcode (получив, таким образом, некий «гибридный» вариант) существует, и вполне востребован.
Ionic
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
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
Основанная в 2011 году компания Xamarin, выпускающая семейство продуктов Xamarin через пять лет своего существования была купена компанией Microsoft. Сегодня продукты Xamarin представляют на рынке очень интересный подход к разработке кросс-платформенных мобильных приложений: приложения пишутся на C#, затем Xamarin компилирует его в нативное приложение для iOS, либо для Android, при этом в качестве базовой технологии Xamarin использует Mono, чем кросс-платформенность и обеспечивается. Разработчики Xamarin говорят, что полученные на выходе приложения используют нативное API платформы, для которой приложение компилируется, так что поведение полученного приложения никак не отличается от поведения любого другого приложения на этой же платформе. Разработку, кстати, можно вести при помощи Visual Studio (что совсем неудивительно).
Несмотря на то, что большая часть кода проекта может быть без изменений использована на каждой из поддерживаемых мобильных платформ, тем не менее, некоторые фрагменты потребуется писать специально для версии приложения под iOS и под Android.
React Native
Проект 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 (да-да, в ноябре Мобиус едет в Москву, если вы еще не знали):
Как пользоваться iPhone для новичков
время чтения: 10 минут
Смартфоны iPhone – популярные и понятные в использовании гаджеты. Но что делать, если вы привыкли к интерфейсу платформы Android и еще не держали в руках яблочный смартфон? Без паники, сегодня вы узнаете, как пользоваться iPhone, и какие фишки есть у нового телефона.
Инструкция для владельцев
Не стоит переживать, если вы чайник, и до этой статьи не разбирались в устройствах на iOs. Статья поможет ознакомиться с главными аспектами.
Первый запуск устройства
Заветная коробочка с аппаратом у вас в руках, возникает логичный вопрос: «Как начать пользоваться Айфоном?». Первым делом аккуратно распакуйте устройство, предварительно сняв защитные пленки, которыми он был обернут. После распаковки установите в телефон сим-карту, используя специальную скрепку, выдвигающую лот для симки.
Включаем новый телефон зажатием кнопки блокировки. У iPhone 4, 5 и 5 SE кнопка сверху, у яблочных смартфонов последующих поколений – сбоку справа. После нажатия появится надпись «iPnone», а снизу стрелка. Потянув ее вправо, разблокируете телефон и приступайте к работе.
Мобильное устройство предложит выбрать язык, страну, разрешить смартфону использовать данные о местонахождении. Таким образом, вы подготовите телефон для работы в штатном режиме. Позже можно вернуться к настройкам и изменить их, если понадобится.
Как начать пользоваться айфоном 5, 5 SE и высше? Сначала скачайте на компьютер программу iTunes или же подключитесь к доступной сети Wi-Fi. Вопросы: «Как пользоваться Айфоном 5?» и «Как пользоваться Айфоном 5S для новичков?» не возникнет у тех, кто уже пользовался телефоном. Поэтому стоит настроить телефон как новый, без синхронизации с данными с прошлого смартфона.
Безопасность
Как защитить технику от поломки.
Нужны ли чехлы для iPhone/iPad
После покупки нового телефона владелец заинтересуется тем, как защитить смартфон от ударов и влаги. Конечно же, с помощью чехла. На каждую модель Айфона на рынке существует огромное количество защитных аксессуаров из различных материалов. Иногда, правда, они выполняют исключительно декоративную функцию. Выбирайте, следуя своим потребностям. Если знаете, что неаккуратно обращаетесь с техникой, желательно купить чехол из силикона, который хорошо пружинит при падении, и приклеить на экран защитное стекло.
Таким образом, вы сможете уменьшить риски даже при неосторожном использовании телефона. Чехол защитит смартфон от царапин, попадания влаги и амортизирует нагрузку при падении.
Активация и настройка iPhone/iPad
Настраиваем главные функции нового смартфона.
Как создать Apple ID
Без учетной записи Apple ID вы не сможете пользоваться многими сервисами смартфона. Привязка к Apple ID позволяет скачивать музыку, фильмы, книги, игры, другие полезные приложения на устройство и пользоваться облаком, куда сохраняются данные. В случае утери или поломки устройства, сохраненная резервная копия поможет начать пользоваться другим аппаратом с сохранением всех прошлых настроек телефона.
При настройке нового мобильного устройства нужно создать Apple ID, давайте пошагово разберем, как это сделать.
Для использования Apple ID понадобится добавить данные о банковской карте, так как некоторые приложения платные. Деньги снимают после подтверждения покупки платежным паролем или при подтверждении покупки с помощью Touch ID. При каждом скачивании приложений с AppStore Айфон будет запрашивать у вас пароль (даже при установке бесплатных приложений).
Как создать учетную запись iCloud
Как перенести контакты на iPhone
Как начать пользоваться Айфоном и перенести контакты с Андроида на iOS?
AppStore: как им пользоваться
Если до появления яблочного смартфона, вы пользовались устройством на базе Android, значит, знакомы с Google Play. Appstore представляет собой идентичную базу для скачивания игр, приложений на ваш новый смартфон. Простота и удобство AppStore позволяют разобраться в использовании пользователю.
Вкладка «Сегодня» отображает новости и выбранные экспертами и пользователями приложения дня. Вкладка «Игры» включает в себя развлекательные приложения с разделением по жанрам. Даже искушенный любитель стратегий и головоломок и симуляторов найдет для себя там много полезного. Вкладка «Приложения», где можно найти полезные утилиты. «Обновления», где показаны доступные версии прошивки. И последняя вкладка «Поиск», где вы самостоятельно можете найти те приложения или игры, которые хотели бы установить.
Трюки и секреты для новичков
Руководство по грамотной эксплуатации нового устройства.
Заряжаем смартфон быстрее
Как быстро или даже на бегу зарядить телефон, который разрядился в «0»? Что для этого сделать?
Используй мощный адаптер
В комплекте с iPhone идет стандартный адаптер, который не способствует скорейшему заряду устройства. Лайфхак: для зарядки используйте адаптер от iPad или MacBook, в таком случае iPhone зарядится до 100% намного быстрее. Это позволяет сэкономить много времени.
Включи авиарежим
Перед тем как поставить смартфон на зарядку, включите авиарежим. Таким образом, отключатся Bluetooth, Wi-Fi, использование геопозиции и устройство зарядится быстрее. Использование этих функций увеличивает потерю энергии вашего iPhone.
Увеличиваем время автономной работы
После нескольких лет исследования было выяснено, что можно увеличить время работы карманного друга, не прибегая к сложным уловкам. Вот два основных совета, которые реально помогают продлить время без заряда устройства.
Настрой фоновую геопозицию
Многие приложения отслеживают вашу геолокацию на постоянной основе. Во-первых, это небезопасно. Во-вторых, отнимает драгоценные проценты заряда. Зайдите в «Настройки» – «Конфиденциальность» – «Службы геолокации» и отключите эту функцию приложений или ограничьте, разрешив использовать данные только при использовании приложения.
Выключи фоновое обновление приложений
Социальные сети, мессенджеры, новостные приложения и многие другие агрегаторы периодически подгружают информацию, даже когда они неактивны. Это уменьшает время автономной работы iPhone. Для того чтобы приложения не загружали данные, пока вы ими не воспользовались, зайдите в «Настройки» – «Основные» – «Обновление контента».
Делаем систему быстрее и понятнее
Некоторые пользователи Айфонов отмечают, что телефон медлительный и неинтуитивный в использовании, что может показаться странным по началу. Если входите в число таких пользователей, для вас пара советов по ускорению устройства.
Отключи лишние анимации
Для ускорения работы операционной системы перед тем, как начать пользоваться Айфоном 5S для новичков, отключите лишнюю анимацию. Сделать это можно, перейдя в «Настройки» – «Основные» – «Универсальный доступ» – «Уменьшение движения». Сегодня это единственный вариант ускорения работы телефона без проведения джейлбрейка, что не получится сделать на новых моделях.
Добавь форму кнопкам
С выпуском следующих поколений популярного смартфона разработчики все больше приходят к минимализму. Кнопки, на которые можно нажать, указываются простым текстом. Изменить это можно, перейдя в раздел «Настройки» – «Основные» – «Универсальный доступ» – «Формы кнопок».
Настраиваем камеру и учимся ей пользоваться на 100%
Специалисты Apple делают все более современные и профессиональные камеры на выпускаемых устройствах. Такой подход позволяет не заморачиваться с покупкой камеры отдельно от мобильного устройства. Теперь возможно делать красивые фотографии, просто достав из кармана мобильный.
Горизонт
Часто ли вы слышите фразу: «Ты завалил горизонт на фото»? Если да, пора бы узнать маленький секрет. В настройках камеры можно выставить галочку в меню «Сетка», тогда, выстраивая фото по ровным линиям, вы просто не сможете завалить горизонт. Если только не захотите это сделать специально.
Фокус и экспозиция
Чтобы сфокусироваться на определенном предмете на фотографии, нужно просто нажать на него. Долгое зажатие регулирует экспозицию и делает фон ярче.
Делаем скриншоты и записываем видео с экрана
Тем, кто не знает, как пользоваться айфоном 5, непонятны отдельные вещи, которым другие пользователи давно научились.
Когда впервые держишь яблочный смартфон, не совсем понятно, как же на нем делать скриншот экрана. Все проще пареной репы: нужно зажать кнопку блокировки и кнопку «Домой» одновременно. Готово, вы восхитительны! Скриншоты сохраняются в галерее устройства, хранятся в альбоме «Снимки экрана».
На яблочных устройствах можно делать не только снимок экрана, но и видеозапись экрана, при этом производя действия и перемещаясь из приложения в приложение. На прошивке от 11-й версии и более, свайпните вверх – вылезет меню экрана. Снизу иконка с кружочком, нажмите на нее, через 3 секунды начнется запись экрана, о чем сигнализирует красная лента сверху. Остановить запись можно, нажав на эту красную ленту. Запись экрана остается в галерее видеозаписей.
Советы для тех, кто решил стать 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, поэтому даже пришлось немного влезть в долги.
К концу стажировки я осознала, насколько знания, которые даются на курсах, отличаются от реального опыта! Если брать в процентном соотношении, то те знания, что я получила на курсах — это примерно 10% от всех знаний, что я получила на стажировке.
К моему стыду, на стажировке и курсах я очень мало внимания уделяла теории. Тогда мне никто не объяснил, что теоретические знания очень важны и понадобятся при освоении практических заданий и для дальнейших прохождений собеседований.
На стажировке нам, таким же джуниорам, как и я (по 5 человек на каждой платформе), доверили писать реальный проект! Это было очень интересно!
Поскольку в этой компании такой большой проект был организован впервые, везде и всюду в проекте наблюдался хаос. Каждый стажер писал кто во что горазд. Толком ревью не было, т.к. не успевал у нас один руководитель уследить за всеми, обучить всех, еще и архитектуру продумать. Но зато мы все получили незабываемый опыт, при работе над этим проектом. (Отдельная благодарность: Mehdzor, руководителю Мобильной разработки, за полученные знания, за терпение и за понимание).
Стажировка закончилась. По завершении стажировки мне предложили не густо, не пусто — зп в 45к (это, конечно, не такая зарплата, которую мне бы хотелось, т.к. работая менеджером я бы смогла получать около 60к), но я так уже сработалась с этими ребятами, что мне не хотелось расставаться. Компания серая, все платили наличными в конверте, по трудовой мы даже не числились. Ни дня стажировки мне не сократили, хотя обещали, что если я себя хорошо покажу, то срок уменьшится. Как оказалось, это только обещания… испытательный срок у всех коллег был одинаковым, т.к. это дополнительная мотивация для стажеров для улучшения работы!
Через полгода к нам в компанию на стажировку взяли еще 2 девочек.
И тут началась травля: мне постоянно указывали на прогресс этих двух девочек-студенток, на их отличную теоретическую базу, на схватывание на лету (кстати, одна из них стажировку так и не прошла). Было очень обидно! Кроме того, мне тогда приходилось параллельно заниматься менеджерской работой на новом проекте, и времени на разработку оставалось мало (80% времени я уделяла не разработке, а менеджерским обязанностям). Чем дальше, тем было в компании хуже. Набрали много студентов-стажеров, появились задержки в зарплатах. А осенью начали сокращать людей, т.к. проектов больше не было.
Да, обидно, грустно, но, видно, пришло время двигаться дальше.
К сожалению, последнюю зп мне так и не выплатили. Думаю, эти деньги легли черным пятном на их карму. Проекты у них больше не появились, и компания закрылась.
Однако все, кто ушел, смогли быстро найти хорошую работу на зп от 80+, даже с опытом от 6 месяцев, в таких компаниях как Сбертех, Альфабанк, Тинькофф.
Очередной совет начинающим: да, найти работу джуниорам очень сложно, и возможно, вы потратите не один месяц, однако старайтесь все же найти белую зарплату и желательно, чтобы был куратор (т.е. либо стажировка с дальнейшим рабочим местом, либо джуниором в уже сложившийся коллектив).
Например, у меня коллега (Саша, помаши рукой маме!), который со мной работает (джуниор), искал работу после курсов 2 месяца. Прошел 8 собеседований. Из них только 2 приглашения. Средняя ЗП на рынке для джуниора порядка 60-80к. Если вариант со стажировкой, то за стажировку могут платить около 30-50к, что, согласитесь, лучше, чем работать в H&M или курьером.
Низкая квалификация разработчиков в маленьких компаниях
Меня же немного поштормило. Hr-ы, когда видят мой возраст, скептически относятся к моему резюме (и я их, наверное, даже понимаю), поэтому такого количества предложений, как молодые ребята, я не получала.
Я устроилась в одну небольшую конторку с белой зарплатой. Поскольку опыта у меня было чуть больше года, я себя честно оценивала джуниором. Очень сильно удивилась, когда в этой компании ребята, которые писали проект уровнем, оказались еще ниже (такое тоже бывает)…
Моей главной ошибкой при устройстве в эту компанию было: на собеседовании я не поинтересовалась, кто будет тимлидом и как организован процесс обучения джуниоров. Позже оказалось, что тимлида не было вообще, и им пытались сделать меня, повесив обязанности без повышения в зарплате, т.к. по уровню я только джуниор.
Возможно, кому-нибудь из молодых и амбициозных ребят это покажется очень интересным, но я бы рекомендовала не браться за такую должность без соответствующего опыта, т.к. не имея опыта, вы не сможете продумать архитектуру проекта (можно, конечно, везде и всюду пихать Viper, но далеко не все стажеры или джуниоры знают, что это такое из-за отсутствия теоретической базы).
Проработав 2 месяца, я решила уйти, т.к. не было грамотного тимлида в компании, мало работы, запрещали проводить рефакторинг, а поддерживать такой код нереально.
Потом мне опять пришлось искать работу и не один раз…
Ситуация на рынке и серые зарплаты
Ситуация на рынке сейчас такая, что многие компании не заморачиваются над маркетингом, набирают разработчиков, вкладывают деньги, проект стартует, после того, как написан минимальный функционал, и проект попадает в стор, проходит неделя и проект закрывают, т.к. не приносит ожидаемой прибыли.
Вот с такой же ситуацией я тоже столкнулась: решила рискнуть и пошла опять на серую зарплату, т.к. на этот проект позвали бывшие коллеги. Хороший коллектив и адекватный тимлид для многих имеет большое значение. Для меня тоже это сыграло большую роль, и пришлось за это поплатиться. Проект был закрыт, зарплаты за последние 1.5 месяца не выплатили. Предложили компенсировать оборудованием с рабочего места.
Итоги
Подвожу итог всему изложенному:
Всем желаю удачи в достижении поставленных целей!
P.S. HR-ам: Нет, я не занимаюсь поиском работы. Да, у меня есть хорошая высокооплачиваемая работа с белой зарплатой на интересном проекте, менять я ее не планирую. Точно не рассматриваю варианты релокации в СПБ, Н-Новгород, Калининград, Казань или Севастополь.
Рассмотрю только вариант переезда в Израиль (нет, еврейских корней нет, английский на уровне intermediate, еще знаю русский и украинский. Просто мне нравится море, страна и еврейское мировоззрение).
P.P.S.: Выйду замуж за еврея, желательно с фамилией Абрамович или Ротенберг (шутка)
Спасибо за то, что дочитали до конца!
Благодарю Lowtrack, за помощь в написании статьи.