Пять книг, проверенных временем

18 сентября
Олег Меринов, Senior NET Developer DataArt
Пять книг, проверенных временем
Олег Меринов, Senior NET Developer DataArt, рассказал о книгах, которые обязательно стоит прочитать любому начинающему программисту.

1. Brian Kernighan, Dennis Ritchie. The C Programming Language.

Вы не программируете на Си? Ну и что! Эта книга, изданная в 1978 году, содержит идеи, которые до сих пор не потеряли актуальности. Если вы только начинаете заниматься программированием, то, прочитав ее, неплохо укрепите фундамент своей карьеры.

2. Alfred Aho, John Hopcroft, Jeffrey Ullman. Data Structures and Algorithms.

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

3. Andrew Hunt, David Thomas. The Pragmatic Programmer: From Journeyman to Master.

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

4. Erich Gamma, Richard Helm, Ralph Johnson, John Vlissides. Design Patterns: Elements of Reusable Object-Oriented Software.

«Банда четырех» написала одну из священных книг ООП-программистов. Наверное, одно из самых полных собраний паттернов проектирования программного продукта и программных компонентов на объектно-ориентированных языках программирования. Схемы и примеры наглядно показывают как и когда применять тот или иной паттерн. Авторы также рассматривают достоинства и недостатки каждого из них. Используя изложенный в книге опыт, можно спроектировать систему или компонент, удобный для расширения и поддержки, а также быстро разобраться в уже готовых платформах, так как многие из них используют паттерны, описанные в тексте.

5. Steve McConnell. Code Complete: A Practical Handbook of Software Construction.

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

Бонус

Martin Fowler. Patterns of Enterprise Application Architecture.

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