Центр непрерывного образования

факультет компьютерных наук НИУ ВШЭ

Всем привет!

Я — Дарья Касьяненко, эксперт Центра непрерывного образования факультета компьютерных наук НИУ ВШЭ. Мой коллега Юрий Вараксин, ведущий разработчик MD Audit (ГК Softline) и автор курса «Android‑разработчик на Kotlin», составил подборку учебной литературы для изучения мобильной разработки на Android.

Юрий Вараксин

ведущий разработчик MD Audit (ГК Softline) и автор курса «Android-разработчик на Kotlin»

Каждый раз, когда речь заходит о развитии в мобильной разработке, особенно на Android, вопрос изучения доступной литературы неизбежен. Какая книга действительно даст понимание процесса разработки? В этой статье я поделюсь подборкой книг для мобильных разработчиков на разных уровнях подготовки — от новичков до тех, кто уже уверенно чувствует себя в индустрии. Список составлен на основе книг как тех, которые я читал лично, так и полученных из бесед и отзывов разработчиков, с которыми работаю.


Начальный уровень

Брюс Эккель: «Философия Java» / Роберт Лафоре: «Объектно-ориентированное программирование в С++»

Это две достаточно объемные книги, которые позволяют познакомиться с языками, смежными для Android‑разработки, и дают хорошую базу понимания ООП и синтаксиса. Они помогают понять, почему в Kotlin всё устроено именно так. Java в прошлом был основным языком разработки под Android, а знание C++ расширяет кругозор и понимание того, как устроены другие языки.

Адитья Бхаргава: «Грокаем алгоритмы»

Эта книга — отличное введение в базовые алгоритмы. Она помогает развить алгоритмическое мышление с первых шагов. Книга не требует знания сложного синтаксиса языка, достаточно оперировать базовыми конструкциями, чтобы начать. В процессе прочтения вы учитесь решать задачи, анализировать код, улучшать решения и мыслить последовательно. Также она может стать надежным помощником в подготовке к собеседованиям.

Дмитрий Жемеров: «Kotlin в действии»

Отличная книга для изучения Kotlin, которую я рекомендую тем, кто уже имеет опыт работы с другим языком программирования (Java, C++). Недавно вышло новое издание, и книга остаётся хорошей альтернативой официальной документации Kotlin.

Роберт Мартин: «Чистый код», «Идеальный программист», «Чистый Agile»

Дядюшка Боб (так часто зовут Роберта Мартина) хорошо известен в IT. Эти книги помогут наработать «полезные привычки», взглянуть со стороны на процессы разработки ПО, сформируют базовое представление. В начале своего пути можно принимать его слова как истину, в дальнейшем — интересно рассматривать эти книги через призму своего опыта, обсуждать и критиковать.

Гэйл Лакман Макдауэлл: «Карьера Программиста»

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

Эрих Гамма, Ричард Хелм, Ральф Джонсон, Джон Влиссидес: «Паттерны объектно-ориентированного проектирования»

Классическое пособие, выпущенное той самой «бандой четырех», являющееся сброником паттернов проектирования, который остаётся актуальным более 25 лет. Научит структурировать код, не писать лишнего, понимать чужой код, видеть возможности для улучшений. Не нужно помнить наизусть реализацию каждого шаблона. Книга больше ориентирована на расширение кругозора. В каждой предметной области есть свой набор наиболее популярных шаблонов — с опытом эти шаблоны сами осядут в голове. В требованиях к вакансиям часто так и пишут «Знать основные паттерны банды четырех».


Про Android

Обычно я не рекомендую книги по платформе — издания быстро устаревают. Но если хочется почитать о базовых компонентах, полезно обращаться к официальной документации и гайдам от Google, а также к коду из официального репозитория Android на GitHub.


Средний / продвинутый уровень

Роберт Мартин: «Чистая архитектура»

Упомянутый ранее Дядюшка Боб рассказывает про очень популярный подход к проектированию приложений. В Android-разработке популярны обсуждения чистоты архитектуры. Книга даёт представление о подходах SOLID, слоях и других принципах: «Что? Куда? Как?».

Егор Бугаенко: «Элегантные объекты»

В данной книге представлено уже более глубокое погружение в суть и принципы ООП. Как и всегда — есть о чем подумать и с чем поспорить. Хорошая возможность взглянуть на известное ранее с другой стороны.

Роберт Лав: «Ядро Linux: описание процесса разработки»

Не про мобильную разработку, но книга поможет глубже понять систему, на которой был основан Android.

Алекс Сюй: «System Design. Подготовка к сложному интервью»

Android-разработчикам тоже важно понимать системный дизайн. Эта книга подготовит вас к вопросам на собеседованиях и поможет понять, что скрывается за пределами мобильного приложения.

Jorge Castillo: «Jetpack Compose internals»

Jetpack Compose — современный подход к созданию UI в Android (а уже — и для Kotlin Multiplatform). Книга расскажет, как Compose работает изнутри и поможет познакомиться с современным набором инструментов.

Евгений Зобнин: «Android глазами хакера»

Единственная «платформенная» книга в подборке. Не вся информация в книге может оказаться актуальна, но в ней представлены интересные примеры, обсуждены принципы работы внутренних инструментов безопасности.

Marcin Moskala: «Kotlin Coroutines: Deep Dive»

Корутины — основа асинхронной работы в Android. Они очень важны в современной Android-разработке, про них спрашивают почти на каждом собеседовании. Эта книга позволит разобраться с различными аспектами работы с корутинами и глубоко погрузиться в тему.

Брайн Гетц: «Java Concurrency на практике»

Глубокое руководство по созданию многопоточных программ на Java, построенное на принципах безопасного, масштабируемого и эффективного параллелизма. Принципы многопоточности особенно не поменялись для Kotlin (как «наследника» Java), поэтому знания из этой книги будут полезны и тем, кто с Java не работал. Но важно помнить, что далеко не все приемы из этой книги буду встречаться мобильным разработчикам.

Дональд Эрвин Кнут: «Искусство программирования»

Magnum opus Дональда Кнута. Несколько томов. Фундаментальный анализ важнейших алгоритмов.


Дополнительно

Роман Елизаров: «Корутины в Kotlin»

Это видео. В докладе разобраны различные подходы к асинхронному программированию. Их эволюция, отличия и схожести. Рассмотрен ставший уже традиционным подход к решению этой проблемы через async/await, который основан на Futures/Promises, и показано, как корутины в Kotlin дают более безопасную и простую модель программирования.


Как и любой другой разработчик, Android-разработчик должен стремиться к тому, чтобы быть универсальным software engineer — кругозор и насмотренность, фундаментальные знания и гибкость важнее, чем специализация. Литература из подборки начального уровня подборки подойдут не только будущим Android-разработчикам, но и любым программистам, желающим узнать что-то новое и расширить кругозор. А книги среднего и продвинутого уровней помогут вам углубить знания и продвинуться дальше в карьере. Удачи!

Комментарии (3)


  1. 0Bannon
    19.11.2024 11:58

    Что-то многовато. И даже С++. К такому меня не готовили на курсах.


  1. saag
    19.11.2024 11:58

    Хотел бы я знать как много людей одолели Кнута.