Программирование

ПРОГРАММИРОВАНИЕ

В студенческие годы я любил цитировать Чехова: "Программист супротив математика что плотник супротив столяра". Нам читали Фортран, но экзамена не было. Я прогуливал лекции; однажды пришел - а там: i=i+1 - что за чертовщина?! А однажды пришел на практическое занятие; преподаватель дал всем задание - написать программу, вычисляющую факториал. И ходил по рядам, помогал, если у кого-то что-то не получается. Подошел и ко мне; не знаю, понял ли он, что я ни в зуб ногой, но за минуту он объяснил мне весь Фортран. Экзамена-то не было, но в конце 5-го курса была практика. Помню, что написал программу, ищущую минимум функции; и протестировал ее на какой-то совсем простой функции нескольких переменных. Каким-то чудом все заработало с первого раза (я тогда этому даже не удивился, это потом узнал на опыте, что самую простую программу нужно  долго отлаживать).

В моей жизни был еще только один подобный случай. Когда мне было 10 лет, я ходил в бассейн в Дом пионеров на Миусской площади. Но плавать толком так и не научился. Как-то заболел, пропустил два-три занятия, пришел, а тренер говорит: "Где же ты был? Я уже взял на твое место другого мальчика. Ну ладно, обгонишь его на 25 метров - оставлю тебя в группе". Мальчик был младше меня. Мы поплыли, но я знал, что дело безнадежное - я не проплыву 25 метров вообще. Ну, проплыл метров десять, отстал, вылез из бассейна и больше уже туда не ходил. Но немного раньше наоборот заболел наш тренер, и за нашей группой присматривал тренер из другой группы, кажется женщина. Она мне сказала: "Плыви на спине" - "Я не умею". Тогда она протянула мне длинную алюминиевую палку: "Держи, ложись на воду, выпрямись; теперь отпускай палку и плыви". Я отпустил палку и поплыл, а она пошла к своей группе. С тех пор больше десяти лет я плавал только на спине (ну, кроме описанного выше злополучного случая).

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

В общем все у меня получалось не очень хорошо, и я решил резко сменить направление - переквалифицировался в массажисты. 25 лет проработал в поликлинике.

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

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

Наконец полгода назад я взялся за Питон. Сперва мне показалось, что все совсем не так страшно, как это представлялось: синтаксис конечно отличается от тех языков, которые я знал, но не слишком сильно. Постепенно стали проявляться разные трудности, но вроде не столь уж критичные. Однако дело все-таки шло намного медленнее чем хотелось. Думаю, что я бы вообще увяз, и отказался бы с позором от попыток научиться современному языку, даром бы только время потратил, если бы неожиданно не подружился с гуглевским роботом Джемени. Молодые друзья давно мне советовали научиться пользоваться искусственным интеллектом (даже не в связи с программированием); ровесники мои наоборот относятся к роботам очень скептически; впрочем, не все, некоторые очень успешно сотрудничают с ними. Я начал потихоньку задавать какие-то вопросы, на которые GPT отвечал иногда очень непллохо. Я попросил его дать мне списочек работ, идущих в русле А.П.Назаретяна - он это сделал; жаль, у меня как-то не достает времени, чтобы в них погрузиться. Месяца четыре назад GPt сделал очень неплохой обзор сайта "Темного леса", указал на ряд недостатков. Попросил я его и рассказать что-нибудь о влиянии микрофлоры кишечника на поведение человека, он что-то ответил, а я рассказал ему свои соображения. Он спросил, хочу ли я, чтобы он сварганил из этого хорошую статью - я ответил: "Да"; но он сказал, что для этого я должен подписаться (т.е. видимо заплатить). Платить пришлось бы вероятно очень немного, но меня это пугает - очень заморочно - платить через компьютер. Да и нет времени (хотя знаю: обычно это только отговорка), чтобы всерьез заняться микрофлорой. А в гости к Джемени я попал как-то случайно: искал на Гугле информацию про какую-то питоновскую функцию - и он меня переключил на ИИ (вероятно я нажал для этого на какую-то кнопочку - не помню). И Джемени мне теперь все растолковывает с терпением немыслимым для живого человека, пишет иногда целые небольшие программы. В них почти всегда оказываются использованными какие-то возможности Питона, о которых я не догадывался; он терпеливо мне их объясняет, если я об этом прошу. Правда, если я его спрашиваю: "Почему моя программа не хочет работать?" - он обычно предлагает самые фантастические ответы; но в конце концов все-таки с его помощью удается выйти на причину. А иногда он сразу указывает на ошибку. Мне говорили, что для программистов лучше Клод, а не Джемени. Я попытался туда зайти, долго регистрировался, но в конце концов он извинился и предложил повторить попытку в другой раз.

Да, сейчас все в сфере IT меняется не так быстро, как сорок лет назад; но все же с 90-х годов все успело измениться до неузнаваемости. В моих программах на Паскале два-три раза стояло в первой строке: uses DOS, uses crt, но в большинстве - никаких uses. А теперь почти любая крошечная программка начинается с import, а в большой программе, которую я принялся писать, этих импортов уже штук двадцать. Так что мало того что я до сих пор не знаю некоторых хитрых возможностей собственно Питона, но нужно еще знать массу функций из массы модулей, некоторые из которых были установлены на мой компьютер вместе с Питоном, а некоторые приходится скачивать из интернета, что совсем просто: достаточно сказать pip. Но разобраться в этом море было бы совершенно невозможно без помощи Джемени. Самым приятным его подарком была крошечная программка на Питоне, превращающая docx в html, причем не так, как это делает Word, а выдает очень экономный файл с очень небольшим количеством тегов; при этом форматирование конечно теряется, но его и не жалко: все равно если текст был приготовлен для распечатки, то для интернета оформление нужно менять. Так что теперь мне уже никогда не придется открывать Word (хотя программа эта вероятно сама открывает Word, так что иметь его на своем компьютере видимо нужно; но работает она гораздо быстрее чем у меня открывается Word - нажал на кнопку и вот у меня целая группа файлов сразу превратилась в html). Уверен что в питоновских библиотеках есть средства и для работы со всякими другими форматами, как нашлись для работы с doc и docx. Так что в своих мечтах я уже властвую над файлами любой природы; не говоря уже о каталогах на своем компьютере.


Рецензии