[Перевод] Мой топ-100 книг по Программированию, Компьютерам и Науке: часть 1

Недавно сайт 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

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

© Habrahabr.ru