Литмир - Электронная Библиотека
A
A

Послесловие

Большинство глав завершается коротким постскриптумом, в котором излагается определенная точка зрения на предшествующую главу. Мы сделали это, хотя понимали, что она может ошеломить читателей (и часто на самом деле приводит их в замешательство) и что полностью уяснить ее можно, лишь выполнив упражнения и прочитав следующие главы (в которых будут применяться указанные идеи). Не паникуйте, расслабьтесь. Это вполне естественно и понятно. Вы не можете стать экспертом за один день, но, проработав книгу, можете стать вполне компетентным программистом. Кроме того, вы найдете в книге много фактов, примеров и приемов, которые многие программисты считают чрезвычайно интересными и поучительными.

Глава 1

Компьютеры, люди и программирование

“Специализация нужна только насекомым”.

Р.А. Хайнлайн (R.A. Heinlein)

В этой главе излагаются темы, которые, по нашему мнению, делают программирование важным, интересным и радостным занятием. Мы также описываем несколько фундаментальных идей и принципов, надеясь развеять множество распространенных мифов о программировании и программистах. Пока эту главу достаточно просто просмотреть, но мы рекомендуем вернуться к ней впоследствии, когда вы начнете самостоятельно программировать и засомневаетесь, а стоит ли этим заниматься вообще.

1.1. Введение

 Как и любой процесс обучения, преподавание программирования сводится к дилемме о яйце и курице. Мы хотим поскорее начать работу, но одновременно желаем объяснить, почему именно эти темы выбрали для изучения. Мы хотим передать вам практические навыки, но одновременно хотим убедить вас, что это не причуда, а необходимость. Мы не желаем терять время, но при этом не хотим подгонять вас и читать проповеди. Пока отнеситесь к данной главе как к обычному интересному тексту, а затем можете вернуться к ней, для того чтобы освежить в памяти.

Эта глава выражает нашу личную точку зрения на то, что мы считаем интересным и важным для программирования. В ней изложены причины, по которым мы вот уже много десятков лет занимаемся этим делом. Она должна помочь вам понять, в чем заключаются наши основные цели и какими бывают программисты. Учебники для начинающих неизбежно содержат массу прописных истин. В этой главе мы закрываем глаза на технические детали и предлагаем рассмотреть картину в целом. Почему программирование является достойным занятием? Какую роль играет программирование в нашей цивилизации? В каких областях программисты могут сделать вклад, которым могли бы гордиться? Какие задачи остались пока нерешенными в области разработки, развертывания и эксплуатации программного обеспечения? Какое место занимает программирование в области компьютерных наук, разработки программного обеспечения, информационных технологий и т.д.? Чем занимаются программисты? Какими навыками они должны владеть?

Для студентов основной причиной изучения какой-либо идеи, метода или главы учебника может быть простое желание получить хорошую оценку на экзамене, но должны же быть и более веские мотивы! Для людей, работающих в области разработки программного обеспечения, наиболее важной причиной изучения какой-либо идеи, метода или главы учебника может быть желание узнать нечто, что поможет ему заслужить одобрение босса, от которого зависит повышение зарплаты, продвижение по службе и увольнение, — но должны же быть и более веские мотивы! Лучше всего мы работаем, когда чувствуем, что наша работа делает мир лучше и помогает другим людям. Для задач, которые мы решаем годами (из которых, собственно, и складывается карьера профессионала), жизненно важными являются идеалы и более абстрактные идеи.

 

Программирование. Принципы и практика использования C++ Исправленное издание - _001.png
Жизнедеятельность нашей цивилизации зависит от программного обеспечения. Улучшение программного обеспечения и поиск новых областей для его применения позволит улучшить жизнь многих людей. Программирование играет в этом очень важную роль. 

1.2. Программное обеспечение

Хорошее программное обеспечение невидимо. Вы не можете его потрогать, взвесить или стукнуть. Программное обеспечение — это совокупность программ, выполняемых на определенном компьютере. Иногда мы можем пощупать этот компьютер, но чаще можем увидеть лишь устройство, содержащее этот компьютер, например телефон, фотоаппарат, тестер, автомобиль или воздушную турбину. Мы способны воспринимать лишь результаты работы программного обеспечения. Кроме того, если работа программного обеспечения не соответствует нашим ожиданиям или потребностям, это может стать поводом для беспокойства.

