Учиться придется интенсивно и постоянно»

Учиться придется интенсивно и постоянно»

Я стала самостоятельно изучать язык программирования Java по вечерам после работы и в выходные, писала свои небольшие консольные приложения. Позже я начала осваивать язык Kotlin и мобильную разработку; свой код я выкладывала в открытый репозиторий на GitHub . Мне повезло: в моем окружении много программистов, поэтому было к кому обращаться за советом и помощью. Свои пет-проекты я показывала коллегам, просила проверить код и указать на недочеты. Это очень помогло.

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

Почему вы выбрали именно мобильную разработку?

Это очень интересная и перспективная сфера программирования. Мобильные приложения затрагивают почти все сферы человеческой жизни: с их помощью можно оплачивать товары и услуги, играть, отслеживать прогресс в занятиях спортом, изучать иностранные языки и другие предметы, знакомиться с новыми людьми и т.д. Я, например, активно пользуюсь мобильным приложением Stepik для изучения программирования. Приложения очень упрощают современную жизнь, делают ее более комфортной, и мне очень хотелось принимать участие в разработке таких продуктов.

Что нужно знать человеку, который решил заняться мобильной разработкой?

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

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

Какими ресурсами для обучения вы пользуетесь?

Я пользовалась следующими ресурсами:

Учиться придется интенсивно и постоянно»

  • Книга «Изучаем Java» серии Head First. Авторы: К. Сьерра, Б.Бейтс. Я очень люблю все книги этой серии за доступный игровой стиль изложения. В книге «Изучаем Java» доступно изложены понятия об основных свойствах объектно-ориентированного программирования, синтаксисе языка Java, работе с многопоточностью, дженериках, лямбда-выражениях и пр.
  • Видеокурс«Java. От простого к сложному» . Автор: Александр Васько. 106 лекций отменного качества в записи.

Kotlin

  • Книга «Kotlin» серии Head First. Авторы: Дэвид Гриффитс и Дон Гриффитс. Отличное пособие для начинающих изучать язык Kotlin. Как и во всех книгах этой серии, материал изложен увлекательно и доходчиво.
  • Сайт kotlinlang.ru содержит много полезной информации о синтаксисе языка Kotlin, функциях и лямбда-выражениях, корутинах (сопрограммах) и т.д.

Android

  • Книга «Программирование для Android» серии Head First. Авторы: Дэвид Гриффитс и Дон Гриффитс. В этой книге объясняются ключевые концепции: основные компоненты Android-приложения, работа с базой данных, проектирование интерфейсов и другие важные вещи. Есть множество заданий для самопроверки, примеры кода на языке Java.
  • Книга «Android для профессионалов. 4-е издание». Авторы: К. Марсикано, Б. Гарднер, Б. Филлипс, К. Стюарт. Это – новейшее издание книги, вышедшее на русском языке в ноябре 2020 года. Я бы рекомендовала ее всем начинающим разработчикам, желающим писать Android-приложения на языке Kotlin.

Алгоритмы

  • Книга «Грокаем алгоритмы». Автор: А. Бхаргава. Мне очень понравился доступный и легкий стиль, в котором написана эта книга. Простым языком объясняются сложные для меня, гуманитария, вещи: О-нотация, хеш-таблицы, поиск в ширину, жадные алгоритмы, динамическое программирование и т.д.
  • Также полезно будет прочесть книгу «Алгоритмы» под авторством С. Дасгупта, Х. Пападимитриу, У. Вазирани. Сейчас я открыла для себя еще один труд, посвященный алгоритмам: «Структуры данных и алгоритмы в Java». Автор – Р. Лафоре. Насколько я знаю, последняя книга рекомендована для подготовки к собеседованию на стажировку в Яндексе.
  • Курс лекций «Алгоритмы. Теория и практика. Методы». Курс бесплатный и доступен по ссылке: https://stepik.org/course/217/syllabus .
  • Продолжение: «Алгоритмы. Теория и практика. Структуры данных». Курс доступен по ссылке: https://stepik.org/course/1547/syllabus .

Авторы этих курсов рекомендуют сначала посмотреть курс про методы и только потом переходить ко второму – про структуры данных.

Шаблоны проектирования

  • Книга «Паттерны проектирования. Юбилейное издание» серии Head First. Авторы: Э. Фримен, Э. Робсон.

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

Что следует изучать начинающему Android-разработчику?

Несмотря на то, что полтора года назад я начала изучение программирования с языка Java, и на Kotlin перешла через некоторое время, сейчас, в 2021 году, я бы советовала сразу учить Kotlin. В компаниях используются разные стеки технологий, но в целом требования к начинающим разработчикам похожи: важно знать синтаксис языка программирования, коллекции, разбираться в теме многопоточности, уметь работать с запросами в сеть, знать систему контроля версий Git и т.д. Чтобы узнать, какие конкретно технологии необходимо изучать, достаточно зайти на любой сайт по поиску работы, найти актуальные вакансии и посмотреть, что требуют работодатели.

Почему вы советуете начинать изучение программирования сразу с Kotlin, а не с Java?

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

Нужны ли начинающему разработчику знания алгоритмов?

Я считаю, что навыки решения алгоритмов, безусловно, надо развивать и оттачивать каждому разработчику. Чтобы набить руку в решении алгоритмических задач, отлично подходят следующие ресурсы: leetcode.com и www.hackerrank.com . Я стараюсь ежедневно разбирать хотя бы одну задачу, однако на первых порах можно поставить цель: освоить основные актуальные технологии, используемые в мобильной разработке, и найти первую работу, а после – тренировать навыки решения алгоритмов.

Основная проблема, с которой сталкивается начинающий Android-разработчик – это отсутствие четкого плана обучения и ментора. Если вы только начинаете свой путь в профессии, стоит обратить внимание на курс факультета Android-разработки образовательной онлайн-платформы GeekBrains. Под руководством преподавателей из крупнейших российских технологических компаний вы сможете освоить языки Java и Kotlin, разработаете свое приложение и опубликуете его в Google Play. Вас ждут: практика на реальных кейсах и командная разработка с другими студентами. Первые 6 месяцев обучения – бесплатно!