Книги по теме

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

Макдауэл Гейл Лакман — Карьера программиста — 2020г

Эта книга про то, как проходят собеседования, какие вопросы там задают и какие ответы вы можете на них дать. В основном речь о собеседованиях в крупные компании типа Google или Microsoft. Тут вам и реальные вопросы и примерные варианты ответов с объяснением того, чего обычно ожидают от кандидата.

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

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

Келли К. — Неизбежно. 12 технологических трендов, которые определяют наше будущее — 2017г

Эта книга больше для развлечения, чем для получения новых навыков. В ней описаны 12 направлений, которые по мнению автора будут играть ключевую роль в будущем технологической отрасли. И я соглашусь с ним, это так. Но сама книга вызывает вопросы.

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

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

Фаулер Мартин — Рефакторинг. Улучшение существующего кода — 2003г

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

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

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

Ким Джин — Руководство по DevOps — 2018г

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

Честно сказать сначала я думал, что в этой книге будут описаны конкретные технологии и их применение, а получил описание процессов и взаимодействие в рамках этих процессов. С одной стороны это полезные знания, и из этой книги можно почерпнуть много чего полезного. Например об истории направления, о его практическом применении и о том, как это организовано внутри. Но тут не будет ничего конкретного. Я бы сказал, что эту книгу нужно читать перед тем как стать DevOps. Но она определённо стоит того, чтобы её прочитать.

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

Стаффер Мэп — Laravel Полное руководство 2-е издание — 2020г

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

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

Но в любой хорошей книге по IT есть недостатки. Версия фреймворка, которая описана в книге, 5.6. Достаточно поздняя версия и ссылки на более ранние версии кажутся нелогичными. Из этого вытекает тот факт, что вы получите только базовую информацию, а за новыми функциями придётся идти в официальную документацию. Однако это не плохо. Книга даёт достаточно информации, чтобы погрузиться в разработку и без проблем понять философию фреймворка.

Моргунов Е. П. — PostgreSQL. Основы языка SQL. Учебное пособие — 2018г

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

Но не нужно считать эту книгу лучшим пособием по изучению PostgreSQL. Ведь для профессионалов она покажется довольно бесполезной. Но когда у тебя недостаточно опыта, то эта книга просто подарок. Она хороша тем, что в ней описаны самые «сочные» стороны работы с базой данных, её особенности и нюансы. Есть хорошие проверочные вопросы, на которые нужно найти ответы самому. И есть отличная подача материала. К тому же ожидается продолжение, которое сосредоточится на более продвинутых аспектах.

Однако помимо простоты эта книга короткая и её структура немного странная. То и дело попадаются пустые листы, дабы новая глава всегда начиналась с нового листа. Контрольных вопросов много, но они без ответов. И академическая подача материала выглядит суховатой. Однако я однозначно хочу рекомендовать эту книгу.

Хэнчетт Эрик — Vue.js в действии — 2019г

Когда вы fullstack разработчик и работаете как с фронтом, так и с бэком, то приходится быть компетентным во всех областях. Для меня VueJs является приоритетным фреймворком для разработки front части. Поэтому мне захотелось прочитать про него какую-то книгу, чтобы получить не сухие знания документации, а какой-то взгляд со стороны и мнение опытного человека, который может указать мне на какие-то нюансы.

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

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

Грофф Джеймс Р. — SQL. Полное руководство — 2015г

Раньше я рассматривал SQL как побочные знания, но за последние пару лет понял, что это обширная и глубокая тема со своими нюансами и особенностями. И если уж быть профессионалом, то нужны отличные знания каждой сферы, с которой приходится сталкиваться. Эта книга как раз и была прочитана для того, чтобы лучше узнать про SQL и восполнить пробелы в знаниях.

Книга позиционирует себя как полное руководство, но возможно для 2015 года это имело большее значение, чем сейчас. В книге много истории языка, много написано про развитие и про компании, которые так или иначе приложили свою руку к его развитию. Конечно же в книге большое место уделено возможностям языка, его основным (и в целом практически всем) функциям и как с ними работать. Однако написано очень сухо и порой складывается ощущение, что абзацы «пустые». Поэтому иногда приходилось её читать по диагонали, т.к. многие знания у меня уже есть.

Но это полезная книга, которая восполнила некоторые пробелы и дала некоторые новые знания. Она достаточно подробна, однако для меня не хватило описания особенностей PostgreSQL. Про него почти ни слова. Но для этого есть другая отличная книга. В целом могу рекомендовать её с натяжкой. Для новичков будет сложно, для профессионалов нудно. Но однозначно в ней есть полезные вещи.

