Какой путь Android разработчика доступен и перспективен в 2020?
Привет, разрабы 👋
Начало нового года предлагает новое начало для всех нас. Возможность пересмотреть то, где мы были, и куда мы идем. Для меня это, как правило, время, чтобы изучить мой текущий жизненный путь и обдумать то, куда бы я хотел его направить.
Я уверен, что в этом не одинок. Разработчики постоянно задают вопросы вроде: «Должен ли я выучить фреймворк А или фреймворк Б» и «Должен ли я быть специалистом или универсалом?». Эти вопросы исходят из желания разумно инвестировать в нашу карьеру, чтобы достичь долгосрочного успеха.
В выпуске этой недели я хотел бы изучить эти вопросы в контексте Android разработки. Я хотел бы рассмотреть несколько главных вопросов: «Какой язык мне стоит выучить?» и «Как создать себе имя?». А потом раскрыть несколько специфических вопросов, чтобы пролить свет на различные способы построения карьеры как разработчика Android, так и разработчика в целом.
Готовы? Погнали! (Видео на английском)
Частые вопросы о карьере Android разработчика?
Является ли разработка под Android перспективным вариантом для карьеры?
Из всех вопросов, которые я видел о карьере Android разработчика — этот самый распространенный. И я верю, что ответ: Да! Проведите быстрый поиск для «Android» работы на LinkedIn, и вы получите более 242 тысяч результатов.
И хотя Android существует более десяти лет, и сама операционная система достигла определенного уровня зрелости, но похоже, что рынок труда на спад не идет. Есть еще очень много компаний, которые ищут умелых Android разработчиков.
Так что, если вы хотите писать приложения для Android устройств, то, думаю, вы сможете найти работу еще как минимум несколько лет.
Является ли нативная разработка Android песпективной?
Возможно, это второе место в списке самых популярных вопросов о карьере Android разработчика, и, если честно, он для меня куда интереснее. Компании явно ищут способы создания приложения и инструментов для Android. Но ушли ли они от нативной разработки Android в пользу кроссплатформенных решений вроде Flutter или React Native?
Снова же, я считаю, что просматривая вакансии на работу мы можем разумно оценить востребованность различных навыков.
Давайте сравним вакансии для различных запросов:
- “android java” – 32,126 results
- “flutter” – 2,299 results
- “react native” – 17,010 results
- “android kotlin” – 9,312 results
- “android c++” – 9,970 results
Из результатов видно, что создание Android приложение с использованием Kotlin, Java или C++ все еще более востребовано. Думаю можно сказать, что нативная разработка под Android, и, возможно, так же для iOS, будет перспективной в ближайшие годы.
С другой стороны спрос на кроссплатформенных разработчиков так же есть, это мы рассмотрим позже.
Какие языки стоит учить?
Какой язык программирования стоит учить для карьеры Android разработчика? Если вы пойдете путем нативного разработчика Android, то у вас три варианта: Kotlin, Java или C++.
Если же брать во внимание привычную разработку под Android, то выбор будет между Java и Kotlin. В случае подходом Google к Kotlin, как будущему Android разработки — этот язык будет хорошим вложением времени и сил.
Если же вы хотите работать на более низком уровне SDK или создавать высокопроизводительные игры — вам нужен С++.
Если вы заинтересованы в создании кроссплатформенных приложений при помощи Flutter или React Native, то для первого вам нужен язык Dart, а для второго JavaScript.
Это все языки, которые нужно знать? Пожалуй, что да, для начала. Тем не менее зная множество языков вы можете улучшить свой подход к планированию и написанию кода. Так же узнавая о новые функции и парадигмы языков вы сможете увидеть, как можно их реализовать или применить в иных.
Разобраться хоть с одним скриптовым языком это хорошая идея. Это позволит вам при необходимости автоматизировать рабочие процессы. К примеру Python или Unix Shell Scripts могут быть отличным выбором.
Как получить свою первую работу?
Войти в индустрию на первую работу может быть непростой задачей. Это чаще всего сопровождается стрессом, неопределенностью, длительным ожиданием ответов. Несколько вещей, которые я счел полезными, для поиска первой работы включают:
- Стройте реальные ожидания о том, где вы будете работать. Не все могут или должны работать в больших компаниях как Google, Amazon, Facebook и т.д. Есть множество других прекрасных мест, и изучение большего количества вариантов повышает шанс найти первую работу.
- Продемонстрируйте профессиональную компетентность. Большую роль в получении моей первой работы был факт, что я опубликовал приложение в Маркете. С этим опытом на собеседовании я смог ответить как было создано приложение, в чем заключается процесс публикации и с какими проблемами я сталкивался. Так что важно иметь свой проект для примера или даже портфолио. Надеюсь, что это повысит ваши шансы на получение должности и улучшить ваши собеседования.
- Обратитесь к людям в отрасли, с которыми вы знакомы. Узнайте у них о возможности стажировки или работы для начинающего уровня. Прямые рефералы часто могут поднять вас в топ списка кандидатов, и повысит шансы на собеседование.
- Сохраняйте позитивный настрой. Как я и упоминал: поиск работы это стресс и испытание. Помните, если вы не получаете предложений о работе — это не значит, что вы не можете делать эту работу. Есть много влияющих на это факторов. Иногда все, что мы можем сделать — оставаться позитивными и идти вперед.
Есть множество ресурсов для подготовки к собеседованиям для Android. Например: How to hire a great Android developer (англ).
Как создать себе имя?
Когда вы уже нашли работу, то вам нужно искать способы расширения карьеры вне работы. Для этого есть несколько вариантов более активного участия в сообществе разработчиков, которые включают:
- Создание проектов с открытым исходным кодом
- Организация мероприятий
- Выступления
- Блоггинг
- Видео уроки
- Наставничество
- Социальные медиа
Любой из этих вариантов — хороший способ получить новый опыт и устроить публичные обсуждения на интересующие вас темы. Интернет позволяет легко поддерживать связь с людьми по всему миру для создания своей собственной ниши. Она может включать виши интересы, идей, проекты и не только.
Варианты карьеры для разработчиков
Теперь, когда мы обсудили некоторые вопросы высокого уровня, я хотел бы перейти к более конкретным. Связаны они в сравнении различных карьерных путей доступных разработчику софта.
Разработчик VS Педагог
Вы хотите получать деньги за написание кода, или же за обучение других написанию кода?
Я включил это сюда, так как стает все более перспективным получать деньги за обучение других. Примером тому edTech, Pluralsight, Udacity. Вы можете создать свои собственные курсы и жить за счет обучения других.
Ваша карьера не обязательно должна включать получение работы для создания приложений для кого-то другого. Если у вас есть страсть к обучению, менторству, помощи другим — вы можете полностью или частично работать как педагог.
Фриланс VS Компания
Нужно ли идти работать на кого-то, чтобы зарабатывать деньги как разработчик? Ответ простой — нет. Если вы предпочитаете работать в одиночку, с разными проектами или ищите большую гибкость в работе — фриланс ваш выбор.
С другой стороны у фриланса нет определенности. Вы не всегда знаете когда у вас будет новый проект или зарплата. Так же есть шанс увязнуть в собственном бизнесе фриланса (хотя вы можете почувствовать в этом некоторую свободу и даже получать от этого удовольствие). Так же фриланс дает возможность заниматься иными интересами, вроде собственных проектов или путешествий.
FAANG VS Стартап
Вы предпочитаете работать в компаниях? Какие это компании? Хотите быть в стремительном развивающемся стартапе? А может быть тянет к гигантам вроде Google или Microsoft? Или вовсе в менее привлекательной, зато стабильной компании?
Очевидно, не все компании одинаковы. Так же разные группы, организации и команды могут взаимодействовать очень по-разному даже внутри компании.
При выборе компании есть много вопросов, на которые стоит ответить себе, и тогда уже принимать решения. Вы хотите работать в известной компании? Команда нужна большая или маленькая? Хотите получать больше или работать на дому? Хотите знать всех, с кем работаете, или же работать с большой организацией? Будет ли место для пинг-понга, или же только разумная трата времени? Как много проектов вы готовы иметь? Готовы ли вы углубиться в проект?
Думаю вы сможете дополнить этот список и своими вопросами.
Individual Contributor (IC) VS Менеджер
Когда вы думаете о своей карьере, вы видите себя пишущим код вечно? Или же в роли управляющего другими? Может быть смесь из этих вариантов? Это хорошие вопросы, которые стоит учитывать, ведь разные компании имеют разные пути карьерного роста. Наиболее распространенные роли Individual Contributor (IC) и менеджер. В общем-то первый сфокусирован на написании кода, тогда как второй на создании более успешных разработчиков.
Оба имеют свои плюсы и минусы, и оба достаточно перспективны.
Вау. В этой короткой статье мы затронули множество вопросов и потенциальных путей карьерного роста для разработчика.
Другие популярные вопросы
Является ли хорошей карьера Android разработчика?
Абсолютно. Вы можете получить конкурентный доход и построить удовлетворительную карьеру Android разработчика. Эта система все еще самая используемая ОС в мире и потребность в умелых разработчиках очень высока.
Стоит ли изучать разработку под Android в 2020?
Да. Изучая это вы откроете множество карьерных возможностей, таких как фриланс, инди разработка, работа на крупные компании. Спрос на нативных Android разработчиков все еще очень высок и изучение Android еще никогда не было таким легким, благодаря обилию обучающих материалов.
Перевод выполнил Astler. Оригинал тут.