В процессе построения учебной программы наших образовательных проектов мы составили список специализированных книг, рекомендованных к изучению по каждой из дисциплин, — всего более 100 наименований на весь период обучения. Не станем таить и представим вам этот список, сопроводив краткими комментариями. Уместить такой объем информации в рамках одной статьи затруднительно, поэтому обзор рекомендованной Технопарком литературы разбит на четыре части — по числу семестров, с небольшой добавкой полезных книг, предложенных студентами. Ссылки в комментариях на дополнительное интересное чтиво только приветствуются.
Первый семестр призван «выровнять» знания студентов. Он содержит такие дисциплины, как алгоритмы и структуры данных, программирование на C++, а также обзорный курс по веб-технологиям. С книг по этим предметам и начнется обзор. Большая часть представленных книг относится к нестареющей «классике», являющейся собранием основополагающих концепций.
Веб-технологии
Книга: «Компьютерные сети»
Авторы: Виктор Олифер, Наталия Олифер
Виктор и Наталья совместно создали и разработали более 22 учебных курсов, в течение многих лет вели курс лекций в МИРЭА, МГТУ им. Н.Э. Баумана, а также в Центре информационных технологий.
Книга «Компьютерные сети. Принципы, технологии и протоколы» рекомендована Министерством образования РФ. Издание подойдет для тех, кто хотел бы получить базовые знания о принципах построения компьютерных сетей, понять особенности традиционных и перспективных технологий локальных и глобальных сетей, изучить способы создания крупных составных сетей и управления ими.
Книга: «DNS and BIND»
Авторы: Крикет Ли, Пол Альбитц
Крикет Ли — выпускник Калифорнийского университета в Беркли. После учебы он устроился в Hewlett-Packard, где проработал девять лет. В 1997 г. покинул HP и основал компанию Acme Byte & Wire, осуществляющую консультации и обучение в области DNS. На протяжении одного года Крикет работал директором по DNS-продуктам в Verisign Global Registry Services. В марте 2003 г. перешел в компанию Infoblox, создающую DNS- и DCHP-устройства, где занял пост вице-президента.
Пол Альбитц получил степень бакалавра наук в университете Висконсина и магистра наук в университете Пердью. Работал в Hewlett-Packard над версиями BIND для системы HP-UX версий 7.0 и 8.0. Он создал инструменты, используемые для управления доменом hp.com.
Книга «DNS and BIND» — словно Библия для системных администраторов. Материал в ней подается простым, доступным языком. Издание посвящено BIND 9.3.2 и BIND 8.4.7. BIND 9.3.2 включает усовершенствования безопасности и поддержки IPv6, а также ENUM, SPF, и использование доменных имен, содержащих буквы национальных алфавитов.
Здесь вы найдете всю необходимую информацию о принципах работы DNS, о структуре пространства доменных имен, об установке и настройке серверов имен, о программировании при помощи функций библиотеки DNS-клиента и о многом-многом другом.
Книга: «SQL для простых смертных»
Автор: Мартин Грабер
Писатель, учитель и консультант Мартин Грабер несколько десятилетий назад создал полное введение в структурированный язык запросов, благодаря которому до сих пор можно легко научиться работать с SQL. «SQL для простых смертных» — руководство для любой реализации языка структурированных запросов, в котором приводится справочник по стандартному SQL, а также имеется описание общих свойств нестандартного SQL.
Книга поможет повысить эффективность работы с составными таблицами данных за счет использования развитой техники одновременных запросов к нескольким таблицам, формирования подзапросов и сложных запросов. С помощью этого издания можно получить практические навыки управления реляционными базами данных.
Книга: «Основы реляционных баз данных»
Авторы: Дженнифер Уидом, Джеффри Д. Ульман
Дженнифер Уидом — доцент факультетов информатики и электротехники Стэнфордского университета, активный участник исследований в области гетерогенных и полуструктурированных баз данных (БД), методов хранения данных и активных систем БД.
Джеффри Д. Ульман — профессор Стэнфордского университета, один из основателей теории баз данных. Выступил научным руководителем целого поколения аспирантов, ставших впоследствии ведущими исследователями теории баз данных. Его учебники по компиляторам, теории вычислений и базам данных считаются образовательным стандартом.
Книга «Основы реляционных баз данных» будет полезна всем, кто изучает базы данных. В ней рассмотрены стандарты SQL2, SQL3, ODMG, ODL/OQL, традиционный метод проектирования баз данных, а также анализируется множество аспектов программирования на языке SQL.
Доступным языком объясняются вопросы пользовательских представлений, ограничений целостности, триггеров, транзакций, информационной защиты и рекурсии в SQL3.
Книга: «jQuery. Подробное руководство по продвинутому JavaScript»
Авторы: Беэр Бибо, Иегуда Кац
Беэр Бибо — веб-разработчик с более чем 30-летним стажем программирования. Один из авторов книг «jQuery in Action», «Ajax на практике», «Ajax: библиотеки Prototype и Scriptaculous в действии».
Иегуда Кац разрабатывал веб-сайты для New York Times, Allure Magazine, Architectural Digest, Yoga Journal. Участник основной команды проекта jQuery, принимал участие в разработке Merb (альтернативы Ruby on Rails).
Издание «jQuery. Подробное руководство по продвинутому JavaScript» — действительно подробное справочное руководство по платформе для разработки веб-приложений, в котором описывается, как выполнять обход документов HTML, обрабатывать события, добавлять поддержку технологии Ajax в свои веб-страницы, воспроизводить анимацию, взаимодействие другими инструментами, платформами и методами создания модулей расширения для jQuery. Книга предназначена для тех, кто уже знаком с JavaScript и Ajax.
Книга: «Изучаем Python»
Автор: Марк Лутц
Если вы хоть немного знаете, что такое Python, то и Марк Луц вам знаком. Он является одним из ведущих специалистов в мире по Питону, автором самых ранних и наиболее популярных публикаций. Лутц использует Питон и занимается его популяризацией уже более 20 лет, большую часть времени уделяя преподаванию и написанию книг по этому языку.
Четвертое издание «Изучаем Python» содержит основные типы объектов в языке, порядок их создания и работы с ними, а также включает методы работы с модулями и дополнительными объектно-ориентированными инструментами — классами. Приводятся описания моделей и инструкций обработки исключений, а также обзор инструментов разработки.
Дополнительные материалы:
- 3-е издание «Learn Python the Hard Way» содержит хорошие курсы для начального изучения Питона и закрепления освоенного материала: http://learnpythonthehardway.org/.
- Вы новичок в Django или программировании? Все, что вам надо знать о Django: http://www.djbook.ru/rel1.7/
- Учебник по созданию сайтов для начинающих, содержащий простые и легкие в освоении материалы: www.htmlbook.ru.
Алгоритмы и структуры данных
Книга: «Информатика. Основополагающее введение. Часть I»
Автор: Манфред Бой
Том I четырехтомника выдающегося немецкого ученого Манфреда Боя, лауреата премии Лейбница в области информатики, посвящен базовым понятиям информации и различным формам ее обработки. Манфред дает подробное объяснение алгоритмов (включая их классификацию, описание и исполнение), методов программирования, машинно-ориентированных языковых элементов. Книга содержит исчерпывающие объяснения по вопросам представления и обработки информации.
Книга: «Алгебраическая алгоритмика. С упражнениями и решениями»
Авторы: Клод Китте, Патрис Ноден
Два французских математика в книге, изобилующей формулами, дают ответ на вопрос «что и как можно вычислять?». Авторы упоминают «Искусство программирования» (о котором мы обязательно расскажем дальше) как главный источник вдохновения. Сходство между ними определенно прослеживается.
Книгу можно рекомендовать всем, кто применяет компьютерную алгебру и изучает ее. Трудно найти наиболее исчерпывающее издание по вычислению математических объектов.
Книга: «Алгоритмы и структуры данных»
Автор: Никлаус Вирт
Про таких людей обычно говорят: в представлении не нуждается. Мы все же кратко заметим, что Никлаус Вирт — ученый, инженер, лауреат премии Тьюринга, один из известнейших в мире теоретик языков программирования, создатель языков Паскаль, Модула-2, Оберон.
Книги Вирта по структурному программированию в образовании считаются обязательным стандартом.
«Алгоритмы и структуры данных» — настольное пособие для программистов, дающее необходимый минимум знаний по алгоритмике. В книге подробно рассказывается о таких традиционных темах алгоритмики, как сортировка, поиск, рекурсия, динамические структуры данных.
Книга: «Структуры данных и алгоритмы»
Авторы: Альфред В. Ахо, Джон Э. Хопкрофт, Джеффри Д. Ульман
Альфред Ахо — канадский ученый-информатик, один из создателей интерпретируемого скриптового C-подобного языка AWK, автор и соавтор множества публикаций и книг по различным аспектам информатики.
Джон Хопкрофт — американский ученый, лауреат премии Тьюринга, исследователь теоретических аспектов информатики, в частности анализа алгоритмов и теории графов.
Джеффри Ульман — известный исследователь в области информационных технологий, один из авторов «классических» учебников по компиляторам, теории вычислений и базам данных.
Как вы можете вообразить, такая тройка авторов могла представить только фундаментальное учебное пособие, в котором рассматриваются основы современной методологии разработки программ. Книга не потребует от вас глубоких знаний — достаточно понимать хоть какой-нибудь язык программирования высокого уровня (например, Pascal).
Книги:
«Фундаментальные алгоритмы на C. Части 1—5. Анализ. Структуры данных. Сортировка. Поиск. Алгоритмы на графах»
«Алгоритмы на C++»
Автор: Роберт Седжвик
Глубокое исследование основополагающих концепций алгоритмов провел профессор Принстонского университета, автор многочисленных научных статей и серии учебников по алгоритмам Роберт Седжвик. В «Фундаментальных алгоритмах на C» подробно рассмотрены поиск в орграфах, неорграфах и сетях, построение минимальных остовных деревьев и кратчайших путей, вычисление потоков в сетях с различными характеристиками. Большое внимание уделяется рабочим характеристикам алгоритмов, а также их математическому выводу.
«Алгоритмы на C++» — это и продолжение, и переосмысление описания алгоритмов и структур данных, на этот раз выполненное на C++, хотя приведенные сведения являются фундаментальными и применимы к программированию на любом языке. В книгу добавлены новые алгоритмы, иллюстрации, комментарии и т.д.
Книга: «Структуры данных и алгоритмы в Java»
Автор: Роберт Лафоре
Роберт Лафоре пишет книги по программированию уже 30 лет. Благодаря его книгам неисчислимое количество программистов овладели технологиями объектно-ориентированного программирования.
Книга «Структуры данных и алгоритмы в Java» посвящена основам использования алгоритмов, с примерами, выполненными на Java, хотя для обучения достаточно владеть любым языком программирования. В книге подробно рассматриваются такие темы, как сортировка, абстрактные типы данных, связанные списки, рекурсия, древовидные структуры данных, хеширование, пирамиды, графы.
Книга: «Дискретный анализ»
Автор: Иосиф Романовский
Иосиф Романовский — в нашей подборке редкий представитель отечественных авторов. Профессор кафедры исследования операций СПбГУ, автор целого ряда эффективных алгоритмов для решения оптимизационных задач, включая компьютерную реализацию этих алгоритмов, написал популярные лекционные курсы по оптимальному программированию и программированию на ЭВМ алгоритмов оптимизации.
Пособие «Дискретный анализ» написано по материалам лекционного курса Иосифа Романовского. В нем акцент сделан на связи между понятиями дискретного анализа, возникающими в разных разделах математики и современной информатики.
Книга: «Конкретная математика. Основание информатики»
Авторы: Роналд Грэхем, Дональд Эрвин Кнут, Орен Паташник
Почти «катехизический документ» по алгоритмике, рассматривающий математические основы анализа алгоритмов. В названии «Конкретная математика» содержится игра слов: КОНтинуальная и дисКРЕТНАЯ. В книге представлен материал об оперировании с дискретными объектами, имеющий сходство с традиционными методами математического анализа.
В книге содержится более 500 упражнений различного уровня сложности, излагаемых в неформальном стиле и сопровождаемых «заметками на полях» от первых редакторов книги — студентов Стэнфорда. Рекомендуем всем изучающим и применяющим дискретную математику и информатику.
Книга: «Алгоритмы. Построение и анализ»
Авторы: Томас Х. Кормен, Чарльз Э. Лейзерсон, Рональд Л. Ривест, Клиффорд Штайн
Целая плеяда авторов подготовила издание, охватывающее огромный объем материала.
Клиффорд Штайн — профессор, специалист в области компьютерных наук.
Рональд Линн Ривест — специалист по криптографии, автор симметричных алгоритмов шифрования RC2, RC4, RC, один из авторов алгоритма RSA.
Чарльз Эрик Лейзерсон — профессор Массачусетского технологического института, специализируется на теории параллельных, распределенных вычислений и практическом ее применении.
Томас Кормен — профессор, преподает в Дартмутском колледже, также занимает должность директора по написанию программ в этом учреждении.
Книга «Алгоритмы. Построение и анализ» — фундаментальный труд в области алгоритмов. В ней используются примеры псевдокода, который понятен любому, кто хоть в малой степени знаком с программированием, а пояснения принципов работы даны без излишней математической строгости и требуют лишь элементарных знаний.
Первое издание этой книги стало стандартным справочным руководством для профессионалов и учебным пособием для университетов. Дальнейшие издания получили многочисленные дополнения, множество новых упражнений и задач. Третье издание содержит Деревья ван Эмде Боаса и многопоточные алгоритмы.
Книга: «Искусство программирования. Том 1—4»
Автор: Дональд Эрвин Кнут
Профессор Кнут — один из самых уважаемых и цитируемых в мире авторов книг по программированию. Также он написал серию всемирно известных книг по основным алгоритмам и методам вычислительной математики. Дональд Кнут удостоен многочисленных премий и наград, а с 1996 г. присуждается премия его имени — за особый вклад в развитие основ информатики.
«Искусство программирования» — фундаментальная монография, посвященная важнейшим алгоритмам, используемым в информатике. Книга признана одной из 12 лучших физико-математических монографий столетия.
Основная особенность монографии, создаваемой на протяжении 40 лет, — исключительное качество подаваемого материала, а также глубина анализа рассматриваемых вопросов.
Книга: «Analytic Combinatorics»
Авторы: Филипп Флажоле, Роберт Седжвик
Филипп Флажоле — французский ученый, предложивший теорию аналитической комбинаторики. Большинство его научно-исследовательских работ посвящены общим методам анализа вычислительной сложности алгоритмов.
Книга «Analytic Combinatorics» является одним из наиболее свежих подходов к проблеме обеспечения возможности точных количественных предсказаний свойств больших комбинаторных структур. Авторы (среди которых и уже знакомый нам Роберт Седжвик) дают полный объем необходимой базовой математики, а также тщательно рассматривают как классические, так и современные приложения теории аналитической комбинаторики. В книге содержатся наглядные примеры приложений, упражнения и примечания.
Книга: «Комбинаторика для программистов»
Автор: Витольд Липский
Витольд Липский — польский специалист по программированию, профессор Парижского университета, обладатель докторской степени. Книга «Комбинаторика для программистов» охватывает широкий спектр комбинаторных и теоретико-графовых алгоритмов. Описание алгоритмов дано на Паскале. Стиль изложения — справочный: постановка задачи, алгоритм ее решения, комментарии, трудоемкость, примеры.
Книга: «Строки, деревья и последовательности в алгоритмах. Информатика и вычислительная биология»
Автор: Дэн Гасфилд
Профессор Дэн Гасфилд преподает в университете Дэвиса, Калифорния. В круг его интересов входят исследования в области эффективности алгоритмов, связанных с комбинаторной оптимизацией. Гасфилд особо интересуется комбинаторными проблемами, возникающими в вычислительной молекулярной биологии (в частности? биоинформатики и геномики).
Книга «Строки, деревья и последовательности в алгоритмах. Информатика и вычислительная биология» будет интересна не только тем, кто интересуется биологией, но и всем, кто хочет самостоятельно познакомиться с современными алгоритмами обработки практической информации.
Книга: «Методы и алгоритмы вычислений на строках»
Автор: Билл Смит
Профессор Уильям Ф. (Билл) занимался консультированием в области использования компьютерных технологий в бизнесе и правительственных организациях. Основная область его исследования — комбинаторные алгоритмы.
Книга «Методы и алгоритмы вычислений на строках» описывает фундаментальные алгоритмы и методы, эффективно вычисляющие паттерны в строковых последовательностях. Эти алгоритмы и методы используются в таких областях, как сжатие данных, криптография, распознавание речи, компьютерное зрение, вычислительная геометрия, молекулярная биология и т.п. Книга содержит более 500 упражнений, поясняющих и расширяющих материал.
Книга: «Алгоритмические трюки для программистов»
Автор: Генри С. Уоррен мл.
Генри Уоррен более 40 лет проработал в IBM. Он трудился над рядом военных командно-управляющих систем и над проектом языка программирования SETL. С 1973 г. Уоррен занимается компиляторами и архитектурой компьютеров в исследовательском подразделении IBM.
Книга «Алгоритмические трюки для программистов» содержит множество трюков компьютерной арифметики, которые будут крайне полезны разработчикам библиотек и компиляторов, а также всем, кто хочет быстро создавать эффективный код. В книге представлены примеры работ с отдельными битами, байтами, вычисления различных целочисленных функций.
Книга: «Дискретная математика для программистов»
Автор: Федор Новиков
Федор Александрович Новиков — доцент кафедры прикладной математики Санкт-Петербургского государственного политехнического университета и кафедры технологий программирования Санкт-Петербургского государственного университета информационных технологий, механики и оптики. В учебнике «Дискретная математика для программистов» изложены основные разделы дискретной математики и описаны важнейшие алгоритмы на дискретных структурах данных.
Книга допущена Министерством образования и науки Российской Федерации в качестве учебного пособия для студентов высших учебных заведений, обучающихся по направлению подготовки дипломированных специалистов «Информатика и вычислительная техника».
Книга: «Дискретная математика для инженера»
Автор: Олег Кузнецов
Олег Петрович Кузнецов — заведующий сектором Института проблем управления РАН, доктор технических наук. В книге «Дискретная математика для инженера» изложены основные понятия теории множеств, общей алгебры, логики, теории графов, теории алгоритмов и формальных систем, теории автоматов. Издание представляет интерес для инженеров, специализирующихся в области автоматизированного управления и проектирования, вычислительной техники, информационных технологий и передачи информации.
Углубленное программирование на С++
Книга: «Приемы объектно-ориентированного проектирования. Паттерны проектирования»
Авторы: Эрих Гамма, Ричард Хелм, Ральф Джонсон, Джон Влиссидес
Эрих Гамма — программист из Швейцарии, ведущий разработчик фреймворка для выполнения юнит-тестов на джаве JUnit и кросс-платформенной интегрированной среды разработки ПО (Eclipse). Работал в IBM над проектом масштабируемой платформы с открытым кодом от для разработки ПО (Jazz).
Программист Ричард Хелм также работал в IBM, в исследовательском центре компании, занимающемся разработкой новых технологий.
Третий автор — Ральф Джонсон — профессор в Университете штата Иллинойс, популяризатор объектно-ориентированного языка с динамической типизацией Smalltalk.
Джон Влиссидес работал в Стэнфордском университете, а с 1991 г. — в исследовательском центре IBM. Является автором нескольких книг, многих статей и докладов по объектно-ориентированным технологиям, паттернам проектирования и моделированию программного обеспечения.
Авторы, известные как «банда четырех», подарили миру изящное решение типичных задач, возникающих в ООП. Книга состоит из двух частей: в первой рассказывается о возможностях и недостатках ООП, во второй части описаны 23 классических шаблона проектирования. Приводящиеся в книге примеры написаны на языках программирования C++ и Smalltalk.
«Банда» излагает принципы использования паттернов проектирования и приводит их каталог. В книге демонстрируется роль паттернов в создании архитектуры сложных систем и показывается, как благодаря использованию содержащихся в справочнике паттернов проектировщик сможет разрабатывать собственные приложения.
Книга: «Рефакторинг с использованием шаблонов»
Автор: Джошуа Кериевски
Джошуа Кериевски основал компанию Industrial Logic, но нам он больше известен как автор книги, аккумулирующей опыт профессионального разработчика по применению шаблонов проектирования.
Кериевски учит избегать как недостаточного, так и избыточного проектирования, стремиться к постоянному анализу работоспособности кода, упрощению его понимания и сопровождения. На основании как собственного, так и чужого опыта автор детально рассматривает различные признаки кода, требующего рефакторинга, описывает, какой именно рефакторинг наилучшим образом подходит для той или иной ситуации, и описывает его механику. В книге представлено 27 сложных рефакторингов.
Кириевски ссылается на книгу Фаулера «Рефакторинг. Улучшение существующего кода», поэтому для более глубокого понимания способов ввода в архитектуру программы паттернов «Рефакторинг с использованием шаблонов» рекомендуется читать уже после. Дополнительных знаний вам не потребуется, и хотя все приводятся на джаве, в них не используются сложные особенности языка. Книга будет полезна как программистам среднего уровня, так профессионалам.
Книга: «Язык программирования C++. Вводный курс»
Авторы: Стенли Б. Липпман, Жози Лажойе, Барбара Му
Стэнли Б. Липпман работал с Бьёрном Страуструпом в исследовательской корпорации Bell Lab на ранних стадиях разработки C++. В 2001 г. Стэнли Липпман стал главным архитектором Visual C++ в Microsoft. Он также работал в Emergent Game Technologies, НАСА, Pixar и 2kQubits.
Жози Лажойе участвовала в работе над компилятором С++ в IBM Canada, а также возглавлял рабочую группу базового языка C++ в составе международной организации по стандартизации ANSI/ISO.
Барбара Му имеет почти 30-летний опыт программирования. На протяжении 15 лет она работала в компании AT&T, сотрудничала с Бьёрном Страуструпом, несколько лет руководила группой разработчиков C++.
Книга этих экспертов явно не ограничивается сухим подзаголовком «вводный курс», а является исчерпывающим руководством для изучения языка. В книге рассмотрены как основы структуры программ на C++, включая использование команд препроцессора и заголовочных файлов, так и более сложные конструкции (исключения, классы, шаблоны функций и классов, перегрузка операторов, множественное наследование и т.п.).
По мере развития C++ в книгу вносятся соответствующие изменения. Помимо фундаментальных концепций, в новой версии книги приводятся наиболее эффективные приемы, позволяющие читателю создавать собственные программы еще до углубленного знакомства с особенностями языка.
Книга: «STL. Карманный справочник»
Автор: Рэй Лишнер
Рэй Лишнер в первую очередь известен в Delphi-коммьюнити как автор книг «Secrets of Delphi 2», «Hidden Paths of Delphi 3» и многих статей для таких журналов, как «Delphi Informant», «Dr. Dobb's Journal». Но мы рекомендуем другую его книгу — «STL. Карманный справочник». Это действительно справочник по подмножеству стандартной библиотеки C++. В книге описана библиотека STL в современном виде — алгоритмы, итераторы и контейнеры стандартной библиотеки C++, а также ряд других элементов. Приводится краткая сводка по функциям, классам и шаблонам, образующим STL.
Книга: «Совершенный код. Мастер-класс»
Автор: Стив Макконнелл
Стив Макконнелл — программист, редактор и эксперт в области разработки ПО. Он дважды был удостоен премии Jolt Excellence за лучшую книгу года по разработке софта. По степени влияния на отрасль его сравнивали с Биллом Гейтсом и Линусом Торвальдсом.
Самая известная работа Макконнелла — «Совершенный код». Книга, содержащая сотни примеров, иллюстрирующих подлинное искусство программирования, продвигает исключительно грамотные принципы при разработке ПО. Автор синтезировал опыт разработки коммерческого ПО и академических исследований в методику создания совершенного кода.
«Совершенный код» — книга, которую должен прочитать каждый программист. И желательно сделать это несколько раз.
Книга: «C++ и STL. Справочное руководство»
Авторы: Дэвид Р. Мюссер, Жилмер Дж. Дердж, Атул Сейни
Дэвид Р. Мюссер — преподаватель, работал с STL с момента ее зарождения: первая реализация библиотеки разработана при его непосредственном участии. Кроме того, он работал над тем, чтобы STL была включена в стандарт ANSI/ISO C++.
Жилмер Дж. Дердж — президент Toltec Software Services Inc., имеет большой опыт разработки приложений на C++, в том числе семь лет — в фирме General Electric Corporate R&D.
Атул Сейни — президент Fiorano Software Inc., производителя программного обеспечения для высокоскоростного обмена сообщениями, разрабатываемого на C++. Он стал первым, кто увидел коммерческий потенциал STL, и предложил свою компанию для продажи библиотеки еще до того, как она вошла в стандарт C++.
Книга «C++ и STL. Справочное руководство» включает небольшой учебный курс, подробное описание каждого элемента библиотеки и большое количество примеров. Книга содержит исчерпывающее описание итераторов, обобщенных алгоритмов, контейнеров, функциональных объектов и т.д. В ней также дается объяснение, как интегрировать STL с другими объектно-ориентированными методами программирования.
Книги:
«Решение сложных задач на С++»
«Новые сложные задачи на C++»
«Стандарты программирования на С+»
Автор: Герб Саттер
Герб Саттер — признанный эксперт по C++. Начал работать в Microsoft в качестве евангелиста платформы Visual C++ .NET и достиг должности архитектора ПО C++/CLI. 10 лет он был организатором и секретарем комитета по стандартизации ISO C++. Много лет регулярно публиковал нетривиальные задачи на C++ в серии под названием Guru of the Week. Позднее Саттер опубликовал развернутые версии многих задач в своих первых двух книгах «Решение сложных задач на C++».
Рекомендуем сразу три его книги, рассчитанные на читателя с достаточно глубоким знанием языка. В форме задач и их решений рассматриваются современные методы проектирования и программирования на C++. В книгах сконцентрирован многолетний опыт разработок C++: рассмотрены конкретные методики, приемы и идиомы программирования, особое внимание уделено вопросу проектирования, которое должно обеспечить максимальную надежность, безопасность, производительность и сопровождаемость создаваемого ПО.
Книга: «Алгоритмы на C++»
Автор: Роберт Седжвик
О Роберте Сеждвике мы уже рассказывали выше. В книге «Алгоритмы на C++» рассматриваются фундаментальные алгоритмы, структуры данных, сортировка и поиск, алгоритмы на графах, которые играют все более важную роль во множестве приложений, таких как сетевая связность, конструирование электронных схем, составление графиков, обработка транзакций и выделение ресурсов.
В книге подробно описаны массивы, связные списки, строки, деревья и другие базовые структуры данных. Внимание читателя акцентируется на абстрактных типах данных (АТД), на модульном программировании, на ООП и классах C++, приводится более 100 алгоритмов сортировки, выбора, реализаций АТД очереди с приоритетами и реализаций АТД таблицы символов (для поиска).
Книги:
«Язык программирования С++»
«Программирование. Принципы и практика использования C++»
Автор: Бьёрн Страуструп
Невозможно представить подборку книг о C++ без учебников самого автора языка. Бьёрн Страуструп — настоящая легенда, а «Язык программирования C++» является одной из самых широко читаемых книг в своей области. Книги Страуструпа отличает непревзойденное мастерство в области технической документации. Это безусловный канон по возможностям языка.
Первое издание книги «Язык программирования С++» выпущено 29 лет назад. Второе было опубликовано в 1991 г., третье — в 1997 г. Улучшенная версия третьего издания, выпущенная в твердой обложке, получила название «Специальное издание» и отличалась от ранних выпусков третьего издания двумя дополнительными приложениями («Локализация» и «Безопасность исключений и стандартная библиотека»), примерно 1 тыс. исправлений и уточнений, а также дополненным алфавитным указателем. Четвертое издание книги, которая включает в себя C++11, выпущено в 2013 г.
Если вы программируете на С++, то прочесть эту книгу нужно прямо сейчас.
Книга: «Рефакторинг. Улучшение существующего кода»
Авторы: Мартин Фаулер, Кент Бек, Джон Брант, Уильям Апдайк, Дон Робертс
Мартин Фаулер — популярный автор книг и статей по архитектуре ПО, по объектно-ориентированному анализу и разработке, по языку UML, рефакторингу, экстремальному программированию и предметно-ориентированным языкам программирования.
Программист Кент Бек создал такие методологии разработки ПО, как экстремальное программирование и разработка через тестирование. Он является одним из пионеров введения в практику шаблонов проектирования ПО, создания методологии разработки через тестирование, а также коммерческого использования языка Smalltalk. Совместно с Эрихом Гамма создал фреймворк для тестирования JUnit.
Джон Брант и Дон Робертс — авторы Refactoring Browser для Smalltalk. Они также выступают консультантами по вопросам практического и теоретического рефакторинга.
Уильям Апдайк написал докторскую диссертацию по рефакторингу объектно-ориентированных сред (в университете штата Иллинойс), послужившую основой первой крупной публикации на данную тему.
Книга «Рефакторинг. Улучшение существующего кода» рассказывает о процессе рефакторинга, описывает принципы углубленного изучения кода с целью его улучшения. В книгу включены более 70 методов рефакторинга, для каждого из которых описываются мотивация и техника испытанного на практике преобразования кода с примерами на Java.
«Must read» для всех разработчиков.
Книга: «Полный справочник по C++»
Автор: Герберт Шилдт
Шилдт — писатель, ученый и программист, был членом комитета ANSI, который принимал стандарты С, и комитета ISO, принимавшего стандарты C++. Автор интерпретатора Little C — примера рекурсивного нисходящего парсера.
«Полный справочник по C++» содержит все ключевые слова, функции, классы и свойства языка, соответствующие стандарту ANSI/ISO. В нем освещаются все аспекты языка, включая его основу — язык С.