Подорожуй з gofrie.com

Must read books, my advise

Вирішив додати книжечку в Must Read:
Читається легко, щось схоже на Effective C++, але вже більш філософського маштабу:
This book

David Abrahams, Aleksey Gurtovoy. C++ Template Metaprogramming: Concepts, Tools, and Techniques from Boost and Beyond



«C++ Template Metaprogramming» sheds light on the most powerful idioms of today's C++, at long last delivering practical metaprogramming tools and techniques into the hands of the everyday programmer.
Since the introduction of templates, C++ programmers have discovered surprising and powerful ways to perform computation at compile-time. While the excitement generated by these capabilities among C++ experts has reached the community at large, their practical application remains out-of-reach for many programmers. Literature on C++ template metaprogramming has focused primarily on details of low-level «tricks» at the expense of strong idioms and abstractions, and without illuminating the path from metaprogramming to expressive interfaces and efficient, maintainable software.

This book delivers both «big picture» ideas and practical tools. It explains what metaprogramming is, why it matters, and how the unique combination of features in C++ make it an especially powerful language for metaprogramming. It also presents the Boost Metaprogramming Library, a powerful open source framework of high-level compile-time components based on familiar STL idioms, which makes C++ metaprogramming easy, expressive, and fun.

Бьярн Страуструп. Принципы и практика использования C++



Дана книга являє собою вступний курс програмування, написаний автором мови С++.

Автор книги вважає, що читачі зрештою почнуть писати нетривіальні програми або в якості професійних розробників програмного забезпечення, або в якості програмістів, які працюють в інших галузях науки і техніки. Основні концепції і методи програмування в книзі викладаються глибше, ніж це прийнято в традиційних вступних курсах. Це дозволить читачам розробляти корисні, правильні, зрозумілі і ефективні програми. Книга являє собою введення в програмування взагалі, включаючи об'єктно-орієнтоване і узагальнене програмування. Вона також являє собою прекрасне введення в мову С++, один з найбільш популярних мов програмування в сучасному світі. У книзі описані сучасні методи програмування на С++, включаючи стандартну бібліотеку, що дозволяє спростити програмування.

Книга призначена в основному для людей, які ніколи раніше не програмували. Вона випробувана більш ніж тисячею студентів університету. Проте досвідчені програмісти і студенти, вже вивчили основи програмування, також знайдуть в книзі багато корисної інформації, яка дозволить їм перейти на більш високий рівень майстерності.

Перша половина книги охоплює широкий спектр основних понять, методів проектування і програмування, властивостей мови С++ і його бібліотек. Це дозволить читачам писати програми, виконують введення і виведення даних, обчислення і побудова простих графічних зображень. У другій половині розглядаються більш спеціалізовані теми, такі як обробка тексту і тестування. У ній міститься багато довідкового матеріалу. Вихідні коди і інші додатки читачі можуть знайти на веб-сайті автора.

Брюс Эккель. Философия С++. Введение в стандартный С++



У книзі «Философия С++. Введение в стандартный С++» послідовно і методично викладаються питання використання об'єктно-орієнтованого підходу до створення програм. Автор не просто описує різні проблеми і способи їх вирішення, він розкриває перед читачем особливий спосіб мислення, не володіючи яким неможливо комфортно почувати себе в об'єктно-орієнтованої середовищі.

Це одна з тих книг, які обов'язково повинен прочитати кожен, хто всерйоз займається розробкою програмного забезпечення в C++.

Стенли Б. Липпман. Язык программирования C++. Вводный курс



Нинішнє (4-e) видання такого популярного вступного курсу стандартної мови C++ було повністю перероблено, реорганізовано і переписано так, щоб допомогти швидше і ефективніше навчитися програмувати на цій мові. У міру розвитку мови C++, автор намагається вносити в подальші видання відповідні зміни. Тепер стандартна бібліотека C++ описана з самого початку, що дозволяє читачеві відразу приступити до створення працездатних програм ще до вивчення подробиць мови.
Тут містяться корисні поради, які допоможуть полегшити створення програм, а також підвищити їх ефективність. Приклади, в яких використовуються можливості бібліотек, дозволяють продемонструвати переваги мови C++, а також найбільш ефективні прийоми його застосування. Як і в попередніх виданнях, тут обговорюються фундаментальні концепції і методи мови C++, що робить книгу найціннішим ресурсом навіть для досвідчених програмістів.

