Привет, Хабр! Сегодня хотим представить подборку книг, которые было бы полезно прочитать любому программисту. Многие из них, вероятно, вами уже прочитаны, но если нет, рекомендуем ознакомиться. В подборке 7 книг — конечно, это субъективный выбор. Но если у вас есть любимые книги по разработке, которые вы можете рекомендовать, расскажите о них в комментариях, пожалуйста.

Карьера программиста. 6-е издание (2023)

Автор: Гейл Лакман Макдауэлл

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

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

Издание подходит и новичкам, и опытным разработчикам, у которых не слишком большое количество собеседований на карьерном пути. Такое бывает частенько, так что не пропустите «Карьеру программиста».

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

Автор: Адитья Бхаргава

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

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

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

 Современный подход к программной архитектуре

 Авторы: Нил Форд, Марк Ричардс

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

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

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

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

Автор: Роберт Мартин

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

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

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

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

Паттерны проектирования API

 Автор: Джей Гивакс

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

Книга пригодится широкому кругу читателей, рассчитана она, скажем так, на подготовленного новичка.

Математические алгоритмы для программистов

Автор: Пол Орланд

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

Во-первых, это методы линейной алгебры для проведения матричных вычислений.

Во-вторых, методы исчисления для простого физического моделирования.

В-третьих, раскрытие основ алгоритмов, которые применяются в машинном обучении.

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

Современная программная инженерия. ПО в эпоху эджайла и непрерывного развёртывания

Автор: Дэвид Фарли

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

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

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

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

Комментарии (12)


  1. GospodinKolhoznik
    04.08.2023 10:14
    +2

    SICP все ещё рулит. Хотя курс же родом из 80х (в ютубчике есть видеокурс от авторов, записанный в те времена, и там они используют олд-скульные ЭВМ!). Вроде как совсем уж древность ископаемая. Но я от многих молодых и реально талантливых ребят слышал мнение, что ничего лучше SICP они не читали. После дяди Боба появляется знание, как выстраивать архитектуру. После SICP это знание превращается в понимание на уровне чутья.


    1. sshikov
      04.08.2023 10:14

      ничего лучше SICP они не читали

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


      Причем даже не обязательно всем этим на практике пользоваться, в конкретном проекте. Но иметь понимание, что мир не ограничен одним языком, одной ОС, одной парадигмой программирования — это всегда полезно.


      1. dream_designer
        04.08.2023 10:14

        Ну это наверное перебор

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


        1. sshikov
          04.08.2023 10:14

          не могу придумать ничего лучше.

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


          Если что, я этот (именно старый) курс тоже читал, но на меня он не произвел особого впечатления. Вероятно потому, что в тот момент я уже почти все изложенное уже знал, так как был опытным программистом.


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


          1. dream_designer
            04.08.2023 10:14

            Ну допустим, что вы не читали ничего лучше.

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


            1. sshikov
              04.08.2023 10:14

              Так я не знаю ваш уровень, ваши интересы в конце концов. Об этом в общем-то и речь. Я просто тоже без всякого сарказма не могу припомнить какую-то одну книгу, которая перевернула бы мои представления. Ну то есть, люди все разные. То что на меня когда-то в конкретные моменты производило впечатление (ну так, просто для примера, пусть будет что-то от Тома ДеМарко и Тимоти Листера), вполне возможно вам просто не интересно, здесь и сейчас. А мне в тот момент зашло, потому что нужно было управлять проектом и командой. При этом сейчас уже и не зайдет, потому что и многое узнал с тех пор, и задачи другие, и от управления отошел, смог себе позволить расти в другую сторону.


              1. dream_designer
                04.08.2023 10:14
                +1

                Понял вашу позицию, вы в принципе ее озвучили выше. Просто изначальный посыл автора был "рекомендовать любому программисту". Если совсем строго, то конечно такой книги просто не существует, SICP лишь *лично мне* кажется одной из *наиболее близких* к такой книге. Так-то по любой отдельной теме можно найти книги получше-поглубже, а если брать не любого абстрактного программиста, а конкретного в конкретной ситуации, то, конечно, здесь и сейчас для него всегда найдется более подходящая книга.


      1. dididididi
        04.08.2023 10:14

        Угу. А потом он захочет её попробовать на проекте и проект превратить в лютую дичь.


        1. sshikov
          04.08.2023 10:14

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


          Я это к тому, что никогда не знаешь, что может превратить проект в эту самую дичь.


  1. saipr
    04.08.2023 10:14
    -1

    В свое время я учился по книгам Лебедева В. Н. и Соколова А. П.

    Я мог бы рекомендовать следующую кнмгу:

    Соколов А., Системы программирования. Теория, методы, алгоритмы

    Финансы и статистика, 2004 г., 320 стр.

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


    1. dididididi
      04.08.2023 10:14
      +4

      Блииин!!!! Вот нафига это реактщику или айоснику? Какой-то старпер в погонах без опыта промышленного програмирования(преподаватель) чему то учит, где нет ни одного знакомого слова. . Вот нафига? Я думаю эта книга бесполезна чуть более чем полностью, для 99% программистов.

      Вот реально погоны синоним тупости.


  1. dididididi
    04.08.2023 10:14
    -1

    Зачем JS-реактщикам и Java крудошлепам всё эти алгоритмы?