Главная

7 книг для программистов

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

Поделиться:
 

7+

Можно сказать, что программирование в каком-то смысле является практикой креатива. Однажды я спросил у детей «Что такое креатив?» и они ответили : «Креатив — это создание чего-то из ничего».
Действительно, создание чего-то из ничего — это именно то, чем занимаются программисты. Дайте программисту компьютер с текстовым редактором и спустя какое-то время он может выдать вам автомобили с автоматическим управлением, интернет или виртуальную реальность.

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

Код: тайный язык информатики
Чарльз Петцольд

(с англ. Code: The Hidden Language of Computer Hardware and Software)

Эта книга не научит вас программировать точно так же, как и не расскажет вам о аспектах трудоустройства.

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

«Процессор компьютера делает простые вещи — он перемещает байт из памяти в регистр, добавляет байт в другой байт, перемещает результат обратно в память. Суть заключается в том, что эти операции происходят невероятно быстро. По словам Роберта Нойса, «после того, как вы смирились с наносекундой, компьютерные операции становятся простыми для вас».

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

Программист-прагматик
Эндрю Хант и Дейв Томас

(с англ. The Pragmatic Programmer)

В этой книге Эндрю Хант и Дейв Томас делятся с читателем рядом полезных советов по улучшению программ.
Эти советы в основном сосредоточены на принципе, согласно которому программирование по своей сути является командным видом деятельности. Если вы хотите работать программистом, большая часть кода, с которым вы будете работать, не будет вашей. Советы Ханта и Томаса лучше всего изучаются на практике. Когда вы берете книгу, старайтесь не спешить и обдумывать каждый совет.
Примеры:
Совет 11: DRY — Don’t Repeat Yourself. Не повторяйтесь!
Совет 30: Нельзя написать идеальный код.
Совет 50: Не используйте код, если вы не понимаете его.
Совет 70: Подписывайте свой код

Введение в алгоритмы
Томас Х. Кормен, Чарльз Лейзерсон, Рональд Л. Ривест и Клиффорд Стейн

(с англ. Introduction to Algorithms)

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

Искусство компьютерного программирования: Том 1
Дональд Э. Кнут
(с англ. The Art of Computer Programming: Volume 1)

Осилить «Искусство компьютерного программирования» — задача не из простых. Немногим удалось последовательно прочесть всю книгу. Еще меньше людей осилило первые главы с математикой.

Я не прочел весь том, но я не могу не порекомендовать эту книгу. Да, в книге есть свои нюансы — например, описывание компьютера MIX, но если не обращать на это внимания, книга даст вам невероятное понимание основных алгоритмов и структур данных.
Эта книга — настоящий вызов интеллекту и настойчивости, но она также является источником огромного количества информации.
Сам Билл Гейтс сказал: “Если ты осилишь эту книгу, отправь мне свое резюме”. Стоит попробовать, верно?

Карьера программиста
Gayle Laakmann McDowell

(с англ. Cracking the Coding Interview)

Ищете работу программиста? Эта книга для вас! Да и если не ищите, то она вам все равно подойдет 🙂
Хотя в книгах про алгоритмы и структуры данных очень много полезной информации, они мало чем связаны с реальными проблемами. В обеих книгах по алгоритмам, которые я назвал, есть множество упражнений для каждой представляемой ими концепции, но есть одна загвоздка: вы всегда знаете, какой инструмент нужно использовать в данном случае. В реальном мире такого нет. Вы сами должны определить, что следует использовать для решения задачи.После объяснения основных структур данных и алгоритмов, автор книги пишет о стандартных проблемах в программировании. Эти проблемы даны читателю в случайном порядке, что заставляет его(читателя) подумать, какую концепцию лучше применить.
Эта книга поможет вам улучшить навык решения проблем в контексте программирования, поэтому она очень важна, даже если вы не планируете искать работу в ближайшее время.

Мифический человеко-месяц
Фредерик П. Брукс младший
(c англ.The Mythical Man-Month)

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

Брукс утверждает: «Программирование, как хорошая кухня. Если вас заставляют ждать, то это для того, чтобы лучше обслуживать вас и доставлять вам удовольствие».

Это отличная книга для чтения!

Алгоритмы для жизни
Брайан Кристиан и Том Гриффитс

(c англ. Algorithms to Live By)

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

Надеюсь, статья была для вас полезной!
Спасибо!

7+