Привет!
Если мы находим человека с редкостным интеллектом, стоит узнать у него о книгах, которые он читает. Книга может определить характер и интеллект человека. Если вы программист, вы должны быть хорошим читателем, потому что это развивает ум, а ум - это ваше оружие. Вы должны тренировать его ежедневно.
Без хороших навыков чтения и понимания человек тратит больше времени на понимание проблемы перед ее решением.
Программирование - это искусство создания инновационных разработок в виде компьютерных программ для решения проблем, которые охватывают широкий спектр областей, начиная от классических математических головоломок и повседневных жизненных вопросов до прогнозирования погоды, поиска и понимания новых чудес космоса.
Итак, вот наша подборка из 10 лучших книг по программированию:
1 место - «Чистый код. Создание, анализ и рефакторинг», Роберт Мартин
Даже плохой программный код может работать. Однако если код не является «чистым», это всегда будет мешать развитию проекта и компании-разработчика, отнимая значительные ресурсы на его поддержку и «укрощение».
Эта книга посвящена хорошему программированию.
Она полна реальных примеров кода.
Мы будем рассматривать код с различных направлений: сверху вниз, снизу вверх и даже изнутри. Прочитав книгу, вы узнаете много нового о коде. Более того, вы научитесь отличать хороший код от плохого. Вы узнаете, как писать хороший код и как преобразовать плохой код в хороший.
Книга состоит из трёх частей. В первой части излагаются принципы, паттерны и приёмы написания чистого кода; приводится большой объём примеров кода.
Вторая часть состоит из практических сценариев нарастающей сложности. Каждый сценарий представляет собой упражнение по чистке кода или преобразованию проблемного кода в код с меньшим количеством проблем.
Третья часть книги — концентрированное выражение её сути. Она состоит из одной главы с перечнем эвристических правил и «запахов кода», собранных во время анализа. Эта часть представляет собой базу знаний, описывающую наш путь мышления в процессе чтения, написания и чистки кода.
2 место - «Рефакторинг. Улучшение существующего кода», Мартин Фаулер
Подход к улучшению структурной целостности и производительности существующих программ, называемый рефакторингом, получил развитие благодаря усилиям экспертов в области ООП, написавших эту книгу. Каждый шаг рефакторинга прост.
Это может быть перемещение поля из одного класса в другой, вынесение фрагмента кода из метода и превращение его в самостоятельный метод или даже перемещение кода по иерархии классов.
Каждый отдельный шаг может показаться элементарным, но совокупный эффект таких малых изменений в состоянии радикально улучшить проект или даже предотвратить распад плохо спроектированной программы.
Мартин Фаулер с соавторами пролили свет на процесс рефакторинга, описав принципы и лучшие приемы его осуществления, а также указав, где и когда следует начинать углубленное изучение кода с целью его улучшения.
Основу книги составляет подробный перечень более 70 методов рефакторинга, для каждого из которых описываются мотивация и техника испытанного на практике преобразования кода с примерами на Java.
Рассмотренные в книге методы позволяют поэтапно модифицировать код, внося каждый раз небольшие изменения, благодаря чему снижается риск, связанный с развитием проекта.
3 место - «Head First. Паттерны проектирования», Эрик Фримен, Элизабет Робсон
Больше 12 лет прошло с момента выхода первого издания книги, но она продолжает оставаться актуальной.
Основные идеи не изменились, но изменился язык Java, например появились лямбда-выражения. Поэтому авторы приняли решение обновить легендарную книгу и выпустить юбилейное издание.
В мире постоянно кто-то сталкивается с такими же проблемами программирования, которые возникают и у вас.
Многие разработчики решают совершенно идентичные задачи и находят похожие решения.
Если вы не хотите изобретать велосипед, используйте готовые шаблоны (паттерны) проектирования, работе с которыми посвящена эта книга.
Паттерны появились, потому что многие разработчики искали пути повышения гибкости и степени повторного использования своих программ. Найденные решения воплощены в краткой и легко применимой на практике форме.
Особенностью данного издания является уникальный способ подачи материала, выделяющий серию «Head First» издательства O’Reilly в ряду множества скучных книг, посвященных программированию. Книга будет интересна широкому кругу веб-разработчиков, от начинающих до профессионалов, желающих освоить работу с паттернами проектирования.
4 место - «Мифический человеко-месяц», Фредерик Брукс
Эта книга об управлении проектами в области разработки программного обеспечения.
Фактически книга Ф. Брукса представляет собой сборник очерков, в которых последовательно обсуждаются узловые проблемы разработки крупных программных проектов: повышение производительности труда программистов, организация коллективной работы, планирование и выполнение графика реализации.
Одной из главных тем книги стала идея, получившая впоследствии название «закон Брукса», о том что привнесение в проект новых сил на поздних стадиях разработки лишь отодвигает срок сдачи проекта.
5 место - «Идеальный программист. Как стать профессионалом разработки ПО», Роберт Мартин
Всех программистов, которые добиваются успеха в мире разработки ПО, отличает один общий признак: они больше всего заботятся о качестве создаваемого программного обеспечения.
Это — основа для них. Потому что они являются профессионалами своего дела.
В этой книге легендарный эксперт Роберт Мартин (более известный в сообществе как «Дядюшка Боб»), рассказывает о том, что значит «быть профессиональным программистом», описывая методы, инструменты и практики разработки «идеального ПО».
Книга насыщена практическими советами в отношении всех аспектов программирования: от оценки проекта и написания кода до рефакторинга и тестирования. Эта книга — больше, чем описание методов, она о профессиональном подходе к процессу разработки.
6 место - «Приемы объектно-ориентированного проектирования. Паттерны проектирования», Эрих Гамма, Джон Влисидис, Ричард Хелм, Ральф Джонсон
В предлагаемой книге описываются простые и изящные решения типичных задач, возникающих в объектно-ориентированном проектировании.
Паттерны появились потому, что многие разработчики искали пути повышения гибкости и степени повторного использования своих программ.
Найденные решения воплощены в краткой и легко применимой на практике форме.
Авторы излагают принципы использования паттернов проектирования и приводят их каталог.
Таким образом, книга одновременно решает две задачи. Во-первых, здесь демонстрируется роль паттернов в создании архитектуры сложных систем. Во-вторых, применяя содержащиеся в справочнике паттерны, проектировщик сможет с лёгкостью разрабатывать собственные приложения.
Издание предназначено как для профессиональных разработчиков, так и для программистов, осваивающих объектно-ориентированное проектирование.
7 место - «Карьера программиста», Г. Лакман Макдауэлл
Книга «Карьера программиста» основана на опыте практического участия автора во множестве собеседований, проводимых лучшими компаниями. Это квинтэссенция сотен интервью со множеством кандидатов, результат ответов на тысячи вопросов, задаваемых кандидатами и интервьюерами в ведущих мировых корпорациях.
Из тысяч возможных задач и вопросов в книгу были отобраны 189 наиболее интересных и значимых.
Шестое издание этого мирового бестселлера поможет вам наилучшим образом подготовиться к собеседованию при приеме на работу программистом или руководителем в крупную IT-организацию или перспективный стартап.
Основную часть книги составляют ответы на технические вопросы и задания, которые обычно получают соискатели на собеседовании в таких компаниях, как Google, Microsoft, Apple, Amazon и других.
Рассмотрены типичные ошибки, которые допускают кандидаты, а также эффективные методики подготовки к собеседованию. Используя материал этой книги, вы с лёгкостью подготовитесь к устройству на работу в Google, Microsoft или любую другую ведущую IT-компанию.
8 место - «Не заставляйте меня думать. Веб-юзабилити и здравый смысл», Стив Круг
Мобильные приложения и веб-сайты – визитные карточки компаний. От них в большой степени зависит, задержится пользователь или предпочтет провести время у конкурента.
В своей книге Стив Круг с примерами и иллюстрациями расскажет, как избежать ошибок и создать надежный сервис с пользой для клиента.
Вы получите практические советы, узнаете, как сделать сайт с нуля, и познакомитесь с основами веб-дизайна и юзабилити.
Книга будет полезна широкому кругу читателей: от начинающих дизайнеров до менеджеров, которые устали терять пользователей.
9 место - «Код. Тайный язык информатики», Чарльз Петцольд
Эта книга — азбука компьютерных технологий. Шаг за шагом автор знакомит читателя с сущностью кодирования информации, рассказывает об истории возникновения компьютеров, на практических примерах помогает освоить основные концепции информационных технологий, подробно излагает принципы работы процессора и других устройств компьютера.
Написанная живо, доступно, иногда иронично, книга богато иллюстрирована, состоит из 25 глав и предметного указателя.
Издание адресовано в первую очередь студентам вузов (как гуманитарных, так и технических), а также всем, кто интересуется принципами создания и работы компьютеров.
10 место - «Человеческий фактор. Успешные проекты и команды», Том Демарко, Тимоти Листер
Немногие книги о компьютерах оказали такое заметное влияние на управление разработкой программного обеспечения, как «Человеческий фактор».
Уникальное озарение этой книги, долгие годы сохранявшей своё положение в списке бестселлеров: самые сложные проблемы разработки ПО носят не технологический, а социальный характер. Эти человеческие проблемы решать не просто, однако, решив их, вы увеличите шансы на успех до верхнего предела.
В третьем издании появилось шесть новых глав и внесены многочисленные правки в основной текст, так что теперь книга лучше соответствует современным средам разработки и современным проблемам.
В частности, обсуждаются патологии лидерства, которые раньше за патологии не считались, эволюционирующая культура собраний, а ещё растущее понимание того, что некоторые наши инструменты служат скорее якорями, а не двигателями. Каждый, кому необходимо управлять проектом по разработке ПО или целой организацией такого рода, найдёт на страницах этой книги множество ценных советов.
До новых встреч!