Книги по программированию, которые стоят того, чтобы их прочесть

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

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

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

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

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

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

Книги по программированию, которые стоят того, чтобы их прочесть

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

Книги по программированию, которые стоят того, чтобы их прочесть

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

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

Книги по программированию, которые стоят того, чтобы их прочесть

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

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

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

Книги по программированию, которые стоят того, чтобы их прочесть

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

Книги по программированию, которые стоят того, чтобы их прочесть

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

Книги по программированию, которые стоят того, чтобы их прочесть

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

Заключение

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

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

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

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

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

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

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

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

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

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

119119
55 комментариев

Этот материал не подходит для раздела геймдев, скорей выглядит как откровенная реклама.

9
Ответить

Комментарий недоступен

2
Ответить

Материал абсолютно подходит для геймдева и разработки в целом, просто твоя компетенция в данном вопросе очень низкая

Ответить

Статья, скорее, предназначена для тех, кто только начинает изучать программирование и еще не составил для себя четкой последовательности шагов обучения.Тогда что тут делает Рихтер, большая часть книги которого - объяснение, как это все работает, точно не книга для новичков. Книга вообще по сути про CLR, а не про C#
А вот "Effective Java" куда болелее полезна для новичков (пусть и не в геймдеве), хотя ТС считает, что
Предполагается, что вы уже знакомы с основными принципами и терминами.

Dependency Injection in .NETТуда же - зачем для новичков?)

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

Последнюю не читал, говорить не берусь

6
Ответить

Отдельно еще добавлю про Рихтера - книге уже 11 лет, и она не про .Net Core, потому она не совсем релевантна тому, как это сейчас работает.

Клеппман - 6 лет, и она была довольно про конкретные технологии, потому тоже потихонечку угасает актуальность.

Ответить

Тогда что тут делает Рихтер, большая часть книги которого - объяснение, как это все работает, точно не книга для новичков. Книга вообще по сути про CLR, а не про C#Именно по причине того, что новичку читать Рихтера будет немного затруднительно я и привел соответствующую последовательность, с которой он точно сможет осилить азы C# по этой книге.
Книга разбирает сам CLR по большей части в первой ее части, которую для начинающих я рекомендовал для начала пропустить.

Dependency Injection in .NET. Туда же - зачем для новичков?)К сожалению, очень часто наблюдал на практике, в особенности у новичков, проверяя их pull/merge request-ы, что они слишком плохо представляют себе то, как необходимо связывать объекты между собой, в особенности в том случае, когда у них нет возможности использовать встроенные в фреймворк DI-контейнеры.
Опять же схему прочтения данной книги я указал в самой статье.

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

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

1
Ответить

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

Ответить