Про війну, атомні станції і гуманізацію автоматизації

Всім привіт! Я Саша Каленюк восьмий рік працюю на компанію Materialise, де ми разом з командою алгоритмістів робимо крутезну бібліотеку для всіх можливих задач зі сфери 3D-друку.

Втім, сьогодні я хотів би розказати про те, чим я займався до Materialise, в 2014-му, коли війна тільки-тільки розпочалася і ніхто не вірив, що вона триматиме ще вісім років.

Ще я розкажу про те, як війна закінчиться, але не у військовому, а виключно у професійному сенсі.

Як було спочатку

У 2014-му я працював у Сєвєродонецькому «Імпульсі» інженер-програмістом першої категорії. Займався науково-конструкторською роботою, читав код на асемблері, писав на Сі. Одразу маю попередити, що жодної конкретики розкривати я права не маю. Компанія займається автоматизацією атомних станцій і до нерозголошення відноситься дуже серйозно. Втім, навіть без конкретики історія має вийти цікавою.

Отже, читав, писав, програмував, а потім нас окупували. Спершу, пацани не стидалися, каталися на бетері, вимахували аквафрешем, кричали «Росія-Росія», збиралися йти на Київ. Потім з Києвом щось у них не пішло, то вони попустилися, почали розказувати, що всі як один тутешні, але чомусь зі Стаханова. Потім щось у них зовсім не пішло, ЗСУ підвели артилерію, почалась осада. В місті почалась нестача найнеобхіднішого — дешевого алкоголю. Ситуація ставала вибухонебезпечною.

І отут наша лабораторія почала втрачати людей. Ні-ні, це було за вісім років до Бучі, до того ж на сході, де Росія ще сподівалася обійтися підкупом і пропагандою. Просто не у всіх виходить працювати під акомпанемент мілітарних органів і флюгельгорнів. Хтось вирішив сходити в першу за 10 років справжню відпустку, комусь треба було провідати родичів трохи далі від фронту, хтось вирішив розглянути нові захопливі кар’єрні можливості. Особисто для мене це означало лише одне, саме те, що будь-яка криза означає в будь-якій корпорації — кидай свою науку, бери «лопату» і розгрібай поточку.

Що таке поточка в компанії, яка автоматизує атомні станції? Знов таки, я не можу розкривати подробиці, але хочу. Тому спробую зробити історію із загальновідомих фактів. Загальновідомо, що атомна енергетика знаходиться під пильним оком найрізноманітніших регуляторних органів. Все, що може бути зарегульовано — має бути зарегульовано. Вся проєктна документація пишеться за встановленими нормами і проходить обов’язковий норм-контроль.

Ще відомо, що для того, щоб щось автоматизувати, треба зібрати дані з сенсорів, обробити їх певним чином і потім тільки робити з даних якісь висновки автоматично або разом з оператором. Можливо, менш відомо, але все ще відомо, що обробка ця пишеться не на [вставте сюди наймоднішу мову програмування за власним відчуттям модності].

Отже, якщо ви уявляєте собі, що поточка в компанії, яка автоматизує атомні станції — це коли тобі на стіл кладуть кілька кілограмів детальних специфікації з тим, щоб ти перетворив їх на код такою мовою, на яку навіть статичного аналізатора не знайдеш, то ви, мабуть, правильно уявляєте. Або неправильно, я не можу розголошувати.

Перші дві програми я написав руками. Це не складно, просто треба бути уважним і обережним. Жодної творчості, жодної імпровізації — береш специфікацію і рядок за рядком, день за днем, перекладаєш її так, щоб було зрозуміло комп’ютеру. Втім, на третій програмі я вже почав відчувати, що комп’ютером стаю і я сам.

Людині важко робити монотонну роботу без права на помилку. Накопичується втома, втрачається мотивація, мозок покривається метафоричними мозолями. От якби була така програма, яка зробила б цю марудну роботу за мене! Така програма, яка вміє перетворювати символи на інші символи, така що робить лексичний аналіз, будує синтаксичне дерево і перезбирає його в граматиці іншої мови... А, стоп, є така програма. Це ж звичайний компілятор!

Що стало

Наступного дня, замість того, щоб писати третю програму за встановленою формалізованою специфікацією, я написав три без жодної бюрократії:

  • перша парсила специфікації і будувала машиночитний опис даних;
  • друга парсила ту ж специфікацію, але будувала програму для їх обробки;
  • а третя перекладала результуючий код зі спеціалізованої мови на стандартну Сі, бо працювати без статичного аналізатора — це зайві нерви, а аналізатора на ту спеціалізовану мову не існує в природі.

А ще через день я здав всю поточку на валідацію, щоб повернутися до досліджень.

