Что читать разработчику C++
В этой подборке — не только классические рекомендации книг для C++ программистов. Обычно советуют издания про паттерны, развитие стандарта или успехи большой компании. Но за всем этим изобилием «экспертных советов» и best practices теряется одна простая мысль: язык программирования — это средство выражения мысли от одного разработчика другому, а также средство описания пользовательского API в самом широком смысле.
Повышая градус ответственности за миллисекунды алгоритмов или чистоту архитектуры, лиды ужимают значимость способов мышления. И никакие метрики производства не показывают шоры у самого синьерного синьера.
Первые 5 книг этой подборки — в меньшей степени про технику, в большей степени об осознанности деятельности C++ программистов любого уровня. Остальные — «золотой фонд» классической литературы для C++ разработчиков.
Привет, Хабр! Меня зовут Роман Маковский, я руководитель прикладной кроссплатформенной разработки в МойОфис. Работаю здесь почти восемь лет, и за это время поучаствовал в множестве проектов на различных малоизвестных платформах.
За время моей работы департамент увеличился в 10 раз, так что я успел пообщаться и обменяться знаниями с массой талантливых программистов. Такой опыт, в числе прочего, помог мне расширить кругозор в области профессиональной литературы. Часть изданий я открыл для себя самостоятельно, но с другими ознакомился именно с подачи коллег.
В одном из прошлых материалов нашего блога мы советовали главные книги для Golang-разработчиков. Сегодня же я поделюсь с вами рекомендациями литературы для C++ программистов — расскажу как о классических изданиях, так и довольно необычных (в контексте темы C++), но по-своему интересных и полезных книгах. Поехали!
М. Минский «Машина эмоций: здравое мышление, искусственный интеллект и будущее человеческого разума»
Узнать о книге.
В этой книге человеческий мозг представлен как определенный механизм, выполняющий заданные алгоритмы, а наши эмоции — как еще один способ мышления, включающийся для решения конкретных задач. Здесь собрано много занимательной информации про искусственный интеллект и достижения человечества в этой сфере. Книга располагает к тому, чтобы покопаться в себе, вникнуть в природу своих эмоций.
Достоинства:
Недостатки:
Д. Беккер «Меньше значит больше»
Узнать о книге.
Книга написана популярным блогером-миллионником. Беккер легко и доступно рассказывает, как мы захламляем свои шкафы, мысли и жизни, и как от всего этого аккуратно освободиться. Продвижение философии минимализма придется по душе многим читателям, ведь это одно из самых популярных направлений в наше время. Казалось бы, что нового можно сказать о минимализме? И так все понятно. Однако в этой книге каждый точно найдет что-то полезное для себя.
Достоинства:
каждый узнает в этой книге себя;
вдохновляет на очищение и расхламление;
много примеров из жизни.
Недостатки:
в начале кажется нудновато;
почти на каждой странице упоминается религия, это уводит от темы.
Б. Фрост «Атомарный дизайн»
Узнать о книге.
Атомарный дизайн — методология Брэда Фроста, в соответствии с которой интерфейс делится на простейшие компоненты. Суть метода в том, что дизайн начинает создаваться с мелких частиц, своего рода атомов — шрифта, полей, рамок и так далее. То есть начинаем строить интерфейс с мелочей и постепенно объединяем их в систему. Таким образом, получаем возможность использовать какие-то части дизайна повторно, а также комбинировать их или подвергать изменениям. Это универсальный подход: подавляющее большинство дизайнеров уже давно используют принципы «Атомарного дизайна». Правда, методики у всех разные, каждый вносит свои изменения и адаптирует под свой проект.
Книга написана в интересном стиле, все объясняется на простейших примерах, то есть формат подачи информации доступен для каждого. Да, много специфических терминов, но каждый из них расшифровывается, важные моменты выделяются тезисно, что помогает разложить все в голове по полочкам.
Достоинства:
Недостатки:
Голден Кришна «Хороший интефейс — невидимый интерфейс»
Узнать о книге.
Книга содержит интересные рассуждения автора об избавлении от графических интерфейсов там, где в них нет необходимости. Ранее Голден Кришна работал на должности ведущего дизайнера Samsung, сейчас он — сотрудник Google. На протяжении многих лет он продвигал идею интерфейсов без экрана, а в 2016 году его книга произвела фурор, и многие компании воспользовались этим методом.
После прочтения начинаешь смотреть на многое другими глазами, видеть больше в простых вещах, таких как мобильные приложения или, например, сайты. Книга будет интересна не только дизайнерам, но и просто любознательным людям. Читается легко — управиться можно за пару-тройку вечеров.
Достоинства:
Недостатки:
Э. Юдковский «Гарри Поттер и методы рационального мышления»
Узнать о книге.
Книга Юдковского объединяет несколько жанров: здесь и научпоп, и художественное повествование. Если вы зачитывались оригиналом, то это издание вам определенно понравится. Тот же Гарри, но в совершенно других обстоятельствах, совсем другая линия сюжета. Здесь все логичнее и рациональнее, многие герои выступают как более сформированные личности, нежели в оригинальном романе. Книга затрагивает такие темы, как теория вероятности, когнитивное искажение, проблема предотвращения глобальных катастроф. Существует миллион противоречивых отзывов об этом издании, поэтому лучше прочитать его самому и составить собственное мнение.
Достоинства:
даже после прочтения оригинала эта книга не выглядит подделкой;
тонкий юмор автора.
Недостатки:
Элизабет Халл, Кен Джексон, Джереми Дик «Инженерия требований»
Узнать о книге.
Эту книгу можно назвать библией специалистов по инженерии, ведь требования — неотъемлемая часть любого процесса разработки программных и аппаратных систем. Издание поможет каждому читателю понять основные принципы современной инженерии требований.
Основы, изложенные в книге, будут полезны и студентам, которые только начинают познавать эту быстро растущую и развивающуюся ветвь в инженерной деятельности.
Здесь собрана исключительно научная информация: авторы объясняют роль системной инженерии в решении задач по созданию систем, описывают язык UML2, рассказывают об изучении связи между требованиями и моделированием и раскрывают много других важных моментов.
Достоинства:
много информации по конкретной теме, без воды;
понятный язык изложения.
Недостатки:
Бьерн Страуструп «Дизайн и эволюция С++»
Узнать о книге.
Эта книга написана создателем языка программирования С++ Бьерпом Страуструпом. Она позволяет углубиться в историю создания С++, понять, почему он создан именно таким, какие изменения и поправки в него вносились. Вы можете узнать конкретнее о каждом языковом средстве, автор подробно анализирует моменты добавления в язык исключений, шаблонов, виртуальных функций и так далее.
Издание может стать настольным для всех программистов, которые ежедневно используют С++ в своей деятельности, а также послужить источником важной информации для студентов, обучающихся программированию. Написана понятным языком, сформирована разделами: достаточно просто отыскать необходимую информацию.
Достоинства:
Недостатки:
Джон Оустерхаут «Философия дизайна программного обеспечения»
Узнать о книге.
Эта книга идеально подходит тем, кто только начинает профессионально заниматься программированием либо заканчивает обучение в университете. У автора очень четкое понимание того, как проектировать программное обеспечение и как облегчить программные проекты, адаптировать их под себя. Оустерхаут рассказывает про то, как решить проблему сложности программного обеспечения при помощи простого дизайна, это помогает передать и четко изложенная документация.
Здесь изложены идеи высокого уровня и примеры того, как применить их в ежедневной работе. Некоторые концепции уже встречались в другой литературе, о многом вы уже могли слышать от кого-то, но отдельные моменты обязательно вас заинтересуют. Например, концепция глубоких и поверхностных модулей, тактическое и стратегическое программирование и многие другие интересные вещи.
в книге 170 страниц, а краткость — сестра таланта;
есть действительно стоящие советы.
Недостатки:
В следующих материалах блога мы продолжим делиться с Хабром рекомендациями книг и других полезных материалов для разработчиков, а также публиковать подробные статьи с экспертизой наших специалистов. Подписывайтесь на блог МойОфис и следите за нашими новостями!