- Любовные романы
- Фантастика и фэнтези
- Ненаучная фантастика
- Ироническое фэнтези
- Научная Фантастика
- Фэнтези
- Ужасы и Мистика
- Боевая фантастика
- Альтернативная история
- Космическая фантастика
- Попаданцы
- Юмористическая фантастика
- Героическая фантастика
- Детективная фантастика
- Социально-психологическая
- Боевое фэнтези
- Русское фэнтези
- Киберпанк
- Романтическая фантастика
- Городская фантастика
- Технофэнтези
- Мистика
- Разная фантастика
- Иностранное фэнтези
- Историческое фэнтези
- LitRPG
- Эпическая фантастика
- Зарубежная фантастика
- Городское фентези
- Космоопера
- Разное фэнтези
- Книги магов
- Любовное фэнтези
- Постапокалипсис
- Бизнес
- Историческая фантастика
- Социально-философская фантастика
- Сказочная фантастика
- Стимпанк
- Романтическое фэнтези
- Ироническая фантастика
- Детективы и Триллеры
- Проза
- Юмор
- Феерия
- Новелла
- Русская классическая проза
- Современная проза
- Повести
- Контркультура
- Русская современная проза
- Историческая проза
- Проза
- Классическая проза
- Советская классическая проза
- О войне
- Зарубежная современная проза
- Рассказы
- Зарубежная классика
- Очерки
- Антисоветская литература
- Магический реализм
- Разное
- Сентиментальная проза
- Афоризмы
- Эссе
- Эпистолярная проза
- Семейный роман/Семейная сага
- Поэзия, Драматургия
- Приключения
- Детская литература
- Загадки
- Книга-игра
- Детская проза
- Детские приключения
- Сказка
- Прочая детская литература
- Детская фантастика
- Детские стихи
- Детская образовательная литература
- Детские остросюжетные
- Учебная литература
- Зарубежные детские книги
- Детский фольклор
- Буквари
- Книги для подростков
- Школьные учебники
- Внеклассное чтение
- Книги для дошкольников
- Детская познавательная и развивающая литература
- Детские детективы
- Домоводство, Дом и семья
- Юмор
- Документальные книги
- Бизнес
- Работа с клиентами
- Тайм-менеджмент
- Кадровый менеджмент
- Экономика
- Менеджмент и кадры
- Управление, подбор персонала
- О бизнесе популярно
- Интернет-бизнес
- Личные финансы
- Делопроизводство, офис
- Маркетинг, PR, реклама
- Поиск работы
- Бизнес
- Банковское дело
- Малый бизнес
- Ценные бумаги и инвестиции
- Краткое содержание
- Бухучет и аудит
- Ораторское искусство / риторика
- Корпоративная культура, бизнес
- Финансы
- Государственное и муниципальное управление
- Менеджмент
- Зарубежная деловая литература
- Продажи
- Переговоры
- Личная эффективность
- Торговля
- Научные и научно-популярные книги
- Биофизика
- География
- Экология
- Биохимия
- Рефераты
- Культурология
- Техническая литература
- История
- Психология
- Медицина
- Прочая научная литература
- Юриспруденция
- Биология
- Политика
- Литературоведение
- Религиоведение
- Научпоп
- Психология, личное
- Математика
- Психотерапия
- Социология
- Воспитание детей, педагогика
- Языкознание
- Беременность, ожидание детей
- Транспорт, военная техника
- Детская психология
- Науки: разное
- Педагогика
- Зарубежная психология
- Иностранные языки
- Филология
- Радиотехника
- Деловая литература
- Физика
- Альтернативная медицина
- Химия
- Государство и право
- Обществознание
- Образовательная литература
- Учебники
- Зоология
- Архитектура
- Науки о космосе
- Ботаника
- Астрология
- Ветеринария
- История Европы
- География
- Зарубежная публицистика
- О животных
- Шпаргалки
- Разная литература
- Зарубежная литература о культуре и искусстве
- Пословицы, поговорки
- Боевые искусства
- Прочее
- Периодические издания
- Фанфик
- Военное
- Цитаты из афоризмов
- Гиды, путеводители
- Литература 19 века
- Зарубежная образовательная литература
- Военная история
- Кино
- Современная литература
- Военная техника, оружие
- Культура и искусство
- Музыка, музыканты
- Газеты и журналы
- Современная зарубежная литература
- Визуальные искусства
- Отраслевые издания
- Шахматы
- Недвижимость
- Великолепные истории
- Музыка, танцы
- Авто и ПДД
- Изобразительное искусство, фотография
- Истории из жизни
- Готические новеллы
- Начинающие авторы
- Спецслужбы
- Подростковая литература
- Зарубежная прикладная литература
- Религия и духовность
- Старинная литература
- Справочная литература
- Компьютеры и Интернет
- Блог
Программирование. Принципы и практика использования C++ Исправленное издание - Бьёрн Страуструп
Шрифт:
Интервал:
Закладка:
Итак, в чем заключается наша точка зрения? Программирование — это набор навыков, требующих интеллектуальных усилий и образующих часть многих важных и интересных технических дисциплин. Кроме того, программирование — это существенная часть окружающего нас мира, поэтому не знать основы программирования — это то же самое, что не знать основ физики, истории, биологии или литературы. Если человек полностью игнорирует программирование, значит, он верит в чудеса и опасен на технической должности. Если вы читали Дилберта (Dilbert), то вспомните образ начальника с волосатыми пальцами и поймете, какой тип менеджера никогда не хотелось бы встретить в своей жизни и (что было бы еще ужаснее) каким руководителем вам никогда не хотелось бы стать. Кроме того, программирование часто бывает веселым занятием.
Так для чего же вам может понадобиться программирование? Может быть, вы будете использовать его как основной инструмент своих исследований, не став профессиональным программистом. Возможно, вы будете профессионально общаться с другими людьми, работая в областях, в которых знание программирования может дать существенное преимущество, например, став конструктором, писателем, менеджером или ученым. Может быть, освоив программирование на профессиональном уровне, вы сможете сделать его частью своей работы. Даже если вы станете профессиональным программистом, маловероятно, что вы не будете знать ничего, кроме программирования.
Вы можете стать инженером, занимающимся конструированием компьютеров, или специалистом по компьютерным наукам, но и в этом случае вы не будете все время программировать. Программирование — это способ выражения своих идей в виде программ. Это помогает решать задачи. Программирование становится совершенно бесполезной тратой времени, если у вас нет идей, которые вы хотели бы выразить, и нет задач, которые стоило бы решить.
Эта книга о программировании, и мы пообещали научить вас программировать. Зачем же мы подчеркиваем важность остальных предметов и постоянно указываем на ограниченную роль программирования? Хороший программист понимает роль программ и техники программирования в работе над проектом. Хороший программист (в большинстве случаев) — это ответственный командный игрок, стремящийся сделать как можно более весомый вклад в решение общей задачи. Например, представьте себе, что работая над новым MP3-плеером, я заботился бы лишь о красоте своей программы и количестве технических тонкостей. Вероятно, я стал бы настаивать на том, чтобы моя программа выполнялась на самом мощном компьютере. Я бы пренебрег теорией кодирования звука, поскольку эта дисциплина не относится к программированию. Я бы оставался в стенах своей лаборатории и не стал бы встречаться с потенциальными пользователями, у которых, несомненно, дурной музыкальный вкус и которые, конечно, не способны оценить новейшие достижения в области разработки графического пользовательского интерфейса. Вполне вероятно, что результаты моей работы были бы катастрофическими для всего проекта. Чем более мощный компьютер я бы потребовал, тем дороже стал бы MP3-плеер и тем быстрее разряжались бы его батареи питания. Существенную часть цифровой обработки музыки занимает ее кодирование, поэтому пренебрежение современными методами кодирования информации привело бы к завышенным требованиям к объему памяти для каждой песни (кодирование может уменьшить объем песни почти вдвое без потери качества ее звучания). Игнорирование предпочтений потенциальных пользователей — какими бы странными и архаичными они ни казались — обычно приводит к тому, что они выбирают другой продукт. При разработке хороших программ важно понимать потребности пользователей и ограничения, которые необходимо накладывать на программный код. Для того чтобы завершить карикатурный образ программиста, упомянем о тенденции опаздывать и нарушать сроки поставки из-за одержимости деталями и слепой веры в правильность плохо отлаженной программы. Мы желаем вам стать хорошим программистом с широким кругозором. Эти два качества одинаково полезны для общества и являются ключевыми для удовлетворения от своей работы.
1.4. Компьютерные науки
Даже в самом широком смысле программирование является частью более крупной научной дисциплины. Мы можем рассматривать ее как часть компьютерных наук, компьютерной техники, информационных технологий или другой научной дисциплины, связанной с программным обеспечением. Программирование является вспомогательной технологией, используемой как в информатике, так и в технике, физике, биологии, медицине, истории, литературе и других академических областях.
В 1995 году правительство США выпустило так называемую “Голубую книгу”, в которой дано следующее определение компьютерных наук: “Систематическое изучение компьютерных систем и вычислений. Комплекс знаний, порождаемых этой дисциплиной, содержит теории компьютерных систем и методов; методы, алгоритмы и инструменты проектирования; методы проверки концепций; методы анализа и верификации; методы представления и реализации знаний”. Как и следовало ожидать, Википедия дает более неформальное определение: “Компьютерные науки, или науки о вычислениях, изучают теоретические основы информации и вычислений, а также методы их реализации и приложения в компьютерных системах. Компьютерные науки состоят из многих подобластей; одни сосредоточены на конкретных вычислениях (например, компьютерная графика), другие (например, теория вычислительной сложности) изучают абстрактные проблемы вычислений, третьи связаны с реализацией вычислений. Например, теория языков программирования изучает подходы к описанию вычислений, в то время как компьютерное программирование применяет языки программирования для решения конкретных вычислительных задач”.
Программирование — это основной инструмент выражения решений фундаментальных и прикладных задач, допускающий их проверку, уточнение с помощью эксперимента и использование на практике. Программирование — это дисциплина, в которой идеи и теории сталкиваются с реальностью; где компьютерные науки становятся экспериментальными, а не теоретическими и начинают влиять на реальный мир. В этом контексте, как и во многих других аспектах, важно подчеркнуть, что программирование — это средство реализации как практических, так и теоретических методов. Программирование нельзя сводить к простому

