Вітаю

Лисеня з обкладинки блогу

Це мій особистий блог – сайт, зібраний на Astro і розгорнутий на Cloudflare Workers. Доречний прихисток для людини, яка роками копирсалася в інфраструктурі та оптимізації швидкодії.

У мене немає чіткого плану, куди все це зайде. Зараз мене цікавить програмування зі штучним інтелектом і робочі процеси для тих, хто не програмує, – подорож водночас цілком нова й дивно знайома, наче повернення до рідного міста після довгих років розлуки.

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

Як я став програмістом. Спойлер: не став.

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

І все ж захват не зник остаточно. Мені й далі було цікаво, що це за світ, у якому живуть «айтішники й айтішниці», – світ, що ніби працював за іншими правилами, де абстрактні символи ставали відчутною реальністю.

Моїм справжнім покликанням – так я принаймні вважав – була розробка продуктів і управління ними. Ця робота захоплювала мене до глибини. Рахувати прибутки, розбирати метрики, знаходити закономірності в цифрах – усе давалося природно. Керувати командами й великими проєктами, давати розумні, зважені досвідом поради клієнтам, які довіряли моєму судженню: ось де моє місце. Так я вірив.

А потім настала мить ясності – гостра, як зимове повітря.

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

Я зрозумів, що хочу робити речі власними руками.

– конференц-зала, сотня голосів

І знав – з незатишною певністю, – що всі ті роки менеджменту не навчили мене робити хоч що-небудь власними руками. Я починав з нуля. Було страшно. Було захопливо.

Але справжній переворот зробив поступ штучного інтелекту та побудованих навколо нього робочих процесів – він не просто розпалив у мені інтерес до перспектив, а змусив серйозно переглянути все, що я роблю і як я це роблю. Це був початок цілком нової дороги. Я став тим, кого дехто називає «vibe coder», а ця роль, схоже, поволі перетворюється на «AI engineer» – людину, яка вчиться користуватися інструментами, здатними пришвидшити роботу вдесятеро, але мусить повсякчас лишатися рефлексивною й гнучкою.

Хай там як, нижче – коротка хроніка того, чому програмування знову стало для мене привабливим. Причина номер один: воно ніколи не було моєю щоденною роботою, а отже, я міг підходити до нього з цікавості, а не з обов’язку.

Програмований калькулятор

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

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

Я пам’ятаю це відчуття: зігнутий над калькулятором, тьмяне світіння зелених цифр, палець, що ниє від дрібних клавіш, – і раптом воно запрацювало. Калькулятор відповів. Він думав. Він грав. Таке не забувається.

Assembly

Коли з’явилися перші ПК, я з головою пірнув у Assembly – вабила обіцянка працювати впритул до чогось фізичного, відчутного. Assembly – це низькорівневе програмування, майже інтимно близьке до заліза: електричні імпульси, що біжать по схемах, здавалося, можна намацати пальцями.

Книжка була формату A4 і мала, певно, сторінок шістсот – щільно набита технічними схемами й таблицями регістрів. Читати про переривання та адресацію пам’яті було наче осягати таємну архітектуру самої реальності. Усе складалося докупи на найпервиннішому рівні.

Моєю першою амбітною програмою була спроба видобути звук із внутрішнього динамічка ПК – не просто писк, а щось наближене до музики. Я витратив години на те, щоб її написати й запустити, уявляючи тріумфальну мить, коли з кремнію поллється мелодія.

Натомість комп’ютер намертво завис. Заклинило. Скільки не тисни Ctrl+Alt+Delete – жодної реакції. Довелося тягнутися до кнопки живлення.

На цьому моя кар’єра програміста рівня заліза почалася й закінчилася.

Forth

Потім мені трапилася невеличка книжка, яка змінила моє уявлення про програмування, – «Thinking Forth» Лео Броуді. Це був не підручник, а філософія. У ній ішлося про те, як створити власну мову програмування: спершу пишемо свої команди, тоді вживаємо їх усередині інших команд, нарощуючи шар за шаром, наче цибулину, аж поки не постане цілком своя мова, скроєна точно під конкретну задачу.

Після суворого бетону Assembly Forth здавався мало не програмуванням природною мовою. Він був елегантний. Він був гарний. Він мав сенс.

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

Pascal, Basic та інша нудьга

У старших класах, а потім в університеті мови програмування були частиною навчальної програми. Ті, хто їх викладав, не мали до них ані краплі запалу – вичитували матеріал, як склад продукту з упаковки: сумлінно й неживо. Було справді нудно й геть невесело.

Хоч на тлі однокурсників я тримався непогано – все-таки мав досвід у писанні алгоритмів і розумів логіку, – душа до цього не лежала. Та іскра, що спалахувала, коли я лишався сам на сам із калькулятором чи зачитувався «Thinking Forth», у тих аудиторіях під лампами денного світла не займалася жодного разу.

Навчання знову стало обов’язком. А обов’язок убиває радість.

Знову трохи веселощів: хакерство і мережі

Цікаве почалося на останніх курсах університету і далі – з приходом інтернету й пошукових систем. Я стажувався у фірмі, де тодішніми пошуковиками – передусім AltaVista з її чистим інтерфейсом і потужними булевими операторами – цілеспрямовано видобували з мережі корисну інформацію.

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

Виявилося, що я маю до цього хист. Відтоді я міг знайти в інтернеті майже все, що мені було потрібно. Я вважав це найкориснішою навичкою на наступні років п’ятнадцять-двадцять. (І не помилився.)

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

