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

Меня настолько заинтересовал вопрос о книгах, что я решил начать новую серию статей на своём сайте catonmat о моих топ-100 книгах о программировании, программном обеспечении, науке, физике, математике и компьютерах. В каждой статье я буду размещать по пять книг, ведь разбивать огромное задачи на маленькие подзадачи — это самый простой способ их решать (GTD — get things done).

Взгляните на мою книжную полку, чтобы убедиться, что я настоящий ботаник:

image

В первой статье серии я повторю те же пять книг, что я рекомендовал в моём интервью Fog Creek. Я думаю, что серия статей будет публиковаться долгое время, поэтому, если вам это интересно, вы можете подписаться на rss-канал моего блога или следить за моим творчеством на твиттере.

Достаточно разговоров. Переходим к книгам!



#1 Новый Омнибус Тьюринга

image

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

Автор: Александр K. Дюдни.

#2 Маленькая книга о Семафорах (бесплатный pdf)

image

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

Автор: Аллен Б. Дауни.

#3 Жемчужины программирования и Ещё больше жемчужин программирования.

  • image
  • image


Жемчужины программирования и Ещё больше жемчужин программирования.

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

Автор: Джон Бентли.

#4 Маленький комбинатор

image

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

Авторы: Дэниел П. Фридман и Матиас Фелайзен.

#5 Элементы стиля и Элементы стиля программирования

  • image
  • image


Элементы стиля и Элементы стиля программирования.

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

И как бонус, я рекомендую мою собственную книгу ‘Perl One-Liners’, опубликованную издательством No Starch Press. Моя книга учит тому, как быстро получать результаты с помощью командной строки на языке Perl. Быстрая работа с командной строкой сэкономит Вам тысячи часов на протяжении всей вашей карьеры. Как только Вы изучите one-liner’ы, вы начнете решать быстрые одноразовые задачи мгновенно. Я видел разработчиков, которые тратят часы на написание программ для задач, которые можно выполнить за 20 секунд с помощью one-liner’а. Не будьте такими разработчиками.

image

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

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


  1. XlebNick
    02.06.2015 08:06
    +1

    Спасибр, теперь есть что на пляже почитать, чтобы время не пропадало!


  1. ivanych
    02.06.2015 09:45

    Какие из этих книг переведены на русский язык?


    1. MacIn
      02.06.2015 17:16

      Так ли это важно? Большая часть литературы — на английском, с этим надо смириться.


      1. ivanych
        02.06.2015 17:20
        -5

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


        1. fshp
          03.06.2015 01:53
          -4

          Это означает лишь одно — нужно стремиться тоже зарплату в долларах получать.


      1. celen
        03.06.2015 04:34
        +2

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


        1. MacIn
          03.06.2015 16:43
          +2

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


  1. Terras
    02.06.2015 10:19
    -5

    Ребят, хочу изучить php — можно пару книжек или сайтов, с которых можно начать. Уровень? Эникейщик =)


    1. kal1sha Автор
      02.06.2015 10:24
      +3

      есть хороший сайт google.com там много книг


    1. KvanTTT
      02.06.2015 10:47
      +13

      Лучше изучайте что-нибудь другое)


      1. xsen
        02.06.2015 12:31
        -4

        Почему?


    1. kriptomen
      02.06.2015 10:49
      +9

      Только видео-курсы Попова, только хардкор.


    1. iflista
      02.06.2015 21:38
      +1

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


    1. ababo
      03.06.2015 10:25

      Лично вам рекомендую Haskell.


  1. VoidVolker
    02.06.2015 10:51

    «Кибернетика без математики», Шилейко, второе издание. Рекомендую.


  1. QtRoS
    02.06.2015 10:53
    -3

    Семаформах

    Are you serious?


    1. kal1sha Автор
      02.06.2015 11:05

      исправили


  1. Keroro
    02.06.2015 11:14

    Интересно, сколько времени займёт публикация всего списка из 100 книг…


    1. kal1sha Автор
      02.06.2015 11:17

      уже есть 3 части :)


  1. VGusev2007
    02.06.2015 12:00
    +1

    del


  1. dimview
    02.06.2015 17:01

    Полезность Strunk&White слегка преувеличена.


  1. fshp
    03.06.2015 01:59

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


    1. MacIn
      03.06.2015 02:07
      +1

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


      1. fshp
        03.06.2015 02:18
        +1

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