Эдвард Йордан — Смертельный марш. Полное руководство для разработчика программного обеспечения по выживанию в безнадежных проектах — 1997г

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

Но в ней есть много личного опыта автора, который сконцентрировал его в описании различных проектов, которые в общей своей массе являются безнадёжными. С точки зрения автора это такие проекты, которые в итоге всё равно обречены на провал или мучительную и скоротечную жизнь. В нескольких главах автор рассказывает об участниках таких проектов (разработчиках, руководителях и пользователях), о причинах их [проектов] появления и заката, о значимости для своего времени в целом и для каждого участника в частности, о структуре отношений с такими проектами и о многом другом.

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

Ричардсон Крис — Микросервисы. Паттерны разработки и рефакторинга — 2019г

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

Даже если ваш проект прекрасно работает, то будет очень полезно узнать какие преимущества даёт микросервисная архитектура. В этой книге автор последовательно рассказывает о преимуществах и недостатках микросервисов. Объясняет, как можно перевести своё приложение на архитектуру, в которой ваш функционал будет разделён на независимые простые сервисы, работающие как единое целое. Эта книга не такая замудрёная как Высоконагруженные приложения Клепмана, но и полезной информации в ней достаточно.

Всем, кто занимается разработкой или управлением веб проекта эта книга будет очень полезной. На конкретном примере вы поймёте преимущества и недостатки, сделаете для себя выводы и получите ценный опыт. Пусть примеры на языке Java вас не пугают, они достаточно понятны. А множество схем отлично дополняют подробное описание. Я думаю, что каждая глава в этой книге по своему полезна и к ней удобно вернуться при необходимости.

Adel Faizrakhmanov — Архитектура сложных веб-приложений. С примерами на Laravel 2020г

Ну кто тут пишет на Laravel? Популярный ведь фреймворк. Так вот книга с примерами на нём. Хотя если подумать, то книгу можно рассматривать и отдельно от него.

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

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

Фредерик Брукс — Мифический человеко-месяц — 2000г

Мифическая книга, как я бы её назвал. Потому что в своё время она сделала много шума, но я этого шума не слышал, поэтому популярность этой книги для меня миф.

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

Но если у вас за плечами мало опыта, а подобного вы прочитали совсем чуть-чуть, то быстренько читаем эту книгу, пока она не стала совсем мифической. Есть в ней что-то особенно поучительное и кратко изложенное.

Котеров Дмитрий — PHP 7 В подлиннике — 2017г

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

Даже если ты провёл годы работы с этим языком и считаешь себя экспертом, то всё равно можно найти в этой книге полезные знания. Да даже просто свежий взгляд или анализ взгляда постороннего человека даст некоторые новые знания.

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

В заключение скажу, что эта книга весьма полезная. Можно даже потешить своё самолюбие, поставив на полку такую большую книгу. Но если без шуток, то даже спустя время я иногда в неё заглядываю, т.к. иногда что-то забывается и можно быстро освежить какую-то деталь в памяти.

Роберт Мартин — Чистая архитектура. Искусство разработки программного обеспечения — 2018г

В этой книге всеми известный автор даёт свои полезные советы о том, как правильно и профессионально работать с архитектурой программного проекта. Конечно же всё это опирается на его богатый опыт и собственное мнение.

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

Книга написана довольно интересно, но будет сложна для неподготовленного читателя. Однако лично для меня она показалась очень интересной, хотя частенько в ней встречается что-то уже давно знакомое. Однако плюс в том, что это знакомое рассказано иначе. И это отлично. Всем рекомендую.

Клеппман Мартин — Высоконагруженные приложения — 2018г

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

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

В целом впечатления очень положительные. Некоторые главы с удовольствием бы перечитал снова.

Фленов Михаил — PHP глазами хакера. 3-е изд. — 2016г

Когда я впервые увидел эту книгу, то посчитал её чем-то вроде продвинутого взгляда на язык PHP. Я думал в ней будут разбираться манипуляции с опкодами или нюансы интерпретатора, доступные для хакинга. Однако эта книга оказалась очень простой и безамбициозной.

И всё из-за того, что треть книги это рассказ о самом языке, причём про довольно простые вещи. Затем треть книги рассказывается про базовые уязвимости, фильтрации и т.п. А напоследок идёт некоторое растянутое заключение про всё, что написано выше.

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

Хант Эндрю, Томас Дэвид — Программист — прагматик. Путь от подмастерья к мастеру — 2007г

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

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

97 вещей, которые должен знать каждый программист — 2010г

