- Кто зарабатывает больше и кем быть лучше: iOS- или Android-разработчиком?
- Android vs iOS: что перспективнее?
- Android vs iOS: Кому больше платят?
- Android vs iOS: На кого сложнее учиться?
- Android vs iOS: заключение
- Еще раз про усложненность архитектуры и порог входа
- Требования к процессу разработки
- Результат процесса разработки
- Заключение
Кто зарабатывает больше и кем быть лучше: iOS- или Android-разработчиком?
Не будем затрагивать тему мотивации, почему стоит сменить профессию, начать зарабатывать больше денег, позволить себе хорошую квартиру, машину и путешествия по миру. Звучит жёстко, но Артемий Лебедев (к которому можно относиться по-разному) точно прав с ответом на вопрос, как мотивировать себя что-то делать. Если не знаете ответ, то вот вам ссылка. Итак, если вы решились начать что-то делать и стать разработчиком мобильных приложений, то перед вами сложный (практически религиозный) выбор – Android или iOS. Верного ответа тут нет, но попробуем окинуть взглядом рынок в целом.
Android vs iOS: что перспективнее?
Рынок мобильных приложений в России и мире растет колоссальными темпами – 25-30% каждый год.
Цифры впечатляют. В России только за первый квартал 2021 года было загружено 727 млн мобильных игр. Самой популярной игрой стала головоломка DOP 2: Delete One Part от белорусской студии SayGames. Игра относится к жанру гиперказуальных. Посмотрите скриншоты. Воображения не поражает, но приносит разработчикам десятки миллионов долларов прибыли.
Сегодня большинство разработчиков делают приложения и игры для пользователей обеих платформ. Разница между iOS и Android заключается в том, что пользователи iOS традиционно более платежеспособны. Они занимают всего 15% рынка, но по итогам 2020 года общая совокупная выручка составила 47.6 млрд долларов. Пользователей Android гораздо больше, но общая выручка магазина приложений Google Play меньше: 32 млрд долларов. Однако у Apple строже требования к качеству приложений, так что приходится прикладывать больше усилий.
Зачастую производители предпочитают сначала выпустить приложение под iOS, что называется, «снять сливки», а затем уже выпустить версию для Android.
Общая черта обеих платформ заключается в остром кадровом голоде, который эксперты отрасли констатируют на протяжении последних лет и ожидают, что он продлится ещё несколько лет. Генеральный директор Kode Андрей Козак отмечает при этом низкий порог входа в профессию: «Чтобы стать высокооплачиваемым врачом или пилотом самолета, нужно долго учиться и потом проходить практику. В ИТ и мобильной разработке, в частности, можно работать без диплома. Начать программировать можно и в 10 классе, а к 20 годам иметь 3 года опыта и рассчитывать на высокую по сравнению с остальной Россией заработную плату». Интересно, что попутно эксперты отмечают высокую квалификацию существующих и новых специалистов, которая позволяет делать им приложения мирового уровня.
Учиться программированию можно и самостоятельно, но лучше обратиться к профессионалам. Сильная сторона SkillFactory в том, что школа специализируется исключительно на технических профессиях, привлекая к сотрудничеству зрелых специалистов, работающих в крупных IT-компаниях.
Вследствие этого обучение в SkillFactory на 80% состоит из практики. Обучение представляет собой решение актуальных задач, с которыми придется столкнуться в работе. Благодаря такому подходу закончившие курс обучения по iOS- или Android-разработке выходят полноценными Junior-специалистами.
Другое преимущество ориентированного на практику подхода в том, что школа не боится брать ответственность за своих выпускников. В SkillFactory есть «Карьерный центр», где помогают составить резюме, откликаться на вакансии и проходить собеседования. Также в рамках «Карьерного центра» Skillfactory устраивает встречи с представителями рынка, HR-агентствами и IT-рекрутерами, а также проводит вебинары для обсуждения тестовых заданий и заковыристых вопросов на технических интервью.
При этом не обязательно устраиваться на работу в компанию. На курсах SkillFactory студентов учат всем основам создания собственных приложений. От идеи до освоения всех тонкостей, как разместиться в магазине приложений Google и Apple.
В любом случае перед началом обучения непременно стоит почитать отзывы от студентов. Например, на «Отзовике» есть как положительные, так и отрицательные отзывы. При этом обратите внимание, что люди могут жаловаться на какие-то организационные вопросы, но все отмечают, что школа даёт обещанные знания в полном объёме.
Android vs iOS: Кому больше платят?
Опираться при выборе профессии только на зарплату не стоит. Кому-то по душе магия Apple, а кто-то, наоборот, «топит» за открытость Android. В любом случае хорошего специалиста будут ценить везде.
Самый простой способ оценить уровень зарплат – это зайти на HeadHunter. Для примера возьмем вакансии, где требуются программисты без опыта или с опытом работы до 1 года. Для Android заработная плата в таких вакансиях составляет 80–120 тысяч рублей. При этом специалист с опытом работы от года уже вправе претендовать на оклад от 120–150 тысяч рублей. К слову, одни из самых высоких зарплат предлагает «Сбер», где старшим инженером работает один из преподавателей курса Android-разработки Константин Уренев.
В принципе, в вопросе стартовых зарплат наблюдается паритет между iOS- и Android-разработчиками. Однако для iOS-разработчиков чаще встречаются вакансии с увеличенной зарплатой. А специалисты с опытом от года скорее могут рассчитывать на зарплату, стремящуюся к 200 т.р. Также на рынке в данный момент наблюдается рост числа вакансий для зрелых специалистов с зарплатой от 300 тысяч рублей.
Кому платят больше, вопрос дискуссионный, но по оценке сентябрьских вакансий создаётся впечатление, что разработчиков под iOS хотят и любят больше.
При этом есть позитивные новости для представителей обеих профессий: оклады постоянно растут. Например, журнал Forbes пишет: «”Все больше компаний готовы платить столько, сколько хочет специалист, и идти на его условия. Это просто становится нашей новой нормой”, — рассказывает соосновательница рекрутингового агентства Unicorn Search Дарья Баркова. Один из банков, с которым работает агентство Барковой, недавно закрывал вакансию редкого IT-специалиста, и кандидат запросил зарплату в 460 000 рублей, которая, вероятно, превышала зарплату некоторых топ-менеджеров банка, рассказывает она. На совете директоров банк решал, согласовать ли эту сумму, и, поскольку “сроки горели”, кандидата взяли».
Согласно статистике, последние полтора года зарплаты разработчиков растут примерно на 7-8%. Из-за пандемии на рынке есть определенный дисбаланс, и сейчас столичные компании активно ищут сотрудников в регионах, предлагая им московские зарплаты. Как охарактеризовала ситуацию Алена Владимирская, хэд-хантер с 20 летним стажем: «Рыдают, но платят». Портал «Хабр Карьера», каждые полгода проводящий зарплатные исследования, сообщает, что медианная зарплата в ИТ сейчас 120 000 ₽: в Москве — 160 000 ₽, в Санкт-Петербурге — 135 000 ₽, в остальных регионах — 100 000 ₽. И приводит статистику по медианным зарплатам в различных компаниях.
В SkillFactory есть курсы и «Android-разработчик», и «iOS-разработчик». И там и там обещают с нуля создать специалиста Junior-уровня и помочь ему найти работу.
Так, общая стоимость обучения на iOS-разработчика составляет 109 000 рублей. Во-первых, сразу следует сказать, что SkillFactory предлагает беспроцентную рассрочку на всё время обучения, то есть, получается, 9 100 рублей в месяц. Но давайте честно. Качественный продукт, где обучением занимаются практикующие специалисты из крупных компаний, не может стоить дешево. Поставьте себя на место условного Виталия Раевского (преподавателя на курсе Android, занимающего позицию руководителя направления мобильной разработки Альфа-Инвестиций в Альфа-Банке). Должен/ захочет ли профессионал такого уровня тратить своё время за копейки из чистого альтруизма?
Во-вторых, с одной стороны, сумма может показаться значительной. С другой — все затраты на обучение отобьются уже с первой зарплаты на новой должности. И тут следует помнить, что «Карьерный центр» и «Карьерный клуб» SkillFactory играют важную роль в процессе обучения. Там студентов курса готовят проходить тестовые задания и отвечать на каверзные технические вопросы в процессе интервью.
Android vs iOS: На кого сложнее учиться?
На самом деле, вопрос некорректный, так как в каждой профессии свои сложности. Однако есть ряд тонкостей. Например, Apple, благосостояние которой во многом строится на комиссии с собственного магазина приложений AppStore, кровно заинтересована в увеличении числа разработчиков под iOS. Компания постоянно работает, стремясь популяризировать разработку под iOS. Так, она создала даже собственный язык программирования Swift. До этого для написания iOS-приложений использовался Objective-C. Однако в Apple решили, что язык сложен. В противовес ему Swift стал и более легким для освоения, и более устойчивым к ошибкам программистов.
От Android-разработчика требуется больше навыков. Он должен уметь программировать не только на Kotlin (основной язык), но и на Java. Однако это, в свою очередь, открывает больше возможностей, позволяя расширить свою профессиональную сферу деятельности. Например, в рейтинге самых востребованных специалистов Java-программисты занимают первое/второе место. Язык Java универсален и используется всюду, где подразумеваются сетевые подключения. Так что Java-разработчики без работы уж точно не останутся.
Впрочем, начать следует с того, что базовые требования к освоению обеих профессий в целом идентичны. Это любознательность, склонность к аналитическому мышлению и колоссальная усидчивость. И iOS-, и Android-разработчик должны обладать феноменальным терпением, внимательностью и трудолюбием. Зачастую даже простые задачи требуют огромного количества времени, поэтому хорошим разработчиком не получится стать у того, кто привык просиживать штаны, втихаря от начальства листая социальные сети.
Считается, что программист должен быть и гениальным математиком, но роль математики в программировании переоценена. Безусловно, знание вышмата может стать хорошим фундаментом для обучения, но обычно за время обучения студенты получают абсолютно все знания, которые необходимы хорошему специалисту.
А вот требования к железу различаются. Android в этом плане демократичнее. Подойдет любой компьютер на macOS или Windows. А вот iOS-разработчику для работы понадобится фирменная среда разработки Xcode, которая доступна только на macOS (в лучших традициях Apple). В принципе, эту проблему можно решить, установив на Windows систему виртуализации. Например, бесплатную Oracle VM VirtualBox. Ну а дальше — ловкость рук, немного времени, и вот уже macOS внутри вашего Windows PC.
SkillFactory в обучении на обоих курсах делает упор на практику. Так, студенты получают бесплатный доступ к IntelliJ IDEA Ultimate (это среда разработки для Java), лицензия на который стоит 43 тысячи рублей (и продлевается каждый год). Также специально для Android-курса разработан тренажер по Kotlin, охватывающий все темы курса. За время курса студенты создадут два мобильных приложения с нуля, которые можно будет занести в портфолио, столь необходимое на собеседованиях.
Курс «Разработчик для iOS» не отстаёт. Студенты создадут 5 разных приложений: от приложения по выбору фильмов до To-Do-листа и игр. Если кто-то скажет, что To-DoList — это просто, то посмотрите, например, на «Тудурант» Никиты Колмагорова, который оценивают в несколько сотен тысяч долларов. Помимо создания приложения студенты курса по iOS поучаствуют в трех хакатонах, результаты которых тоже можно будет добавить в своё портфолио.
Таким образом, по окончании обоих курсов у студентов будут готовые обширные и разноплановые портфолио, актуальные для рынка труда.
Обучение насыщено воркшопами и вебинарами, где можно задать и разобрать все интересующие вопросы. А также студенты постоянно находятся на связи с преподавателями и друг с другом через комьюнити в мессенджере Slack.
Отдельно следует подчеркнуть, что на обоих курсах научат не только как создавать приложения, но и как разместить их в магазинах приложений Google и Apple. Опытные наставники из Lamoda и Rambler покажут весь процесс на практике. Студентов ждут 80% практических задач и только 20% теории.
Android vs iOS: заключение
Android или iOS – это не так уж и важно. Обе платформы перспективны, востребованы и позволяют хорошо зарабатывать, трудясь в компаниях по всему миру.
Карьерные пути развития разработчиков бесконечны. Один из бонусов – это быстрый карьерный рост. Талантливых людей быстро замечают и стараются продвигать. Начиная с позиции стажера или джуниор-разработчика за 3 года плотной работы можно дойти до ведущего специалиста. А там (еще пара лет) и до тимлида недалеко. Несомненно, есть и минусы. Эксперты отмечают так называемый стеклянный потолок. Дело в том, что большинство современных топ-менеджеров – это ещё довольно молодые люди 40-45 лет, и очевидно, что на покой они не торопятся. Так что хороших спецов стараются удерживать повышенной зарплатой, а не громкими должностями.
В любом случае главное – это не сидеть, ожидая у моря погоды, а начать что-то делать. А SkillFactory станет хорошим партнером на пути обучения.
Школа даёт гибкие расценки и беспроцентные рассрочки. Всё задания ориентированы на решение актуальных практических задач, а обучение ведут состоявшиеся специалисты, работающие в крупных компаниях. Обучение насыщено разноплановыми задачами и тренажерами различной степени сложности.
Ну и напоследок, стоит помнить, что SkillFactory сама заинтересована в успехе своих студентов. Ведь у школы есть «Карьерный центр», сотрудничающий с рекрутерами из крупных компаний, которые не стали бы тратить своё время попусту, если бы качество выпускников школ не соответствовало рыночным стандартам.
Узнать больше про курс «Android-разработчик» можно тут.
Узнать больше про курс «iOS-разработчик» можно тут.
Источник
Еще раз про усложненность архитектуры и порог входа
В данной статье я коснусь вопроса порога входа в проект с устоявшейся архитектурой и дам несколько вариантов ответа на очень часто возникающий вопрос: почему так сложно?
Такой вопрос частенько возникает у новичков, которые приходят на проект. Или же бывают ситуации, когда проект уходит на поддержку и развитие в новые руки, и у нового разработчика также появляется этот вопрос. И редко кто из них пытается разобраться в реальных причинах, почему здесь так, а не иначе. Это может привести к печальным последствиям для бизнеса, например, новый разработчик может настоять на том, чтобы переписать все приложение с нуля.
Чтобы минимизировать такие риски, следует вместо вопроса почему так сложно? задаться такими вопросами:
- Какие требования к процессу разработки закладывал архитектор?
- Какой результат процесса разработки требуется на выходе?
Требования к процессу разработки
Сначала разработчик должен вникнуть в систему процесса разработки, он должен задать такой вопрос:
- По какой системе выстроен процесс?
Часто в заказной разработке на вход приходит проект с однозначными требованиями и фиксированным набором функционала. Насколько проработанными они могут быть — это уже тема другой статьи. И процесс разработки в таких проектах чаще всего выстроен по водопадной системе, потому как предполагает непосредственную обратную связь от пользователей продукта — после разработки всего функционала продукта, тогда как при итерационной модели обратную связь можно получить уже после первой итерации. У архитектора для таких проектов обычно уже припасена устоявшаяся архитектура, которая отвечает определенным требованиям к этому процессу. Какие же требования к такому процессу разработки закладывает архитектор?
1) Pipeline процесса разработки должен быть максимально сложным для разработчика. И отбраковывание кода, поступающего в репозиторий проекта, должно по максимуму происходить автоматически и, по возможности, без участия самого архитектора.
Т.е. в процессе должен быть настроен определенный pipeline. Код, который прошел весь этот pipeline — считается удовлетворяющим требованиям. Это очень важно, т.к. хорошему архитектору необходимо избавить его разработчиков от головной боли и ответственности за не рабочую сборку после попадания кода в репозиторий. Если такого pipeline нет — ваши разработчики будут страдать от постоянного стресса. Если код попал в репозиторий и pipeline его принял, и этот код сломал сборку или повредил уже работающий функционал — это уже проблема самого pipeline.
Поэтому в таком pipeline необходимо использовать:
- Множество статических анализаторов кода
- Автоматические тесты и соблюдение пирамиды тестирования
- Автоматический подсчет покрытия кода тестами
- Ворота качества кода(Quality gates). По всевозможным метрикам: процент покрытия кода тестами, процент дублирования кода, code smells, security, bugs, т.д.
- перекрестное Code Review
- etc
Все эти пункты в совокупности и приводят к появлению у разработчика вопроса: почему так сложно?
Для примера попробуйте написать тесты для вот такого кода:
Вам придется запускать такие тесты на реальном android устройстве, либо на эмуляторе. И это сразу приведет к существенной просадке во втором требовании к процессу разработки:
2) Автоматизированные элементы Pipeline‘а процесса разработки должны выполняться как можно с большей скоростью
Если вашим разработчикам приходится ждать выполнения тестов очень долго — это проблема вашего pipeline и если архитектура не позволяет ускорить этот процесс — это проблема вашей архитектуры
Давайте перепишем пример:
Мы видим, что сложность кода увеличилась, но с точки зрения процесса разработки — мы сделали архитектуру более гибкой, теперь нам не обязательно запускать тесты бизнес логики для блока map в эмуляторе или на устройстве, достаточно запустить их в быстрых тестах. Это уменьшит количество интеграционных тестов, которые нужно запускать в медленном окружении.
Уменьшить количество дорогих интеграционных тестов может правильно выбранный архитектором паттерн проектирования. Не поленитесь и разберитесь с популярными на сегодня паттернами: MVP, MVVM, MVI.
Давайте еще немного затронем тему навигации в приложении. Мы тоже хотим уметь тестировать ее, и тестировать в быстрых тестах. Опять получаем «усложнение» архитектуры, потому что нам придется прятать систему навигации в приложении за абстракцией.
А еще мы хотим уметь связывать компоненты нашей системы с помощью DI, выстраивать графы зависимостей и проверять их корректность на этапе компиляции проекта, а не в рантайме. Тут на сцене появляется Dagger 2 и его монструозные компоненты и сабкомпоненты с модулями, которые уже в конец запутывают бедного новичка.
И таких неочевидных моментов «усложнения» архитектуры для новичков накапливается очень много. Естественно, без понимания процессов разработки и требований к этим процессам, у них появляется тот самый вопрос — почему так сложно?
Результат процесса разработки
Чтобы оценить успешность выстроенного процесса разработки и, опосредованно, архитектуру проекта, необходимо проанализировать его результат. Как правило, результатом является продукт(приложение если мы говорим про мобильную разработку). И метрики успешности продукта у всех разные: у заказчика — одни метрики, у разработчика — свои метрики, у пользователя продукта — свои.
Как минимум, вам, как архитектору, создающему pipeline процесса разработки, следует учитывать при оценке эффективности процесса разработки метрики своей компании и метрики бизнеса.
Это непрерывный процесс: разработка -> сбор метрик -> анализ результата -> внесение необходимых модификаций в процесс разработки.
Таким образом результат влияет на формирование процесса разработки и уже процесс разработки влияет на изменение архитектуры проекта. Т.е. важная мысль, которую я хочу донести — архитектура вторична, первичны результат и процесс разработки.
Заключение
В заключении еще раз проговорим:
- без понимания процессов разработки и требований к этим процессам у разработчика создается ощущение об усложненной архитектуре проекта;
- архитектура вторична, первичны результат и процесс разработки;
Без понимания этих вещей у разработчика может возникнуть желание взять и все переписать с нуля. На мой взгляд, это оправдано только когда процесс и результат разработки абсолютно не удовлетворяют заказчика этой разработки.
Для новичков я советую попасть на проект с отточенным pipeline разработки. Порог входа в такие проекты высок, но перешагнув его, вы серьезно приблизитесь к пониманию того, как выстраиваются процессы разработки.
Источник