Мобильный разработчик создает приложения для планшетов, телефонов, смартчасов, фитнес-трекеров, онлайновых касс, GPS-навигаторов и других похожих устройств. Из этого перечня понятно, насколько востребованы разработчики программного обеспечения под Android или iOS, а вот как с нуля прийти в мобильную разработку, «ПрофГид» спросил у практиков, уже достигших определенных высот в профессии.

Михаил Альфа
Ведущий разработчик РСХБ-Интех, преподаватель в онлайн-школе Otus

Чтобы стать разработчиком мобильных приложений, прежде всего, необходимо определиться с тем, под какую платформу вы собираетесь писать приложения. Может быть, вы очень любите iPhone и хотели бы привнести на эту платформу свои интересные и свежие идеи, создав крутые приложения, или же вы сторонник открытой (пока) экосистемы Android, в которой у пользователя много власти и вы бы хотели ринуться в бой на этом поле боя. Или… вас заморозили в 2015 году, а разморозили только сейчас, и вы очень хотите писать приложения для Windows Phone?

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

Какую платформу выбрать

Пару лет назад ушла в релиз очень многообещающая технология, позволяющая писать быстрые нативные приложения сразу под iOS и Android. Имя ей – Flutter. Это кроссплатформенный фреймворк для создания на приятном языке программирования качественных и быстрых приложений, покрывающих практически любой скоуп задач. Единственная сложность, связанная с этим инструментом, – 3D, но и она, если есть желание, условна. Конечно, кроссплатформенная разработка была и до Flutter. Основным игроком тут был React Native, однако этому старичку очень сильно досталось, и даже больше: Flutter активно отъедает куски и от пирога нативной разработки (когда используются «родные» языки программирования и средства, для написания платформенных приложений – Swift / iOS + XCode, Kotlin / Android + Android Studio).

С моей субъективной точки зрения, существует очень ограниченный набор предметных областей, где этот инструмент был бы не применим вообще, а это значит, что практически любую задачу, связанную с разработкой приложений, можно решить с помощью Flutter, а это, в свою очередь, значит, что найти работу вам будет несложно, и она будет интересной, а платить за нее будут достойно. Вакансий по Flutter уже сейчас весьма много, а в будущем будет еще больше. Что же, если вы читаете эти строки, значит, я смог вызвать у вас интерес и самое время переходить к практическим шагам, как «вайти» в это дело.

Где учиться: вуз, курсы или «я сам» 

1. Высшее образование – вещь, совершенно не связанная ни с каким фреймворком или языком программирования или технологией, ну почти не связанная. Я отлично закончил бакалавриат и магистратуру, все по направлениям программной разработки, и я могу сказать, что все, что я узнал во время обучения, на 90 % не применимо в промышленной коммерческой разработке. Но жалею ли я о том, что потратил 6 лет своей жизни на вуз? Конечно, нет!

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

У вузов есть и другие преимущества: это нетворк (социальные связи / знакомства), различные программы стажировок, возможность международного обмена опытом. И довольно весомая вещь – открытие дверей в IT-эмиграцию, если это вам интересно. В большинстве программ профессионального релокейта необходим или большой (>10 лет) опыт работы или высшее образование и небольшой опыт (>2 лет). Если посчитать на калькуляторе, то получится, что 4 года бакалавриата и 2 года рабочего опыта намного меньше просто 10 лет рабочего опыта, и, если вы хотите испытать себя за рубежом, выбор очевиден. Но хватит с этим пунктом.

2. IT-курсы – по моему мнению, это скорее хорошо, чем плохо. Я сам преподаватель в нескольких онлайн-школах и обучаю студентов, но при этом я могу с уверенностью сказать, что если вы способны обучаться сами, у вас есть умение учиться, то вам не нужны никакие платные образовательные курсы, они не сделают вас более «прокачанным», они просто позволят вам получить доступ к информации в более плотно упакованном виде, чем если бы вам пришлось искать ее самостоятельно. Но при этом, если вы не ищете информацию самостоятельно, то вы не развиваете еще один важный навык разработчика – «гуглинг» – способность находить в Сети что угодно, отделяя зерна от плевел, и таким образом развиваться.