Варто зауважити, що 5-е видання вже є у продажу, щоправда поки що тільки англійською мовою.

Angelika Langer. Standard C++ IOStreams and Locales: Advanced Programmer's Guide and Reference



IOStreams та Locales є двома з найбільш важливих, довгоочікуваних стандартів ISO/ANSI C++ і це перша книга, в якій йдеться тільки про них і матеріал розкривається найбільш повно. Автори пояснюють, які задачі IOStreams та Locales можуть вирішити. Після цього, читачу представляється широкий спектр прикладів і методів — від простих до складних.
Автори наводять концепції, архітектуру компонентів і приклади практичного застосування паттернів.

Книга включає:

  • пояснення ключових відмінностей між стандартним IOStreams та нестандартними версіями, що йому передували;
  • як розширити Locales для ефективної локалізації

У книзі також наведено повний опис можливостей класів IOStreams.
Дана книга буде корисною не тільки професіоналам, оскільки може слугувати чудовим довідником.

Anthony Williams. C++ Concurrency in Action: Practical Multithreading



C++ Concurrency in Action: Practical Multithreading — це ваш путівник по новому стандарту C++11 для досвідчених програмістів С++, а також тих, хто ніколи не писав багатопотокового коду. Ця книга продемонструє вам, як правильно і ефективно писати надійні багатопотокові програми в C++, уникаючи при цьому багатьох поширених помилок.

У книжці ви знайдете:

  • Приклади з застосуванням найновішого стандарту C++11
  • Програмування для багатьох ядер та процессорів
  • Невеликі приклади для навчання, великі приклади для практичного застосування

Дэвид Вандевурд, Николай Джосаттис. Шаблоны C++. Справочник разработчика



Шаблони C++ є частиною мови програмування, що надає програмісту нові можливості швидкої розробки ефективних і надійних програм і повторного використання коду. Дана книга, написана у співавторстві теоретиком C++ і програмістом-практиком з великим досвідом, вдало поєднує строгість викладу і повноту висвітлення теми з питань практичного використання шаблонів. У книзі міститься маса різноманітного матеріалу, що стосується програмування з використанням шаблонів, в тому числі матеріали, що дозволять досвідченим програмістам подолати сучасні обмеження в цій області.

Книга передбачає наявність у читача досить глибоких знань мови C++, проте стиль викладу забезпечує доступність матеріалу як для кваліфікованих фахівців, так і для програмістів середнього рівня.

Герб Саттер. Новые сложные задачи на C++



Дана книга являє собою продовження книги "Решение сложных задач на C++". У формі задач і їх рішень розглядаються сучасні методи проектування і програмування на C++. У книзі сконцентрований багаторічний досвід програмування на C++ не тільки автора, а й усього співтовариства програмістів на C++, тому деякі рекомендації автора можуть здатися несподіваними навіть досвідченим програмістам-професіоналам. Автор розглядає і конкретні методики, прийоми і ідіоми програмування, однак основна тема книги — це стиль програмування, причому в найширшому розумінні цього слова. Особливу увагу у всіх завданнях книги приділено питанню проектування, яке має забезпечити максимальну надійність, безпеку, продуктивність і найбільш ефективний супровід створюваного програмного забезпечення.

Книга розрахована в першу чергу на професійних програмістів з глибокими знаннями мови, однак вона буде корисна будь-якому, хто захоче поглибити свої знання в даній області.

Эндрю Кениг, Барбара Му. Эффективное программирование на С++