Утім, далі цієї розвідки справа не пішла. Азарт був у тому, щоб зрозуміти, а не скористатися.

Excel і зовсім уже нудні речі

Як продуктовий менеджер я працював із велетенськими масивами даних, а інструментом для роботи з даними був Excel. Я став напівбогом Excel: зведені таблиці, складні формули, дашборди, що перетворювали сирі цифри на стратегічні висновки. Це було по-своєму по-справжньому цікаво. Усі мої колеги теж володіли Excel досконало – ми говорили спільною мовою комірок і посилань.

Хоча зрештою це дійшло до абсурду.

У тому величезному проєкті, який я згадував раніше, усім керували з однієї неосяжної таблиці Excel: синхронізація команд, контроль результатів, пошук прогалин, прогноз термінів. Кому потрібен Microsoft Project чи інші спеціалізовані системи керування проєктами? Excel був нашим усесвітом, нашою реальністю, нашою істиною.

Озираючись назад, я розумію: ми тягнули цей інструмент далеко за межі його призначення – але володіли ним так добре, що він усе одно тягнув. У цьому є урок про впертість.


Назад до коду? Не зовсім

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

То чи програмував я насправді? Ну, дещо я почав вивчати з нуля: онлайн-курси з мов програмування, відеоуроки, товсті документації. Але все це виглядало як непроникна брила інформації.

Тож я пішов роздивлятися всілякі no-code інструменти, передусім для створення сайтів. Але не нудні чи «прості» штуки на кшталт WordPress (якого я терпіти не міг – мабуть, аж до останніх двох років, коли він нарешті мене підкорив). Мені хотілося чогось сучасного й свіжого, як Webflow.

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

Радість Linux і всі ці милі кольорові літери

Десь у ті часи я міняв ноутбук і вирішив, що час іти від Windows. Я втомився від його розбухлості й від того, як він усе вирішував за мене. А оскільки Mac я тоді терпіти не міг – за впертість, з якою він робив геть усе замість мене, ховаючи складність навіть тоді, коли я хотів її бачити, – я подався до Linux.

Мені пощастило натрапити на чудовий дистрибутив – Manjaro в редакції KDE, – який відтоді став тільки кращим. Я насолоджувався ним сповна. Усі ці зелені літери на чорному екрані (хоч утіху від налаштування колірних схем я відкрив для себе досить швидко) і можливість керувати кожною дрібницею свого щоденного інструмента будили спогади про давні часи.

Згодом це допомогло мені неймовірно. Виявилося, що все сучасне адміністрування серверів – і навіть програмування на Mac – вимагає тих самих навичок, команд і понять. А засвоїти їх набагато легше, якщо застосовувати щодня на власному ноутбуці, доки вони не осядуть у м’язовій пам’яті.

Моя початкова прихильність до GUI (графічних інтерфейсів) поволі згасала, аж доки я не зрозумів, що деякі інструменти CLI (командного рядка) – це крихітні й дуже потужні помічники. А оскільки їх і далі підтримують ентузіасти, вони стають дедалі кращими. Швидшими, елегантнішими, продуманішими.

Аж поки одного дня не винайшли Claude Code – теж інструмент командного рядка. І цей б’є всіх. Але про це згодом.

JS – мій новий улюблений інструмент

Десь дорогою я відчув таку впевненість у собі, що вирішив: JavaScript мені по зубах. Саме тоді серед розробників знову прокинувся інтерес до чистого (Vanilla) JS. Браузери отримували все кращі рушії з можливостями, які спрощували саме програмування й зменшували потребу у важких фреймворках на кшталт React, Angular чи Vue та в складних конфігураціях Node.js.

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

Разом із командою колег я зробив на Vanilla JS кілька доволі швидких проєктів. Мене глибоко тішило, як гладко все йшло, як гарно все виглядало (саме тоді я вхопив ідею Web Components) і як швидко воно працювало – з частковим оновленням сторінки й розумним керуванням станом. Це була справжня втіха, саме та, якої я шукав.

Але то була вже сама межа моїх можливостей, і далі в цьому напрямку я майже не просунувся. Я вийшов на плато.

Знову мережі: сервери, мережі й нарешті щось цікаве

Далі стався ще один поворот у бік мереж: керування розгортанням серверів, робота з віддаленими суперкомп’ютерами, вилизування мілісекунд швидкодії, оптимізація запитів до бази даних. Усе це повертало мені відчуття тих ранніх днів, коли пробратися через мережу в комп’ютер «сусіда» було так заборонено й так п’янко.

У цей період я почав працювати з Docker, Git, Nginx, Amazon EC2, дроплетами Digital Ocean, віддаленими скриптами, SSH та іншою чудовою інфраструктурою. Скажу так: цей світ із його точною логікою та вимірюваними покращеннями тішить мене й досі.

Але після року вилизування Nginx – налаштування HTTP/2, потім HTTP/3, фільтрація ботів, одержимість оптимізацією кешування – і після того, як безліччю дрібних правок я довів час завантаження сторінки (PageSpeed) з чотирьох секунд до двох, мені спало на думку: цю складність варто було б віддати комусь іншому.

І я таки знайшов кращий шлях. (Підказка: Cloudflare Workers.)

Іноді найкраща оптимізація – це вибрати кращий інструмент.

$ exit 0 – дякую, що прочитали

Лис припильнує чернетки.