На этом шаге мы приведем некоторые рассуждения об общей культуре программирования.
Материал этого шага взят из [1, с.319-320].
Любой человек, занимающийся программированием изо дня в день, примерно представляет себе, какого рода задачи ставит перед ним профессия и в общих чертах знает, в какой литературе можно найти ответы на интересующие вопросы. Но помимо жизненно важных знаний, умений и навыков существует ещё такое понятие, как общая культура программирования.
Обычная жизнь, повседневное общение, вероятно, не требуют от человека каких-то особенных познаний (по крайней мере, субъекты, ими не отягощённые, но при этом прекрасно выживающие, встречаются с завидной регулярностью). Но общая культурная образованность способна сделать нашу жизнь если не проще, то заметно интереснее и богаче.
Если во время прогулки где-нибудь в исторических кварталах города у Вас перед глазами возникают живые картины из прошлого, если ежедневные ситуации ассоциируются с событиями из любимых литературных произведений, тем самым обретая новые яркие краски, - уверен, такое, более глубокое понимание происходящего вокруг когда-нибудь сослужит Вам хорошую службу.
Точно так же и общая культура программирования, не призванная содействовать достижению каких-либо конкретных целей, поднимает понимание программирования как вида творчества на качественно новый уровень.
Взять, к примеру, такую популярную нынче идею как паттерны программирования - высокоуровневые конструкции, выражающие общепринятый подход к решению той или иной типичной задачи. Начинающий программист без труда поймёт каждую отдельную инструкцию, входящую в алгоритм-паттерн, но общая архитектура останется для него неясной. Представьте, что, глядя на загородный домик, мы бы не видели окон, стен и крыши, а понимали бы лишь, что он состоит из кирпичей, стекла и черепицы. Немыслимо в реальной жизни, но вполне обыкновенно в программировании.
Хороший пример общей культуры - это функциональное программирование. Думаю, что подавляющее большинство студентов никогда не использовали языки, подобные языкам Haskell или Standard ML и вряд ли когда-либо будут это делать. Тем не менее, идеологию обобщённого программирования вообще и библиотеки STL (с которой, наверняка, сталкивался каждый второй) понять гораздо труднее, не зная основ функциональной парадигмы.
На следующем шаге мы рассмотрим простейшие типы данных.