Ця книга, в першу чергу, призначена для тих, кому хотілося б швидко навчитися писати повноцінні програми мовою C++. Найчастіше новачки в C++ намагаються освоїти мову чисто механічно, навіть не спробувавши дізнатися, як можна ефективно застосувати його до вирішення повсякденних проблем. Мета даної книги — саме навчити програмуванню на C++, а не просто викласти засоби мови, тому вона корисна не тільки для новачків, але і для тих, хто вже знайомий з C++ і хоче використовувати цю мову в більш натуральному, природному стилі.

Скотт Мэйерс. Эффективное использование STL



Скотт Мейерс — популярний письменник-програміст, автор широковідомої книги «Наиболее эффективное использование C++».

Книга «Эффективное использование STL» являє собою розширений посібниу з використання стандартної бібліотеки шаблонів (Standard Template Library) c докладними поясненнями багатьох практичних прийомів.

Автор висвітлює у своїй книзі такі важливі питання, як:

  • STL і стандарти
  • Термінологія STL
  • Використання різних контейнерів
  • Спеціальні можливості контейнерів Vector і String
  • асоціативні контейнери
  • ітератори
  • алгоритми
  • Функції, функтори і класи функцій
  • Програмування в STL

Матеріал книги містить безліч прикладів з докладними поясненнями і коментарями.

Прочитавши цю книгу, читач зможе засвоїти для себе основні принципи і тонкощі використання бібліотеки стандартних шаблонів STL.

Scott Meyers. Presentation Materials: Overview of the New C++ (C++11)



Даний посібник написаний Скотом Мейерсом, вельмишановним автором книжок з C++. Його можна придбати у електронному варіанті за $29.95.

Посібник містить матеріали презентацій з триденного навчального курсу Скотта з C++11, «найсвіжішої» версії C++. Цей технічний семінар інтенсивно впроваджує найважливіші нові можливості в C++11 і пояснює, як отримати максимальну віддачу від них.

Nicolai Josuttis. The C++ Standard Library



Стандартна бібліотека C++ надає набір загальних класів та інтерфейсів, які значно розширюють основну мову С++. Щоб повною мірою використати ці компоненти і отримати користь від їхньої функціональності вам потрібна книжка, в якій зазначено набагато більше, ніж список класів та їх функцій.

The C++ Standard Library: A Tutorial and Reference, Second Edition описує цю бібліотеку згідно з новим стандартом мови C++11. Книга являє собою всеосяжну документацію кожного компонента бібліотеки, у тому числі введення в його цілі і дизайн; чітко сформульовані пояснення складних понять; практичні аспекти програмування, необхідні для ефективного використання STL; «пастки» використання STL, точні сингатури і дефініції найбільш важливих класів і функцій; численні приклади програмного коду.

У книзі розглядається стандартна бібліотека шаблонів (STL), контейнери, ітератори, функціональні об'єкти та алгоритми STL.

Герб Саттер. Стандарты программирования на С++



Ця книга допоможе початківцю стати професіоналом, оскільки в ній представлений сконцентрований кращий досвід програмістів на C++, узагальнений двома експертами світового класу. Програмісти-початківці знайдуть в ній прості і зрозумілі рекомендації для щоденного використання, підкріплені прикладами їх конкретного застосування на практиці. Досвідчені програмісти знайдуть у ній поради та нові рекомендації, які можна відразу ж прийняти на озброєння. Програмісти-професіонали можуть використовувати цю книгу як основу для розробки власних стандартів кодування, як для себе особисто, так і для групи, якою вони керують.

Звичайно, книга розрахована в першу чергу на професійних програмістів з глибокими знаннями мови, однак вона буде корисна будь-якому, хто захоче поглибити свої знання в даній області.

Герб Саттер. Решение сложных задач на C++



У даному виданні об'єднані дві широко відомі професіоналам в області програмування на C++ книги Герба Саттера Exceptional C++ і More Exceptional C++, що входять у серію книг C++ In-Depth, редактором якої є Бьерн Страуструп, творець мови C++.

Матеріал цієї книги складають перероблені завдання серії Guru of the Week, розраховані на читача з досить глибоким знанням C++, проте книга буде корисна кожному, хто хоче поглибити свої знання в цій області.