Это не книга, а сборник различных статей. Однако читал я её как книгу и сделаю описание в том же ключе. 2010 год — это год перевода всех статей.

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

Йоханнес Яндер — Программирование без дураков — 2017г

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

Босуэл Дастин, Фаучер Тревор — Читаемый код или Программирование как искусство — 2012г

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

Бхаргава АдитьяГрокаем алгоритмы. Иллюстрированное пособие для программистов и любопытствующих — 2019г

Книга для тех, кто хочет разобраться или узнать несколько базовых и полезных алгоритмов, которые имеют широкое применение. Поэтому для программиста эта книга будет полезной. Тут вы узнаете про рекурсию, хэш-таблицы, деревья, графы и т.д. Плюс этой книги в том, что каждый алгоритм проиллюстрирован и довольно подробно описан на понятных примерах. Однако такой подход может представить эти алгоритмы в нехорошем виде. В том смысле, что примеры довольно надуманные и не передают реальной картины. А описание применения таких алгоритмов не показывают их реального назначения. Но всё написано довольно увлекательно и доходчиво. Если вы хотите окунуться в мир алгоритмов, то эта книга отлично вам подойдёт.

Локхарт Джош — Современный PHP. Новые возможности и передовой опыт — 2016г

Очень полезная книга для тех, кто хочет узнать максимум из основного минимума по PHP. В этой книге будет рассказано о взрослении языка, о его применении, о новых и полезных возможностях, а также о различных подходах, ресурсах, направлениях и т.д. Книга охватывает довольно большую часть тем, но сами эти темы короткие и преподносятся достаточно информативно. От этого книга получилась небольшой, но довольно емкой в плане охватываемых тем. А ещё я бы выделил раздел, где говорится о конкурирующей надстройке к языку, которую разрабатывают в Facebook (Hack). Поэтому очень рекомендую прочитать эту книгу, т.к. она ещё не потеряла своей актуальности.

Зандстра Мэтт — PHP Объекты, шаблоны и методики программирования — 2015г

Если посмотреть на эту книгу с точки зрения современных тенденций, то она выглядит несколько устаревшей. Часть информации выглядит бесполезной, другая часть уже где-то встречалась, а остальная часть слишком базовая. Но мне книга понравилась за рассказ об истории PHP и становление этого языка, как объектно-ориентированного. За достаточно подробный, но удобоваримый пример работы с шаблонами проектирования. За сторонний взгляд на некоторые технологии, которые были популярны буквально недавно. Я советую заранее просмотреть оглавление и выбрать нужные главы для чтения, потому что читать всю книгу не лучшая идея.

Фаулер Чед — Программист — фанатик — 2015г

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

Гамма Э. и др. — Приемы объектно-ориентированного проектирования. Паттерны проектирования — 2010г

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

Cracking the Coding Interview — 150 Programming Interview Questions and Solutions

Книга на английском. В ней идёт речь о том, как проходит отбор кандидатов в такие крупные компании как Google, Microsoft, Facebook, Yahoo и т.д. Даётся много советов, описываются многие этапы и разбирается множество задач, которые могут быть на каком-то из интервью. Для меня книга оказалась достаточно интересной и я узнал много нового. Однако задачи занимают две трети книги, поэтому прочитать её можно довольно быстро, если не разбираться с каждой задачей. Но тут уже каждому своё.

Савчук Игорь — Отъявленный программист. Лайфхакинг из первых рук — 2016г

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

Сонмез Джон — Путь программиста — 2016г

Эта книга об истории одного человека, который потом превратился в бизнесмена, а затем решил написать книгу с различными советами. Но это не значит, что книга плохая. Совершенно наоборот. Мне она попала в руки в нужное время и очень повлияла на моё отношение к моей работе. Некоторые главы специфичны. Типа правильного питания, регулярных тренировок и поддержания здорового духа. Но это всё правильно сочетается с общей темой. Большая часть книги о том, что нужно иметь план и придерживаться его. Если вы в поиске, то советую прочесть. Может дать ответы на ваши вопросы.

Мартин Роберт — Идеальный программист — 2012г

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

Мартин Роберт — Чистый код. Создание, анализ и рефакторинг — 2010г

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

Макконнелл Стив — Совершенный код. 2 изд.

Для многих эта книга это библия программиста. Она большая, объемная, содержит кучу полезной информации, и что самое главное, её можно перечитывать раз за разом. Открой любую главу, начни читать в любом месте, и сложно оторваться. Это редкий случай, когда в книге практически нет бесполезной информации. Я до сих пор помню некоторые кусочки практически наизусть. А это о чём-то да говорит. В общем всем к прочтению обязательно!