Наверх
Войти на сайт
Регистрация на сайте
Зарегистрироваться
На сайте недоступна
регистрация через Google

Ирина, 59 - 15 января 2011 19:52

Все
Отредактировано:20.01.11 13:38
Программирование – как искусство
(и в шутку, и всерьез)...

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

[I]Первое: программист должен обладать склонностью к разгадыванию головоломок и любить хитроумные уловки.
Второе: программирование есть не более чем та или иная оптимизация эффективности вычислительного процесса. [/I]

Свои взгляды по этому вопросу излагали едва ли не все классики программирования. Дональд Кнут утверждал программирование как искусство, понимая под этим то, что можно писать по-настоящему красивые и изящные программы, настаивая, что "составление программ сродни сочинению стихов или музыки".

Итак, все началось с поста Алексея, где предлагалось выстроить логическую цепочку от Байрона к программированию, а кончилось обобщением более серьезным, что [U]написание программ сродни написанию стихов[/U].
С Байроном и программированием ответ был найден достаточно быстро... Дочь поэта, леди Ада Лавлейс, считается первой женщиной-программисткой. Абстрагировавшись от Ады, удалось найти еще два интересных решения задачи:

Байрон -> стихи -> арабское "байт" (стихи) -> байт единица сохранения информации в компьютерах –> программирование

Байрон -> Don Juan (поэма) -> Маньяк -> MANIAC (компьютер)-> Джан фон Нейман -> программирование
(хотя переход "Don Juan -> Маньяк" видится не точным. Но зато красиво в целом, поэтому - принимается! )

Так вот, в момент составления логической цепочки выяснилось, что программирование воспринимается со стороны весьма прозаично:

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

И вот с этим захотелось не согласиться.

Мое мнение, программирование - благородное ремесло, проявление творческого начала и средство развития души. Ни больше, ни меньше. (смеюсь)

Вот есть в программировании нечто малодоступное и весьма удивительное для посторонних – это КРАСОТА. Качество программы легко оценить, и оценивается в процессе работы. Но, пожалуй, лишь сам программист знает, насколько красиво или не очень то, что он сотворил. Конечно, можно утверждать, что этого "никто не видит"...
что важен "результат"... что изнанка, недоступная пользователям, не очень-то и важна...
И тем не менее, это показатель.
Чем квалифицированнее, чем опытнее программист, тем совершеннее его детище. Программу можно написать, используя тысячу команд, а можно - лишь сто... Можно продумать алгоритм, который будет более гибким и совершенным, и потребует меньших временных затрат исполнения. Будет более понятен. Удобен. КРАСИВ. Вот оно это слово!
Красота – это человеческое в программировании. И понимание красоты ставит программиста в то же отношение к созданной им программе, как поэта к своему творению.

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

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

В программировании мы сталкиваемся с ЧУДЕСАМИ. Подчас невольно забываешь, что в мире программирования нет места абсурду, что все осмысленно и имеет свою причину. Чудеса случаются, и это уже воспринимается, как должное. Природа этих чудес вполне объяснима, и все же должно пройти немало времени после того, как работая над программой, исследуя причины и связи, наблюдая и делая выводы, ища дефекты, и устраняя их, программист выдаст сакраментальную фразу: "Чудес не бывает!"
Бывает. Программисты встречаются с ними на каждом шагу, планомерно устраняя и исправляя ошибки: неправильно написанный код... дыра в программном обеспечении... не до конца продуманный алгоритм... и - начинает происходить то, что невозможно в принципе. Популярная фраза Зеленого из "Тайны Третьей Планеты": "Что у нас плохого?" - это сюда, к программистам. (вздыхаю)

Главные качества, что даются трудом, опытом и временем программисту - это СМИРЕНИЕ и ТЕРПЕНИЕ.
Почему программа не работает, как требуется? Потому, что так написана. Программист тестирует программу, вчитывается в нее, ищет и, наконец, находит ошибку.

(продолжение в комментариях)
* первая женщина-программист, красавица Ада Лавлейс, дочь поэта Байрона
Добавить комментарий Комментарии: 71
Валентина
Валентина , 60 лет23 января 2011 15:22
Для меня программисты -это вообще люди далекие моему пониманию, т. е. особенные.
Столько всего в голове удержать! Столько анализировать и фантазировать сможет только талантливый программист!
Я просто восхищаюсь!!! :rose:
Показать ответы (11)
Алексей
Алексей , 54 года16 января 2011 00:44
Совершенно искренне поздравляю Вас с такой влюблённостью в собственную работу. Надеюсь, что это взаимно )

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

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

В очень многих видах человеческой деятельности присутствует творческое начало. И как часто мы сосредотачиваемся на рутине, не замечая за деревьями леса и за зарабатыванием денег - Обыкновенного Чуда.
Показать ответы (50)
Музыка Ветра ☂
Музыка Ветра ☂ , 89 лет15 января 2011 21:34
Для меня программирование - это что-то из области фантастики. Даже не стремлюсь приоткрыть завесу этой тайны. (*смеюсь. не по мозгам)
Ты так красиво об этом написала :inlove: Это настоящее таинство! Я всегда удивлялась, как с твоим лирическим складом характера сочетается твоя профессия. Теперь я поняла почему :) Программирование - это лирика!!! Ты счастливый человек - ты и свое "дело" любишь :angel:
Показать ответы (6)
Ирина
Ирина , 59 лет15 января 2011 19:59
(продолжение)

Может быть, это какая-нибудь мелочь: "+" вместо "-"... А, может, придется переписать значительный кусок программного кода. Вот сияя от радости, программист быстро-быстро исправляет ошибку, обновляет программу и... она по-прежнему не работает.
Все начинается по-новой: исправлен один дефект, но есть и другие!

Удивителен мир программиста, где есть своя поэзия и свои критерии оценки мира. Внимательность, нестандартность мышления, терпение, склонность к порядку и творчеству присущи среднестатическому программисту вполне.

Я думаю, это так.

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

[I]Этого никогда раньше не было.
Это вызвано к жизни тобою здесь и сейчас.
Оно живет, вызванное твоей мыслью.
И это – чудо. Обыкновенное такое чудо. Ежедневное. (улыбаюсь)[/I]

* особая благодарность поднявшему вопрос Алексею
http://loveplanet.ru/a-ljcmm/post-9414098/
Мы используем файлы cookies для улучшения навигации пользователей и сбора сведений о посещаемости сайта. Работая с этим сайтом, вы даете согласие на использование cookies.