3. Самостоятельное обучение – это, как по мне, самый тернистый, и в то же время самый продуктивный путь развития. Умея искать знания в Сети, набивая шишки, вы получите несравненно больший опыт, чем где бы то ни было, и я с уверенностью могу сказать, что можно научиться самостоятельно (с помощью Интернета, конечно) чему угодно! Дело лишь за силой воли…

С чего начать самоучке: шаг за шагом

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

Есть мнение, что программистам бывают полезны уточки: если что-то не понимаешь или хочешь понять лучше, объясни что-то уточке, а объясняя ей, объяснишь и себе. Давай так и рассмотрим процесс обучения.

Наша Уточка твердо хочет стать мобильным разработчиком, но она не хочет ограничиваться ни Android-разработкой, ни iOS. Уточка решила войти во Flutter. Уточка находится в растерянности. Уточка не знает, с чего начать.

У нее есть какие-то товарищи, которые уже занимаются разработкой софта, но все их ответы на вопросы не особо-то помогают или сводятся к «тебя в Гугле забанили?». Люди занятые – что с них взять. Но Уточка не промах и обратилась за советом ко мне, и первое, с чем я ей помог, – поделился ссылкой на документацию языка Dart. Это нужно, чтобы освоить самый базовый уровень – условные буквы и слова, из которых Уточка сможет создавать крутые приложения на Flutter. При этом совершенно не нужно ничего устанавливать, поиграться с языком можно в онлайн-песочнице.

Эту документацию можно сносно освоить за один вечер, и вот наша Уточка сгорает от нетерпения, что делать дальше? Лучший совет, который я проверял на практике много раз, – написать приложение. Но к-а-а-к? Уточка только-только разобралась с тем, как выводить Hello world!, а тут тебе уже приложения писать предлагают. Ок, Уточка, чтобы начать писать приложения, тебе нужно развернуть самый простой шаблон. Как это сделать? Чтобы прийти к успеху, тебе нужно:

  1. Установить Flutter (Dart – язык разработки под Flutter, будет идти в комплекте).
  2. Настроить окружение – твое любимое средство разработки, за которым ты проведешь следующие 10 000 часов, чтобы стать великим разработчиком. И, Уточка, если ты не знаешь, какой инструмент выбрать, то мой сугубо персональный и крайне субъективный совет – выбирай Android Studio. Без нее все равно не обойтись, но эта IDE очень хороша. Или IDEA. На этом этапе ты установишь необходимые плагины для работы и сможешь смело идти дальше.
  3. Развернуть шаблон приложения.
  4. Написать приложение!

Все просто, как с рисованием совы.

Шутки шутками, но, Уточка, это действительно несложно. После этих четырех простых шагов у тебя перед глазами будет рабочее приложение, в котором ты сможешь по-настоящему начать учиться. Это как с велосипедом: бесполезно объяснять человеку, как именно ему нужно двигаться и что делать, единственный способ научиться – это сесть и поехать. Да, ссадин будет много, ну а как иначе? Но хватит лирики, идем дальше!

«Вот я открыла это приложение, и что? Ничего не понятно», – говоришь ты мне. А я тебе отвечу: «Посмотри внимательно на код, там есть прекрасные комментарии, попробуй этот код сломать!» Попробуй что-то изменить. Что называется, «потрогать». А дальше дело за малым: нужно поставить перед собой цель. Например, написать какое-то простое приложение, которое будет решать твою проблему, или тебе просто интересно его сделать. И вот ты стоишь в самом начале пути, и потихоньку-помаленьку к этой цели будешь идти. Если будет что-то не понятно – Гугл. Если ошибок полно и все сломано – Гугл, ну или заново создай этот же проект, если прям совсем все плохо. И лучше всего двигаться к цели маленькими шажками (на велике ты вначале тоже едешь до ближайшей стены или человека). Это называется декомпозиция – разделение большой и сложной задачи на множество маленьких и простых.

