НОВОСТИ   БИБЛИОТЕКА   ЭНЦИКЛОПЕДИЯ   КАРТА САЙТА   ССЫЛКИ   О САЙТЕ  






предыдущая главасодержаниеследующая глава

Моя "машина времени". Р. Симонян

Записка программиста
Критерий выбора

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

ЭВМ, компьютер, информатика - эти слова не сходят с газетных страниц и экранов телевидения. И люди, далекие от этих дел, в затруднительных ситуациях предлагают подключить ЭВМ - она, мол-де, спасет. К примеру, приходится часто слышать: как в большом магазине замигают дисплеи, и этим решатся многие проблемы покупательского спроса. И создается впечатление, что ЭВМ обладает каким-то чудодейственным сверхумом. Но чуда нет. Машина умна только умом человека. И этот человек - программист.

Программирование как наука зародилось в пятидесятых годах, и тогда же стали готовить в университетах и первых специалистов по программированию. Проблема выбора перед первыми программистами не стояла. Нас выбрала профессия. Так, я думаю, было и в космонавтике, и во многих других отраслях при рождении профессии. Нам нужно было только сказать "да" или "нет". Но область отбора была ограниченной: выбирали среди студентов математических факультетов. Большинство из нас были одержимы математикой, а о том, что мы будем делать, став программистами, не знали толком и наши преподаватели.

Но новизна, а отчасти и загадочность нового дела определили наш выбор: лучшие студенты курса специализировались по вычислительной математике. Позже эта специальность стала называться прикладной математикой.

Итак, математика. Но достаточно ли этого?

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

Так что же требуется от программиста? Он должен: уметь разобраться в любой проблеме, понять основную цель исследования; выделить основные факторы и отбросить несущественные; выявить те области, где можно применить теорию; разделить проблему на части и установить связи между ними; объединить частные решения в четкое и изящное решение всей задачи; оценить экономическую эффективность предлагаемых решений; выразить решение на языке, понятном и человеку, и машине; в случае неудачи подавить самолюбие и начать все сначала.

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

Мы привыкли слышать, что математические способности проявляются рано. Но как их распознать, если математический гений Лобачевского не был понят не менее выдающимся его современником Остроградским, а теория Галуа была понята учеными спустя почти сто лет с момента ее открытия. Гении появляются, когда бьет их час. И трудно сказать, чья трагедия больше: гения, не понятого современниками, или его современников, не сумевших понять гения. Благодаря математическому гению появились и компьютеры, и программирование.

Но речь не о гениях, которые открывают миры и раздвигают границы познания. Речь о способностях, необходимых для того, чтобы принимать эти открытия, осваивать их и применять на практике.

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

Язык математики - это умение мыслить логически. Но только этого языка для программиста мало. В отличие от других специалистов, программист должен научить "мыслить" компьютер, а для этого он должен знать язык, который понимает компьютер, то есть алгоритмические языки. Язык программирования имеет грамматику и синтаксис, и его надо выучивать и помнить.

Поколения ЭВМ меняются примерно в течение десяти лет. Уже сейчас насчитывается свыше 2000 языков программирования, Следовательно, программист должен постоянно учиться, осваивая новые ЭВМ, новые языки, новые сферы применения компьютеров.

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

Во всем мне хочется дойти 
До самой сути. 
В работе, в поисках пути, 
В сердечной смуте. 
До сущности протекших дней, 
До их причины, 
До оснований, до корней, 
До сердцевины. 

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

Искусство или ремесло

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

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

Чему же верить? А верно то и другое. Программирование - это наука и включает в себя и творчество, и мастерство.