Сколько компьютеров существует в мире? Мы не знаем; по крайней мере, миллиарды. Компьютеров в мире больше, чем людей. В 2004 году по оценкам Международного телекоммуникационного союза (International Telecommunication Union — ITU) в мире насчитывалось 772 миллиона персональных компьютеров, причем большинство компьютеров в эту категорию не входило.

Сколько компьютеров (более или менее непосредственно) вы используете каждый день? Например, в моем автомобиле установлено более тридцати компьютеров, в мобильном телефоне — два, в MP3-плеере — один и еще один в видеокамере. Кроме того, у меня есть еще ноутбук (на котором я набирал текст, который вы сейчас читаете), а также настольный компьютер. Контроллер кондиционера, который летом поддерживает комфортную температуру и влажность, также представляет собой простой компьютер. В нашем университете компьютер управляет работой эскалатора. Если вы пользуетесь современными телевизорами, то обязательно найдете в нем хотя бы один компьютер. Переходя с одной веб-страницы на другую, вы соединяетесь с десятками, а возможно, и сотнями серверов через телекоммуникационные системы, состоящие из многих тысяч компьютеров: телефонных коммутаторов, маршрутизаторов и т.д.

Нет, я не храню тридцать ноутбуков на заднем сиденье своего автомобиля! Дело в том, что большинство компьютеров выглядят совсем не так, как мы привыкли (с дисплеем, клавиатурой, мышью и т.д.); они просто являются небольшим устройством, встроенным в используемое оборудование. Итак, в моем автомобиле нет ничего похожего на типичный компьютер, нет даже экрана для изображения карты и указания направления движения (хотя такие устройства весьма популярны). Однако двигатель моего автомобиля содержит несколько компьютеров, например, управляющих впрыскиванием топлива и контролирующих его температуру. По крайней мере, еще один компьютер встроен в рулевой механизм, в радиосистему и систему безопасности. Я подозреваю даже, что система, открывающая и закрывающая окна, управляется компьютером. В более современные автомобили встроены компьютеры, которые непрерывно контролируют даже давление в шинах.

От скольких компьютеров вы зависите на протяжении дня? Если вы живете в большом городе, то для того чтобы получить еду, кто-то должен совершить небольшие чудеса, связанные с планированием, транспортировкой и хранением продуктов. Разумеется, управление сетями распределения продуктов компьютеризовано, как и работа любых коммуникационных систем, требующих согласованной работы. Современные фермы также компьютеризованы; на них можно найти компьютеры, используемые как в хлеву, так и в бухгалтерии (для учета возраста, состояния здоровья коров, надоев и т.д.). Фермеры все шире используют компьютеры для делопроизводства, причем количество отчетов, которые необходимо отправлять в разные правительственные агентства, приводит их в отчаянье. О том, что происходит в мире, вы прочтете в газете; разумеется, статья в этой газете будет набрана на компьютерах, сверстана на компьютерах и напечатана на компьютеризованном оборудовании — часто после передачи в типографию в электронном виде. Если вам потребуется связь с удаленным компьютером, то трафик будет управляться компьютерами, которые попытаются (как правило, тщетно) избежать узких мест. Вы предпочитаете ездить на поезде? Этот поезд тоже будет компьютеризован; некоторые из поездов даже ездят без помощи машинистов, причем большинство бортовых систем поезда (объявления по радио, торможение и продажа билетов) состоит из множества компьютеров. Современную индустрию развлечений (музыку, фильмы, телевидение, театрализованные представления) тоже невозможно представить без использования компьютеров. Даже художественные фильмы производятся с массовым применением компьютеров; музыкальные произведения и фотографии также все чаще основаны на цифровых технологиях (т.е. создаются с помощью компьютеров) как при записи, так и при доставке. Если вы заболеете, то все анализы доктор проведет с помощью компьютеров, записи в медицинских книжках будут внесены в электронном виде, а большинство медицинского оборудования в больницах окажется компьютеризованным. Если вы не живете в лесной избушке без доступа к электричеству, то используете электроэнергию. Нефть обнаруживается, извлекается и транспортируется по системе трубопроводов, управляемых компьютерами на каждом этапе этого процесса: от погружения бура в землю до подачи топлива на местную насосную станцию. Если вы платите за бензин с помощью кредитной карточки, то снова задействуете огромное количество компьютеров. То же самое можно сказать о добыче и транспортировке угля, газа, а также солнечной и ветряной энергии.

19
{"b":"847443","o":1}