Те, що я зробив було неправильно, нечувано, не прийнято. Але, в принципі, і не заборонено. Скажу чесно, якби не війна, я би не ризикнув відходити від всталеного процесу. Робити як кажуть — це просто і безпечно. Комфортно, хоча і нудно. Але фоновий рівень ризику за вікном зробив так, що ризик лабораторного працівника, який наважився йти проти процесу, взагалі перестав сприйматися за ризик.

А потім був кінець липня. Сєвєродонецьк звільнили. Ви, можливо, думаєте, що на сході живе суцільна вата і сам факт звільнення добив мораль народонаселення, змученого браком дешевого алкоголю, але ні. Я добре пам’ятаю той день. Зранку було чутно стрілянину, не ходили маршрутки, люди теж не дуже виходили на вулицю. «Стаханівці» тікали моєю вулицею, жодного аквафрешу в них на машинах я вже не бачив.

Десь ближче до полудня стрілянина скінчилася і люди висипали. Нормальні, веселі, скучили за нормальним життям. Я пішов перевірити, чи не з’явився, бува, дешевий алкоголь, так біля Хитрого ринку якийсь дід вже неметафорично грав на баяні. В той момент я зрозумів, що зовсім не знаю власних сусідів.

Колеги здебільшого повернулися. Життя налагодилось. Хтось зробив свої висновки із цієї всієї пригоди, хтось не зумів. Я зрозумів, що не розуміти — це нормально. Не розуміти власних земляків, не розуміти мотивацію русні, не розуміти, чому рік за роком інженери-програмісти першої категорії витрачають своє життя на перекладання формальної специфікації з однієї нікому не потрібної формальної мови на іншу.

Нерозуміння — це просто факт життя, який існує незалежно від нашої про нього думки, майже як погода, або місце народження.

Перепідготовка

Втім, ми можемо вибирати те, як саме ми реагуємо на речі, яких не розуміємо. Ми можемо сприймати їх як погоду, а можемо міняти, як мікроклімат. Наступні вісім років я витратив на те, щоб піддати сумнівам все, що я знаю про програмування. Почав міняти підходи, пробувати нові або дуже старі методи — і це дало свої плоди. Я став настільки продуктивним інженером, що в мене вистачає часу і сил на роботу, книжку, і от цю ще конкретно статтю.

Код для геометричних алгоритмів я майже не пишу, за мене це робить система комп’ютерної алгебри. Натомість код для сайту з «обучалками» я, навпаки, пишу з нуля для кожної сторінки, щоб не розводити залежностей. Код на один раз я фігачу на С++, а код навічно, навпаки, — на старому макроасемблері. Я роблю те, що робити не прийнято, але секрет в тому, що чому саме не прийнято — ніхто насправді не розуміє. Я розумію, що ніхто не розуміє, і роблю як хочу. Це свобода, при чому ще і така свобода, яка непогано оплачується.

Що буде далі

Отже, як скінчиться ця війна? Перемогою. Перемогою військовою, моральною і інтелектуальною. Я знаю, багато з вас, особливо ті, кого війна зачепила лише у 2022-му, зараз відчуваєте сум’яття і непевність. Ваш світ раптом став мінливим, ваші амбіції і сподівання крихкими і марними. Добре. Бо насправді світ не змінився, змінився тільки ваш світогляд. Як казав Джон Кліз: «The world is a madhouse. Always has been».

Але що вас відрізняє від самих себе з минулого — це готовність до цієї всюдисущої непевності. Згадайте себе у лютому, згадайте у березні. Згадайте себе 15 хвилин тому. Бачите?

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

Ця війна стане для вас найціннішим навчальним досвідом. Унікальним, бо насправді в жодному Гарварді не навчать сприймати реальність такою, яка вона є. Непевною, незговірливою, неготовою до консервації на бібліотечній полиці.

І вийдете ви з цієї війни не просто переможцями, а ще і випускниками.

Сподобалась стаття? Натискай «Подобається» внизу. Це допоможе автору виграти подарунок у програмі #ПишуНаDOU

👍ПодобаєтьсяСподобалось18
До обраногоВ обраному0
LinkedIn
Дозволені теги: blockquote, a, pre, code, ul, ol, li, b, i, del.
Ctrl + Enter
Дозволені теги: blockquote, a, pre, code, ul, ol, li, b, i, del.
Ctrl + Enter

якщо є бажання писати і є про що( я чомусь думаю, що є), то пиши, а ми будемо читати. Реально легко читається.

Дякую, Саша. Чудова життєва позиція. Ми переможемо!

Дякую. Ви — крутий!

Чувак, це просто мегакруто!
І текст, і погляд на ситуацію, і висновок! Все круто!
За таких подій, добряче переосмислюєш своє буття.
Прямо хочу потиснути тобі руку!
— мені зайшло)

Підписатись на коментарі