Если идей совсем нет – не беда. Сделай крестики-нолики. Простые, с полем 3 на 3 и без противника вовсе – чтобы можно было играть с самим собой. И вот тебе пример, как декомпозировать эту задачу:

  1. Создай игровое поле (9 квадратов).
  2. Сделай возможным пребывание каждого из квадратов в одном из трех состояний:
    • пустой квадрат;
    • квадрат с крестиком;
    • квадрат с ноликом;
  3. Сделай обработку нажатия на квадрат (чтобы он мог в принципе менять свое состояние).
  4. Сделай логику ходов. Например, если ход четный – это ходит Игрок 1, если нечетный – Игрок 2. И пускай первым всегда ходит Игрок 1, не беда.
  5. Сделай проверку на выигрыш, осуществляемую после хода каждого игрока. Правила этой игры всем известны, а вводные условия довольно простые, и даже если не получится сделать эту логику расширяемой (чтобы в будущем увеличить поле до любого размера, к примеру), опиши все возможные состояния поля, в которых есть победитель (их всего 8), и проверяй по ним, есть ли выигрыш в конце каждого хода.
  6. Доведи дело до конца!

Гарантирую: когда ты запустишь на своем телефоне свое первое приложение, которое будет работать, в котором ты сможешь сыграть сам с собой в крестики-нолики, ты уже не будешь таким, как прежде. Крестики-нолики станут твоей любимой игрой. Затем тебе захочется улучшить его, сделать красивее, добавить настройки размерности поля и переписать «ифы» определения победителя на более умный алгоритм. А дальше остается только не бросать и искать все новые и новые вызовы, с которыми ты будешь справляться.

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

Все описанное выше – мой личный опыт и опыт десятка близких людей / друзей, которым я помогал лично и совершенно безвозмездно. Я даже свою жену так научил, хотя она и пыталась меня все это время убедить в том, что она гуманитарий и у нее ничего не получится. Получилось! И у тебя получится!

 
 
 
 
Вадим Атаманенко
Senior Software Engineer; Founder, Project manager компания MightySAP

Выбор платформы

Первое, на что стоит обратить внимание в выборе, – рынок и платформа для разработки. Основных на текущий момент существует две.

  • Apple-платформа (с языком разработки Swift), так сложилось, что разработчики мобильных приложений этой платформы могут зарабатывать больше по отношению к другим, и связанно это как с политикой компании Apple, так и с конечными пользователями устройств, которые более лояльно относятся к платным приложениям, доход от которых отчасти позволяет нанимать новых разработчиков, развивать приложение и стимулировать к росту существующих разработчиков в компании.
  • Android-платформа (с языком разработки Kotlin), рынок разработки довольно насыщен специалистами разного уровня и географии. Отсутствие полноценной согласованной политики использования платформы, разрозненность устройств сыграли с этой платформой злую шутку. По факту разработчику приложения бесконтрольно отданы все права на использование программных и аппаратных ресурсов, а отсутствие опыта/навыков в разработке и оптимизации использования ресурсов влечет, для примера, от повышенного потребления батареи и системных ресурсов до утечки персональных данных. По этой причине тут приходится полагаться на уровень опыта разработчика. В аналогичном примере с Apple при публикации приложения в AppStore каждое приложение проходит цепочку проверок, которые четко регламентированы и задокументированы для исключения ошибок, указанных выше.

Обучение

Ок, с выбором платформы определились, далее переходим к вопросу, как с минимальными потерями зайти на рынок мобильной разработки. По своему опыту разработчика (20+ лет в профессии): академические знания фундаментальны, и без них будет достаточно сложно, но все зависит от человека и пути развития.

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

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

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

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

3. Академическое образование в вузе, колледже. Все зависит от того, когда вы задумаетесь о входе в профессию. Если время позволяет, то можно начать обучение и с 13-14 лет, и к окончанию школы получаем специалиста с опытом 3+ года в разработке, который вправе самостоятельно решить, нужны ли ему те знания, которые дает общеобразовательная программа, которая в большей части уже им пройдена. Но есть и достаточное количество примеров тех, кто входил в профессию и после 40, и весьма успешно.

 

 

От редакции

Честные и реальные отзывы о любых курсах, в том числе и об ИТ, найти сложно. «Т–Ж» разработал «Сравнятор» курсов, пока это β-версия, для начала в ней представлено ИТ-направление. Отзывы оставляют читатели журнала, ответы принимают только после того, как автор прислал в редакцию чек об оплате обучения на курсах, о которых он оставляет отзыв. 