Постижение и открытие новых закономерностей - искусство, их применение в повседневной практике - ремесло. В пору своего зарождения программирование больше было сродни искусству, так как не были выработаны основные законы и правила программирования. Сам процесс был строго индивидуален. Даже один и тот же метод решения одной и той же задачи в программе каждого программиста преображался до неузнаваемости. Мы не читали программ друг друга. Легче было написать новую, свою программу, чем найти ошибки и исправить их в чужой работе. Когда же я научилась читать программы своих коллег, с удивлением обнаружила, как они похожи на авторов. Даже такие черты характера, как суетность и непоследовательность, строгость и рациональность находили адекватное отражение в стиле написания программ. Как в стихах, в программе виден был характер автора. Но эти времена ушли безвозвратно. И сейчас никто не станет оспаривать тот факт, что программирование - наука, а на уровне непосредственного написания, отладки, тестирования программ - ремесло. Плохо это или хорошо? И то, и другое. Работа по правилам помогла поднять на новый организационный уровень процесс программирования, позволила повысить производительность труда целой отрасли, но несколько померк ореол избранности этой профессии.

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

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

Не ремесло ли это? Да, ремесло. Но результат зависит от того, кто им владеет, мастер или простой ремесленник.

В настоящее время наука программирования интенсивно развивается именно в том направлении, чтоб от искусства перейти к ремеслу. Разрабатываются научные методы анализа систем, исследования операций и постановки задач. Что же касается документирования, то тут и вовсе все доводится до стандартов, и программисту останется только вставлять в готовые тексты свои идентификаторы (имена). Да и как иначе? Профессия из исключительной должна превратиться в самую массовую.

Наука всегда стремится необъяснимое из сферы чувств перевести в сферу разума. Но можно ли отделить чувство от разума?

 О мир, пойми! Певцом - во сне - 

                               открыты 

 Закон звезды и формула цветка. 

Я же смею утверждать, что законы движения небесных тел и соцветие "функций роз" открыты Математиком. И кто знает, сколько в Математике Поэта?

Конфликт с собой

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

Сложное существо человек, и трудно отбросить другие факторы и оставить только те, что связаны с профессией. Попробую. Как влияет профессия программиста на личность? В чем ее отличие от других профессий? Во-первых, это напряженный и постоянный умственный труд. Нерешенная задача или ненайденная ошибка не отпускают ни дома, ни в гостях, ни во сне. Затяжные стрессовые состояния - обычное дело. Во-вторых, в программировании приходится выполнять одни и те же логические действия, это так же утомляет, как всякое однообразие. В-третьих, работа с компьютером на этапе отладки создает иллюзию полноценного общения с кем-то разумным. Так оно и есть. Но мы общаемся с собой, так как программа есть продукт твоего разума. И удачи, и ошибки принадлежат тебе, следовательно, и раздражение надо адресовать себе. Но с этим смириться трудно, и ты злишься на компьютер. В-четвертых, после такого напряженного общения с самим собой через ЭВМ не остается сил на общение с себе подобными. А человек должен радоваться, злиться, любить, страдать. Компьютер не способен на это и научить его этому нельзя.

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

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

В юности я попыталась вывести формулу гармонии:


А в стихах это выразилось так:

В моих стихах есть два противоречья - 
Противоречье чувству и уму. 
С утра мне чувство нагадает встречу, 
А ум ее разрушит к вечеру. 
Так и живу, послушен двум друзьям. 
Один покинет - сразу станет скучно, 
Уйдет другой - и я исчезну сам. 

"Дух, полный разума и воли, лишенный сердца и души", который программист вкладывает в компьютер, может стать отрицательной силой, если человек не позаботится о постоянном развитии двух половин: Чувства и Разума.

Будущее

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

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

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

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

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

Я думаю, что в двадцать первом веке наука программирования станет богаче и разнообразнее, а профессия программиста - самой массовой и престижной. И если программист будет на уровне требований своей профессии, то каким прекрасным станет человечество! Сколько сил и времени освободится для искусства, науки, украшения жизни, общения людей друг с другом. Эпоха компьютеризации только начинается. Дорога в будущее открыта.

предыдущая главасодержаниеследующая глава










© GENLING.RU, 2001-2021
При использовании материалов сайта активная ссылка обязательна:
http://genling.ru/ 'Общее языкознание'
Рейтинг@Mail.ru
Поможем с курсовой, контрольной, дипломной
1500+ квалифицированных специалистов готовы вам помочь