IT-классика: Пять книг, которые стоит прочесть программисту

Несмотря на то, что в IT все меняется очень быстро, в отрасли есть литература, которая считается обязательной к прочтению. Мы опросили экспертов Газпромбанка, какие книги, по их мнению, входят в «классический набор» программиста.

IT-классика: Пять книг, которые стоит прочесть программисту

Про эту книгу Билл Гейтс сказал: «Если вы думаете, что вы хороший программист... прочтите книгу «Искусство программирования». И, пожалуйста, пришлите свое резюме если вы сумете дочитать ее до конца». Глобальный труд по теме computer science, состоящий в настоящее время из четырех томов (4 том делится на части A и B), к публикации готовится часть 4C. Книга была признана одной из 12 лучших физико-математических монографий столетия.

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

IT-классика: Пять книг, которые стоит прочесть программисту

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

«Процесс подготовки программ для цифрового компьютера – это очень увлекательное занятие. И дело не только в том, что оно оправдывает себя с экономической и научной точек зрения; оно может вызвать также эстетические переживания, подобные тем, которые испытывают творческие личности при написании музыки или стихов».

Эта книга есть в каждом списке рекомендуемых книг для разработчиков ПО. Можно назвать ее священной книгой для программистов. Автор объясняет, как отличить чистый код от плохого, и учит, как преобразовать его в хороший. Роберт Мартин, известный в сообществе как «дядюшка Боб», занимается разработкой ПО с 1970 года, а в начале девяностых стал международным консультантом в этой области. Один из создателей гибкой методологии разработки на базе экстремального программирования.

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

IT-классика: Пять книг, которые стоит прочесть программисту

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

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

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

Г. Лакман Макдауэлл — «Карьера программиста»

Cracking the Coding Interview, это практическое пособие для подготовки к техническому интервью. В настоящий момент доступно уже 6-е издание книги, которая занимает пятое место в списке бестселлеров Amazon в разделе Computer Technologies и первое место в разделе Software Development.

Основную часть книги составляют технические вопросы и задания, которые обычно получают соискатели на собеседовании в таких компаниях, как Google, Microsoft, Apple, Amazon. В 6-м издании содержится 189 вопросов, начиная от основ и заканчивая сложнейшими задачами по алгоритмам. Здесь также приводятся пять стратегий, которые позволят решить задачи, с которыми до этого не приходилось сталкиваться.

IT-классика: Пять книг, которые стоит прочесть программисту

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

И помните: собеседование будет сложным! В свое время (в период моей работы в Google) я видела многих интервьюеров, одни из них задавали «легкие» вопросы, а другие — «сложные». И знаете что? Простые вопросы вовсе не означали, что кандидату будет проще получить работу. Главное — не безупречные ответы на вопросы (такое бывает очень редко!). Главное, чтобы ваш ответ был лучше, чем у других кандидатов. И не паникуйте, если вам достался сложный вопрос, — те, кто его задают, знают, что вопрос сложен и не ждут от вас идеального ответа.

Стив Макконнелл — «Совершенный код»

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

IT-классика: Пять книг, которые стоит прочесть программисту

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

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

Еще одна классическая книга, которая научит улучшать код с помощью незначительных изменений — рефакторинга. Книга имеет практическую ценность, в ней есть каталог признаков «кода с душком», каталог рефакторингов (более 70 методов), и описание принципа работы системы модульного тестирования JUnit. Рассмотренные в книге методы позволяют поэтапно модифицировать код, внося каждый раз небольшие изменения, благодаря чему снижаются риски при работе с проектом.

IT-классика: Пять книг, которые стоит прочесть программисту

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

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

А какие книги, на ваш взгляд, должны быть в must read в списке программиста? На какие новинки стоит обратить внимание?

3434 показа
15K15K открытий
1 комментарий

рефакторинг кода на JavaScript

все примеры на Java

Ответить