Сергей Куликов
Инженер-программист в компании GigAnt

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

  • Следующим шагом будет изучение основ программирования, переменных, ветвлений, циклов, функций, примеров в Интернете, на YouTube. Если попали в вуз, где есть программирование, то это все 100 % там пройдется и доступно объяснится.
  • Отдельно выделил бы ООП. Для начинающих сложная штука, но с пониманием станут доступны любые современные языки программирования. Долго искать информацию по ООП тоже не придется, все очень легко гуглится, с пониманием и применением помогут видео на YouTube.
  • Если определились с нужным языком, то можно искать инфо и видео сразу по этому языку. Для популярных языков очень много бесплатных обучающих материалов с примерами, которых хватит для базового понимания языка и программирования в целом. Также не стоит забывать про официальную документацию по выбранному языку, в ней будет более подробно описан каждый нюанс, и плюсом будет стартер-гайд.
  • Платные курсы помогут сэкономить время и найти человека, который поможет решить непонятные моменты.

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

И самое главное – не переставать изучать что-то новое, так как в программировании все меняется быстро, за исключением основ.

 
Данил Абдрафиков
Flutter developer, IT-компания TAGES

Шаг 1. Определиться с платформой

Чтобы стать мобильным разработчиком, в первую очередь необходимо определиться с целевой платформой. Честно сказать, каждая ОС по-своему интересна и уникальна. Я начинал свой путь с нативной разработки и пришел к кроссплатформенной. Если поставлена цель погрузиться в мобильную разработку полностью, то, однозначно, стоит рассматривать Swift или Kotlin. Можно пойти и от простого к сложному – посмотреть в сторону Flutter, а дальше уже решить для себя, стоит ли углубляться.

Шаг 2. Придумать pet-проект

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

Шаг 3. Найти наставников

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

P. S. Поднимаясь по карьерной лестнице разработчика, не забывайте помогать другим.

Ivan Besarab
iOS Team Lead, Innit.inc, Silicon Valley, CA

Я работаю iOS разработчиком уже более 7 лет, все это время успешно веду курсы по обучению моей профессии «iOS с нуля».

В начале моего пути в мобильную разработку я сделал две ошибки:

  1. Думал, что деньги, уплаченные за курс, будут меня мотивировать.
  2. Читал сложную техническую литературу без какого-либо понимания основ программирования.

Не повторяйте их.

Из всех бесплатных курсов всем начинающим программистам я бы посоветовал курс CS106A вне зависимости от того, какой язык или направление вы хотите изучать. Этот курс буквально открыл мне глаза на все, что я пытался впихнуть в свою неподготовленную голову 1,5 года. Главный совет по прохождению этого курса, да и любого другого: не переходите к следующему занятию, не выполнив все задания из предыдущего. Если не идет, подождите некоторое время, а потом возвращайтесь к материалу. Я как-то неделю думал над тем, как расставить разделители в числе 1000000 -> 1,000,000, а мой друг бросал и начинал это дело уже 3 раза и с каждой следующей попыткой его прогресс становится все более весомым.

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

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

  1. Сделайте проект, который будет не стыдно показать пользователю.
  2. Выложите его на AppStore или GooglePlay.
  3. Попросите наставников помочь с составлением резюме и оформлением профиля в LinkedIn.
  4. Просто идите на собеседования везде, где только вам ответят. Записывайте разговоры на диктофон.
  5. Анализируйте все ответы, подтягивай недостающие знания, возвращайся к п. 4.
  6. Ходите на сходки и конференции – нетворкинг решает очень многое.
  7. Делитесь мнением и не бойтесь спрашивать.

Главное – занимайтесь тем, что вам действительно нравится и приносит удовольствие!

