Собрали список и про Kotlin, и про Java, и про алгоритмы, и про новые инструменты, и популярное чтиво есть. Почитать на новогодние выходные.
![](https://habrastorage.org/getpro/habr/upload_files/bf0/dd4/3dd/bf0dd43dd9e3271a4ae201bbdea0a34a.png)
«Site Reliability Engineering: How Google Runs Production Systems», Бетси Бейер
![](https://habrastorage.org/getpro/habr/upload_files/7fe/711/655/7fe7116556434387ef3279fea390d193.png)
Это книга от Google, а значит она доступна бесплатно в онлайн-версии на английском. Почти 600 страниц (в печатной версии), 34 подробных главы…
![](https://habrastorage.org/getpro/habr/upload_files/c48/764/3d9/c487643d97ac176e1fe2ed829bfca025.png)
…и 6 приложений с полезными материалами, вроде приложения с таблицами доступности…
![](https://habrastorage.org/getpro/habr/upload_files/62c/2a4/931/62c2a493112ae793d796fc485a139a53.png)
…или с примерами постмортемов.
![](https://habrastorage.org/getpro/habr/upload_files/f10/788/54e/f1078854ea5f95187258c25266a39afd.png)
В целом, книга не о том, как надо делать, а о том, как это сделано в Google. Повторять их путь не обязательно, но что-то почерпнуть, например, в организационной части — можно.
И пусть вас не смущает SRE в названии — книга будет полезна не только DevOps-инженерам, как это казалось бы на первый взгляд.
![](https://habrastorage.org/getpro/habr/upload_files/01d/840/5df/01d8405df49e9589c64b895c2452d381.jpeg)
Абакар Магомедов
Android Tech Lead в приложении Альфа-Мобайл
«Книга не сильно связана с Андроид-разработкой, но в ней можно почерпнуть очень много важных моментов, когда вы хотите делать действительно крупный проект или систему. В книге описаны все виды граблей на которые можно понаступать пока вы создаете и поддерживаете крупную систему»
«Kotlin in Action», Дмитрий Жемеров, Светлана Исакова
![](https://habrastorage.org/getpro/habr/upload_files/7a6/a44/eb6/7a6a44eb60d8170d350ba02508d7a04f.png)
![](https://habrastorage.org/getpro/habr/upload_files/bea/6ad/866/bea6ad8667fcdc1822fee419b8b634f4.png)
Алексей Батурский
Android-разработчик в приложении Альфа-Мобайл
«Kotlin сейчас — стандарт де-факто в разработке мобильных приложений под Андроид, в книге довольно ёмко и лаконично описаны основные фичи языка»
Описано практически всё: от инструментария до документирования, от системы типов до конструирования DSL. Написано коротко, ясно, по существу…
![](https://habrastorage.org/getpro/habr/upload_files/e2b/f2e/f6d/e2bf2ef6d3f41b74a1edec1d18479a85.png)
…и с примерами.
![](https://habrastorage.org/getpro/habr/upload_files/d0e/91b/bc8/d0e91bbc85ca203a8ae331eabbff5951.png)
«Совершенный код», Стив Макконел
![](https://habrastorage.org/getpro/habr/upload_files/fe5/673/6c0/fe56736c0bd01207990f6574add6bb41.png)
Понять, что «Совершенный код» уже «взрослая» книга можно по обложке — сейчас таких не делают: ведь первое издание русскоязычной версии датируется 2005 годом, а англоязычную выпустили ещё в прошлом веке.
Но возраст здесь не помеха — принципы актуальны до сих пор, с учётом того, что есть довольно свежие версии с обновлениями.
![](https://habrastorage.org/getpro/habr/upload_files/067/9e4/f5f/0679e4f5fe1070e9f8f517b3b8be86fa.jpeg)
Абакар Магомедов
Android Tech Lead в приложении Альфа-Мобайл
«Отличная книга о том, почему чистота кода это важно и как её поддерживать. В книге большое количество примеров, что делает её чтение ещё интереснее»
Но есть одно «Но». Автор очень любит писать — почти 900 страниц, как никак. Вот типичный абзац.
«На уровне архитектуры ПО сложность проблемы можно снизить, разделив систему на подсистемы. Несколько несложных фрагментов информации понять проще, чем один сложный. В разбиении сложной проблемы на простые фрагменты и заключается цель всех методик проектирования ПО. Чем более независимы подсистемы, тем безопаснее сосредоточиться на одном аспекте сложности в конкретный момент времени. Грамотно определенные объекты разделяют аспекты проблемы так, чтобы вы могли решать их по очереди. Пакеты обеспечивают такое же преимущество на более высоком уровне агрегации. Стремление к краткости методов программы помогает снизить нагрузку на интеллект. Этому же способствует написание программы в терминах проблемной области, а не низкоуровневых деталей реализации, а также работа на самом высоком уровне абстракции»
«Совершенный код», Стив Макконел
И, кажется, Стив понимает, что пишет очень много:)
![](https://habrastorage.org/getpro/habr/upload_files/bc9/807/d8b/bc9807d8b174991618ce6ebafd3a5801.png)
Лаконичности предыдущей книги «Совершенному коду» не хватает:)
«Совершенный алгоритм. Основы», Тим Рафгарден
![](https://habrastorage.org/getpro/habr/upload_files/9d9/474/c91/9d9474c912733b63f728a9f48d7ab763.png)
![](https://habrastorage.org/getpro/habr/upload_files/a0b/94a/e79/a0b94ae79b5adc796fff8b3ec7dfe62d.jpeg)
Абакар Магомедов
Android Tech Lead в приложении Альфа-Мобайл
«Очень интересная книга по алгоритмам. Автор описывает базовые термины как на научном, так и на простом языке. Причём даёт сразу две формулировки, чтобы сложилось более глубокое понимание предмета»
«Интересность» книги возникла не просто так. Ведь она основана на курсах по алгоритмам на Coursera, которые Рафгарден, в свою очередь, основал на лекциях, которые он же читал в Стэнфордском университете. Книга — это двойная производная от лекций, так сказать.
Шесть глав, 258 страниц, алгоритмы, и ничего лишнего.
![](https://habrastorage.org/getpro/habr/upload_files/d9f/78a/c09/d9f78ac09c5875830370da08dea1af2d.png)
«Effective Java, 3rd Edition», Joshua Bloch
![](https://habrastorage.org/getpro/habr/upload_files/bfd/0cb/b64/bfd0cbb64507f6a58c0040889c48b3fd.png)
— Так, а зачем здесь Java? Все новые приложения уже пишут на Kotlin!
![](https://habrastorage.org/getpro/habr/upload_files/fce/628/21c/fce62821c4dea795358cb4b1565b8ace.png)
Алексей Батурский
Android-разработчик в приложении Альфа-Мобайл
«Всё верно, но проекты с легаси, написанным на Java никто не отменял. А ещё сами исходники Android SDK на Java, а залезать в них во время работы придётся»
Как пишут в отзывах, вы «точно поймёте, как используется та или иная функция»
Раз уж речь зашла о Java, то следующая рекомендация…
«Java Concurrency in Practice», Brian Goetz
![](https://habrastorage.org/getpro/habr/upload_files/a9a/4c9/aed/a9a4c9aed8dec0133261b48ce7d0071c.png)
![](https://habrastorage.org/getpro/habr/upload_files/75e/b11/94e/75eb1194e19f552b88a308e5d7d031c7.png)
Алексей Батурский
Android-разработчик в приложении Альфа-Мобайл
«В современных мобильных приложениях довольно много асинхронной работы. Конечно, она уже закрыта за большим количеством абстракций (kotlin coroutines, rxjava2, HandlerThread) — но не лишним будет узнать, как всё это работает на более низком уровне. В книге приводится довольно много фундаментальных проблем связанных с многопоточностью и работой с памятью. Сложное, но интересное чтиво»
Многопоточность сложная вещь. Не то, чтобы правильно реализовать — трудно объяснить. Но здесь автор применяет хитрую уловку — показывает как не надо делать, прежде чем рассказать как надо.
![](https://habrastorage.org/getpro/habr/upload_files/750/747/956/7507479564e01e8509182ccd0a3d58b1.png)
«Jetpack Compose Internals», Jorge Castillo
![](https://habrastorage.org/getpro/habr/upload_files/fec/4fe/eaf/fec4feeaf1bb568ee3d1e3e751d7162b.png)
![](https://habrastorage.org/getpro/habr/upload_files/fe7/9c6/d82/fe79c6d824dceeb484b628213fc005c6.jpeg)
Абакар Магомедов
Android Tech Lead в приложении Альфа-Мобайл
«Compose сейчас все больше набирает популярность, как инструмент построения UI на Android. В этой книге описано, как он устроен под капотом. Всегда полезно знать, как работает тот инструмент, которым пользуешься в повседневной разработке»
Книга стоит 50 с лишним долларов и есть только на английском. Если это станет препятствием — можно почитать блог Хосе, там тоже достаточно статей о Jetpack Compose. Но глобального понимания, как книга, статьи не дадут.
«Идеальный программист», Роберт Мартин
![](https://habrastorage.org/getpro/habr/upload_files/e57/1a8/61e/e571a861e92f3e3443fbff05271700ba.png)
![](https://habrastorage.org/getpro/habr/upload_files/3b9/7bc/4f1/3b97bc4f1c716f6e086102cd484e46de.jpeg)
Абакар Магомедов
Android Tech Lead в приложении Альфа-Мобайл
«Эта книга позволяет понять, что я не первый кто сталкивается с определенным типом проблем в карьере программиста и успокаивает даже снимает синдром самозванца. Если уж такой человек как Роберт Мартин ошибался и спокойно может написать книгу о своих ошибок, то и в моем случае в этом нет ничего критичного. Главное учиться на каждой своей ошибке»
В целом, книга скорее мотивирующая, чем техническая — в формате жизненный историй и уроков.
![](https://habrastorage.org/getpro/habr/upload_files/b3e/9b7/974/b3e9b79742134ee049d179d79a30561f.png)
Прочитав её, сразу становится понятно, какую мораль (в хорошем смысле) от Роберта мы прочтём. Книгу можно читать даже если вы далеки от разработки — советы универсальные (почти все).
«Extreme Programming», Kent Bek
![](https://habrastorage.org/getpro/habr/upload_files/4fc/ba6/0f9/4fcba60f9bae24fabc4a8e7308ecc290.png)
![](https://habrastorage.org/getpro/habr/upload_files/85c/e78/b14/85ce78b1433bcc45b568eb81465db60f.jpeg)
Никита Горбунов
Ведущий Android-разработчик в приложении Альфа-Мобайл
Книгу можно назвать гайдом по созданию ПО. Писал её человек с большим опытом, который успел поучаствовать в большом количестве проектов. Так лучше чем наступать на свои грабли прочитать о чужих»
«С большим опытом» это даже скромно:) Кент Бек — это легенда: один из авторов шаблонов/паттернов проектирования (да, у идеи паттернов есть авторы), автор JUnit, автор книг и подхода экстремального программирования. Это не все достижения, для этого есть отдельная статья у JUG Ru. Но даже этого короткого списка хватит, чтобы записать книгу в список обязательных для чтения.
На этом всё — оставайтесь на связи.
Рекомендуем почитать [подборка редактора блога]:
«А поговорить?»: как сделать голосового помощника в браузере
Подкасты, книги, курс: подборка интересного по Deep Learning
Семантическое версионирование и проблемы с зависимостями — коротко о lockfile
Как мы искали взаимосвязь между оценкой SUS и эмоциональным откликом
Подписывайтесь на Телеграм-канал Alfa Digital — там мы постим новости, опросы, видео с митапов, краткие выжимки из статей, и другие подборки, иногда шутим.
ivanovdev
Не понял, что в названии делает слово "мобильной"
AlfaTeam Автор
Действительно, это же подборка для Android-разработчиков