Главная страница Visual 2000 · Общий список статей

Изучать программирование полезно всем

Андрей Колесов

© 2000, Андрей Колесов
Авторский вариант. Статья была опубликована c незначительной литературной правкой в журнале "Наука и жизнь" N 10/2000, c. 20.

"Программирование доставляет нам радость, потому что позволяет удовлетворить стремление к творчеству, глубоко заложенное в нас, и разделить это чувство радости с другими."
Фредерикс Брукс, "Мифический человеко-месяц"

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

Отмечу также, что довольно часто специалисту в какой-то предметной области легче освоить программирование, чем заставить разработчика "погрузиться" в прикладную тему (формального технического задания тут часто недостаточно). Особо следует выделить научных работников, занимающихся, например, исследованиями в области математических моделей: довольно часто построение и изучение моделей находится в неразрывной связи с процессом создания и отладки программы.

Однако итоги всеобщего обучения программированию студентов технических специальностей вряд ли можно назвать успешным. На практике получалось так, что тот, кто хотел практически делать программы, осваивал эту технологию самостоятельно. Абсолютное же большинство забывали о программировании вскоре после сдачи зачета. Так было в 80-х годах, так происходит и сейчас.

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

За последние несколько лет компьютеры стали существенно доступнее, но ситуация с изучением программирования практически не улучшилась. Одна из причин этого — принципиальное сомнение в том, что его вообще нужно осваивать. Действительно, зачем учить программирование, если можно воспользоваться многочисленными готовыми приложениями? Поэтому, давайте просто обучать "компьютерной грамоте".

Да, такая постановка вопроса имеет рациональное зерно, но все же представляется довольно ограниченной.

Во-первых, программирование помогает лучше формулировать логику решения практически любой задачи (совсем не обязательно чисто вычислительной). Как говорили в старину, "арифметика мозги в порядок приводит".

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

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

Иллюстрация этого тезиса приведена на примере программирования в среде программы Word 2000 — самого распространенного приложения семейства MS Office 2000 (но практически все сказанное будет годиться и для версии Office 97). Отметим при этом, что именно программирование с использованием офисных приложений открывает уникальные возможности освоения технологии разработки для "обычного" пользователя. Это объясняется тем, что он может буквально с первых шагов ощутить эффект для своей работы и затем поэтапно наращивать свои знания и навыки программирования. Но при этом нужно иметь в виду одну важную истину: для перехода к серьезной профессиональной разработки только опыта будет недостаточно — в какой-то момент потребуется изучения теории.

В начало статьи