Сергей Якушевич
Senior iOS Developer, Kaltura

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

  1. Сначала нужно выучить язык программирования. Взять и понять, сможешь ли ты написать цикл подсчета суммы и т. д. Учиться можно по книге или видеоурокам с нормальными отзывами: делать самому то, что там делается, как можно с меньшими подсказками. Если есть домашки, то делать их тоже – даже если непонятно зачем.
  2. Параллельно или немного позже нужно самому или на курсах бесплатных/платных обучаться разработке под iOS или Android. Должно быть много практики: на курсах – лабы, самому писать мобильное приложение. Пусть оно будет простое – чтобы не выгореть (вариант «я крутой и за месяц напишу то, что пишет команда разработчиков» не подходит).
  3. Хорошо еще скачать на выбранной платформе перечень вопросов для младшего разработчика и по нему закрывать теоретические вопросы, пробовать их применять или в своем проекте, или в прототипах. Изучать структуры данных и алгоритмы на базовом уровне – массивы, очереди и т. д.

При выборе платформы не забывайте про бюджет. 

  1. Техника Apple дорогая. iOS – это более закрытая платформа, большинство вещей там сделано хорошо и вариантов устройств меньше, чем Android-устройств.
  2. Пользователей Android больше. Эта платформа более открытая и менее надежная по сравнению с Apple. Хотя Samsung и Huawei и многие другие делают тоже довольно надежные вещи. У Android много библиотек для разработчиков и пользовательский интерфейс проще делать – интересные анимации и красивые таблицы. Но сейчас на iOS идет доработка: упрощается разработка пользовательского интерфейса (SwiftUI framework).

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

Мик Вайсман
Основатель и CEO Trinity Monsters

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

  • Сбер;
  • Тинькофф банк;
  • Яндекс.

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

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

Изучение базы разработки iOS и Android

Для погружения в область мобильной разработки можно получить как платное онлайн-образование от «Яндекс. Практикум», так и пройти бесплатное обучение в «Яндекс. Академии».

  • Курс «Веб-разработчик» на «Яндекс. Практикум» длится 10 месяцев. Организаторы обещают, что с нуля обучат желающих разрабатывать сайты и веб-приложения: практика в тренажере, создание цифровых продуктов во время обучения, возможность собрать портфолио в рамках курса.
  • Бесплатная «Школа мобильной разработки» «Яндекс. Академии» проходит с 31 мая по 31 августа. Можно совмещать работу и учебу. Отбор по конкурсу, одно из требований на отборочных этапах – базовые знания Swift для iOS-разработки или опыт написания приложений на Java или Kotlin для Android-системы.

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

Роман Блинов
Разработчик в DataArt

Говоря о профессиональном пути в мобильной разработке с нуля, стоит рассмотреть несколько случаев:

  1. Старшеклассник, который всерьез решил построить карьеру в ИТ, ему нравится мобильное направление, и он делает свои первые шаги. В таком случае я бы рекомендовал получить высшее профильное образование: в области компьютерных наук или математическое. В хорошем вузе. В ходе учебы он сможет изучить все основные общие дисциплины (алгоритмы, к примеру), которые ему понадобятся в будущем на достаточно глубоком уровне, и выбор и изучение конкретных технологий уже не составят труда.
  2. Новичок, у которого нет возможности или желания получать профильное образование. В таком случае придут на помощь онлайн-курсы. Сейчас на рынке довольно много онлайн-школ, которые предлагают соответствующие курсы и помогают с трудоустройством.
  3. Разработчик, который решил переквалифицироваться. Обычно такие люди сами знают, что и как им делать, не впервой, так сказать, и обучаются они часто по статьям, документации и тематическим видео на YouTube.

Касательно выбора технологий: я бы рекомендовал кроссплатформенные языки и инструменты, такие как Kotlin или React Native. 

Подведем итоги

  1. Первое, что нужно сделать тем, кто решил с нуля стать мобильным разработчиком, это определиться с платформой для разработки: iOS или Android. Компромиссный вариант – кроссплатформенный фреймворк Flutter.
  2. Для разработки под iOS надо изучить хотя бы основы языка программирования Swift, под Android – Java или Kotlin.
  3. Базу можно изучать самостоятельно: в этом поможет официальная документация языков и бесплатные тренировочные ресурсы.
  4. Дальше можно продолжить тернистый путь самоучки, а можно подыскать стажировку или окончить бесплатные курсы, например, в «Академии Яндекса».
  5. Учеба в вузе на соответствующей специальности (программирование, математика) даст фундаментальную базу, общее представление о законах разработки и научит учиться – а это мобильному разработчику предстоит делать постоянно.

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