Значимые книги по программированию, которые стоит изучить

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

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

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

Мои основные языки программирования – это C# и Java, поэтому речь пойдет о них, но будут также и независимые от языка примеры.

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

Итак, поехали.

Jeffrey Richter — CLR via C#

Значимые книги по программированию, которые стоит изучить

Если вы выбрали C# в качестве основного языка программирования, то, пожалуй, лучше книги, чем «CLR via C#» вам не найти. Этот многостраничный труд содержит в себе детальную информацию о типах данных, примитивах, методах, интерфейсах и прочем, и прочем. Читать эту книгу советую следующим образом: пропустите для начала первую ее часть с основами CLR, где описывается процесс сборки приложения (к ней вы вернетесь, когда освоите все остальное) и переходите к основам типов. Читайте все до делегатов. Так вы сможете изучить всю основную информацию касающуюся C#, не затрагивая довольно специфические темы, которые на текущем этапе вам точно ни к чему.

Joshua Bloch — Effective Java

Книга пусть и имеет в своем названии язык программирования Java, однако включает в себя уйму полезной информации, которая пригодится и для других объектно-ориентированных языков. Здесь вы ознакомитесь с хорошими техниками и правилами, которые стоит применять вне зависимости от того, на каком языке вы пишите.

Книга воспринимается довольно легко, но при этом стоит учитывать, что по сравнению с первой книгой («CLR via C#») здесь приведено намного меньше объяснений. Предполагается, что вы уже знакомы с основными принципами и терминами.

Mark Seemann — Dependency Injection in .NET

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

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

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

Robert Sedgewick — Algorithms

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

Martin Kleppmann — Designing Data-Intensive Applications: The Big Ideas Behind Reliable, Scalable, and Maintainable Systems

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

Christian Cachin, Rachid Guerraoui, Luís Rodrigues — Introduction to Reliable and Secure Distributed Programming

С ростом вашего навыка придет и необходимость понимания работы приложения в распределенном режиме. Книга написана простым языком о сложных вещах. Здесь вы узнаете о том, зачем приложениям в целом нужен распределенный режим и о таких понятиях как shared memory и consensus.

Заключение

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

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

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

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

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

Огромных вам успехов в изучении этого объемного, но в то же время интересного процесса – программирования!

О своих проектах

  • Логическая головоломка с числами TraitorousNumber
  • Книга в жанре фэнтези под названием «Эликсир»

Буду признателен за ваши подписки, отзывы и оценки на соответствующих страницах ЛитРес, а также на странице игры TraitorousNumber в Google Play.

Спасибо за внимание!

Ссылка на мой сайт

#gamedev #programming #опыт.

 

Источник

Значимые, изучить, книги, которые, ПО, программированию, стоит

Читайте также