Какую литературу стоит прочитать программисту, чтобы стать более квалифицированным специалистом и превратиться из кодера в инженера.
Роберт Мартин «Идеальный программист. Как стать профессионалом разработки ПО»
Одна из самых недорогих и доступных книг по программированию. При этом нельзя сказать, что она охватывает какие-то конкретные или, наоборот, слишком общие темы.
Книга полностью построена на личном опыте ее автора. Роберт Мартин, известный разработчик, решил перенести все свои знания на бумагу, поделившись богатым опытом со всеми, кто не равнодушен к программированию и хочет чего-то в этой сфере достичь.
Эта работа может быть полезна новичкам, потому что Мартин делает акцент именно на высоком качестве и дает недвусмысленные намеки на то, как правильно делать ПО.
Более продвинутым разработчикам она вряд ли понравится, потому что в книге много банальных прописных истин – серьезной пользы профессионалам она не принесет.
Взяться за «Идеального программиста» стоит как минимум по двум причинам:
-
Книга стоит недорого и доступна на любой площадке на ваш вкус (есть на ЛитРес).
-
Книгу советуют почти все профильные издания, программисты-самоучки и даже школы, например Хэкслет (а они уж точно не последние люди на этом рынке).
Чарльз Петцольд «Код. Тайный язык информатики»
Любому разработчику, независимо от выбранного им языка программирования, стека технологий и направления развития, важно знать основы. Кажется, что знания о том, как устроен компьютер и работают различные подсистемы, не нужны, но это не так. Чтобы показывать профессиональный рост, необходимо более досконально изучить эту сферу.
Код за авторством Петцольда – это интересный и очень захватывающий экскурс в историю компьютеров. Эта книга рассказывает о том, как работают компьютеры, как они появились, какие базовые механизмы лежат в их основе и т.п. После прочтения «Тайного языка информатики» вы будете крайне удивлены тем, насколько базовые вещи лежат в основе столь сложных и трудно постижимых технологий.
Ну и конечно же, сами начнете гораздо лучше понимать устройство машин, которыми пользуетесь. Причем это касается даже тех читателей, кто ни разу и не притрагивался к подобной литературе и знает о компьютерах примерно ничего.
Книгу можно найти в Читай-Городе и Лабиринте примерно за 1500 рублей.
Харольд Абельсон, Джеральд Сассман «Структура и интерпретация компьютерных программ (SICP)»
У этой книги длинная и богатая история, ведь первое ее издание вышло аж в 1985 году и было предназначено для студентов-программистов, изучающих язык Scheme.
Некоторые новички в области разработки, когда слышат дату издания этой книги, сильно удивляются, ведь современные технологии требуют актуализации информации, но программирование – это та самая сфера, основы которой были заложены десятилетия назад и мало изменились с того времени.
Книга подробно рассказывает о ключевых концепциях разработки приложений, включая такие явления, как рекурсия, абстракция и другие значимые аспекты. Помимо теоретической составляющей, в книге есть большой список практических заданий. Их выполнение может значительно усовершенствовать навыки программирования.
В общем, отличное чтиво для тех, кто хочет немного изменить ход мысли и стать более эффективным разработчиком, понимающим принципы работы алгоритмов.
Книгу довольно тяжело найти. Мне удалось заметить одну только на Яндекс.Маркете за 1550 рублей. На Озоне и в профильных магазинах ее не оказалось.
Адитья Бхаргава «Грокаем алгоритмы. Иллюстрированное пособие для программистов и любопытствующих»
Пожалуй, это одна из самых популярных книг для начинающих разработчиков. Адитья Бхаргава постарался в простой манере изложить базовые аспекты алгоритмического мышления и на крайне простых примерах рассказал о том, как строятся распространенные алгоритмы.
Прелесть книги заключается в том, что ее легко понять. Автор показывает не просто «голые» экземпляры кода и рассуждает о математике, а рассказывает, как полученные знания могут быть применены на практике. Весь код, представленный в книге, написан на Python, но будет понятен и тем, кто пишет на условном JavaScript (все концепции зачастую довольно примитивные).
Почему эту книгу стоит прочитать? Наверное, потому что она позволяет быстро «окунуться» в основные концепции программирования и базовые понятия (такие, как О-большое, например). Вы будете удивлены, но на собеседованиях джуниор-разработчиков часто «гоняют» по вопросам, ответы на которые даются уже в начале книги.
Книга есть на Озоне и продается там примерно за 800 рублей.
Мартин Фаулер «Рефакторинг. Улучшение проекта существующего кода»
Если обратиться к аннотации этой книги, то становится понятно, что создавалась она для опытных программистов, страдающих от огромного количества неэффективного кода, который пишут начинающие разработчики.
Мартин Фаулер, программист со стажем и автор книги, в деталях рассказывает о том, как можно превратить даже плохо спроектированный и низкопроизводительный код в высокоэффективное, безопасное и удобное с точки зрения поддержки приложение. Естественно, на удачно подобранных и с ходу понятных примерах. А среди методик есть как простые (в духе перемещения полей из одного класса в другой), так и более сложные (по типу замены действующих алгоритмов на менее ресурсозатратные).
В качестве языка программирования для примеров тут используется Java, но демонстрируемые концепции применимы для любого объектно-ориентированного языка.
Что важно, Фаулер рассказывает о рефакторинге максимально корректно, то есть как о большом наборе мелких процедур и корректировок, которые в итоге имеют накопительный эффект и разительно сказываются на качестве кода.
Книга есть на Лабиринте, но стоит недешево. Мне сервис показал цену в районе 4000 рублей.
Стив Макконелл «Совершенный код»
Многие разработчики различных уровней считают «Совершенный код» Стива Макконелла чуть ли не одним из ключевых пособий по программированию. Это отличные практические инструкции по созданию эффективных алгоритмов.
Книга переиздавалась и была значительно усовершенствована. Последнее издание включает в себя актуальную информацию о новых технологиях и радикальных переменах в мире разработки.
Главное преимущество этой работы над остальными – крайне удачный синтез общепринятой теоретической базы, которой «кормят» студентов-разработчиков в вузах разных стран, и практических примеров коммерческой разработки, которые были опробованы автором «Совершенного кода» на собственной шкуре.
Стив Макконнелл ставил своей целью взбудоражить мышление разработчика, заставить программиста что-то переосмыслить и найти для себя решение независимо от того, какие технологии он использует и над каким проектом работает.
«Совершенный код» есть на Лабиринте и стоит около 1600 рублей со скидкой.
Надежда Поликарпова, Анатолий Шалыто «Автоматное программирование»
Это учебное пособие подробно рассказывает о теории автоматов и ее применении в ходе разработки программных продуктов. Сама теория является разделом дискретной математики. Ее изучают в ходе отдельных курсов и применяют при создании различного программного обеспечения.
В основе теории лежат конечные автоматы – то есть удобные модели представления процессов, обладающих явными состояниями. Модель автоматного программирования четко сопряжена с соответствующими шаблонами проектирования.
Важно, что в книге не просто рассматривается теоретическая база – большой акцент делается на том, как автоматическое программирование помогает создавать устойчивое программное обеспечение с учетом всех этапов его жизненного цикла.
Автоматное программирование – это книга для более опытных разработчиков и студентов, желающих глубоко изучить конкретную теорию разработки и понять, как именно в ней развиться и стать профессионалом.
Книгу можно найти в бесплатном доступе. По крайней мере, она висит на первой странице в Google, и он ее до сих пор не заблокировал. Но если все же считаете, что нужно за это пособие заплатить, то добро пожаловать на ЛитРес или Озон – там цифровая копия пособия стоит от 58 рублей.
Эрик Фримен, Элизабет Робсон «Паттерны проектирования»
Паттерны проектирования – одна из важнейших глав в образовании программистов. Ведь благодаря им можно сэкономить кучу времени, не изобретая одни и те же подходы к разработке ПО, а сделав несколько уверенных шагов в изучение уже готовых «планов» по созданию ПО и их применение в работе. Сами паттерны (то есть шаблоны) были изобретены программистами, чтобы быстро создавать гибкие, оптимизированные и эффективные приложения.
Книга «Паттерны проектирования» подробно рассказывает нам о том, как шаблоны разработки можно применять на практике и какую пользу на самом деле они приносят. Книга довольно массивная и содержит большой объем данных. Но подача довольно простая и читать ее несложно, даже если вы не особо опытный программист.
Нельзя не заметить, что книга является бестселлером, она регулярно попадает в список книг, которые обязательно должен прочитать каждый, кто связан с программированием.
К сожалению, я не нашел, где можно купить эту книгу или хотя бы легально получить цифровую копию. Ну а о пиратских источниках тактично умолчу.
Александр Швец «Погружение в паттерны проектирования»
Есть замечательный ресурс refactoring.guru, рассказывающий много интересного о программировании. Многие аспекты разработки не поднимаются при обучении студентов в школах программирования и уж тем более редко затрагиваются самоучками.
Здесь есть великолепная коллекция примеров разных паттернов проектирования и методов рефакторинга,а информация о них предоставляется бесплатно. Но есть еще и книга «Погружение в паттерны проектирование». Это цифровое издание, в котором подробно рассказывается о 22 классических паттернах и основных принципах проектирования.
Мало того, что книга дает много полезной теоретической информации, она еще и шикарно структурирована. Каждая глава рассказывает не просто о паттернах, а о проблеме, которую они решают. То есть вы будете понимать, что мешает программисту закончить его работу и как он может использовать паттерны проектирования, чтобы устранить все помехи. В книге много примеров кода, так что вы сможете увидеть, как реализуются паттерны на TypeScript, Java, Go и других популярных объектных языках.
Книга доступна на официальном сайте refatoring.guru и сейчас стоит 500 рублей со скидкой.
Роберт Мартин «Чистый код. Создание, анализ и рефакторинг»
Классическое издание, которое часто рекомендовали в прошлом, но его значимость и актуальность все чаще ставят под сомнение.
Если вы не знакомы с понятием рефакторинга или не знаете, какие методики применять, чтобы улучшить свой код и сделать его более простым с точки зрения поддержки и дальнейшего развития, то эта книга для вас.
«Чистый код» обобщенно рассказывает о программировании, постепенно двигая читателя к ознакомлению с набором эвристических правил и так называемых запахов кода.
Вместо заключения
Описанные книги не сделают из вас идеального разработчика, но ознакомление с ними однозначно позитивно скажется на том, как вы пишите код, как понимаете алгоритмы, как строите программные продукты, задействуете паттерны, используете теорию автоматов и другие базовые методики создания эффективных и надежных приложений. Да и в целом узнаете много нового и действительно интересного. Приятного чтения!
Комментарии
- Теоретический минимум по Computer Science | Фило Владстон Феррейра
- Гид по Computer Science для каждого программиста | Спрингер Вильям
- Экстремальное программирование. Разработка через тестирование | Кент Бек