📌 Коротко про головне (TL;DR):
- Суть історії: Як прагнення довести логічність добра через теорію ігор (дилему в’язня) стало каталізатором для подолання ігрової залежності та старту у веб-розробці.
- Ключовий інсайт: У епоху ШІ навичка писати код вручну відходить на другий план. Головним стає вміння бути Архітектором процесу, контролювати контекст та нести відповідальність.
- Результат: Створення концепту складної соціально-психологічної гри Homo Homini на React та TypeScript у 40 років без знання мов програмування.
Останнім часом здається, що все більше і більше лінії починають пересікатися, точніше вони починають сходитись в одному місці. Останнім часом у мене був ряд прагнень і бажань. Я хотів позбавитись від залежності від комп’ютерних ігор. У мене було бажання щось нове створювати, було прагнення самого процесу творення. У мене було розуміння важливості навчитись опановувати ШІ, точніше було розуміння що в нашу эпоху є тільки два вибори – або я стану рабом ШІ, або я стану його володарем. У мене було бажання вчитись програмуванню, якщо конкретно то це вивчення React, як основи для мобільної розробки в майбутньому.
Більш того – сучасна епоха домінування ШІ призвела до того, що ставати людиною яка сама буде писати код стало чимось рудиментарним (не потрібним). Більш актуальними стали навички розбиратись в процесі, вміти його направляти, контролювати і нести відповідальність, актуальною стала концепція Архітектора.
Але каталізатором події яка відбулась, події яка певною мірою сприяла здійсненню всіх перерахованих вище бажань (або як мінімум руху в бік їх здійснення), стало моє бажання доказати що добро це не рудимент і не анахронізм, не сентимент, не забобон і уж абсолютно точно не помилка. І саме про ось цей випадок, який став каталізатором, нижче я розкажу детальніше, і почну свою історію здалеку, з дитинства:)
1. Добро як «дивакуватий малий»: Від дитячої інтуїції до законів природи
Зазвичай, з самого дитинства, якось так повелось що добро і добрі вчинки наголошувалося моїми батьками як щось таке “правильне”. Але “правильним” це вважалось просто тому що так сказали, тобто без чітких наукових пояснень. З самого дитинства, до добрих вчинків мене спонукала совість, іноді інтуїція. Але вони просто “казали” – зроби ось так. Тобто добро було схоже на такого “славного малого, славного але дивакуватого”. Це можна було порівняти з тим, як на селі – є якийсь такий славний малий, людина хороша, але трохи дивакувата і незрозуміла, тому всі до нього нормально відносяться, але якихось серйозних справ не хочуть із ним мати. В певний час мого життя (приблизно з 15 до 20 років), у мене навіть було таке відчуття своєї особливості що я от ось роблю добрі вчинки навіть попри те що це трохи “дивакувато”, от який же я молодець:).
Але, з часом, а саме з часом більш глибокого вивчення психології, історії, релігії, різних книг про ефективність і саморозвиток, я все більше приходив до думки що все що ми відносили до “добра” воно насправді ніяке не “дивакувате”, а насправді має під собою набагато більше логічного підгрунтя ніж все інше. Приблизно з 20 років я все більше і більше схилявся до думки що первісно все в світі було створено якраз по законах добра, але потім самі ж люди вчинили ряд помилок і це було чимось схожим на появу вірусу, або хвороби. Якщо ми подивимось на світ природи (так би мовити в чистому вигляді, без втручання людей) то там панує мир і гармонія, там все просякнуте гармонійними стосунками взаємодопомоги і взаємного процвітання. Це, в принципі, і є добро.
Тобто, той хто створив цей світ (називайте його як хочете – Бог, вищий розум, творець і.т.п.), він створив цей світ по законам добра (ми це бачимо в світі природи). І він не якийсь там “дурник” це найрозумніша істота, і тому насправді-то “добро” воно має під собою найфундаментальніші і найвичерпніші логічні і наукові обгрунтування.
2. Математика альтруїзму: Що каже теорія ігор про довгострокові стратегії
І ось з цим протиріччям я звернувся до ШІ. ШІ погодився (хто би сумнівався:) з тим що у масовій свідомості егоїзм, цинізм і здатність «йти по головах» загорнуті в обгортку «реалізму, сили та гострого розуму». А альтруїзм, шанобливість та жертовність часто подаються як слабкість, наївність або психологічна девіація. Мовляв, «ну, він хороший хлопчик, але життя не бачив».
Я не буду описувати всіх пояснень від ШІ. Якщо коротко, то він привів багато доказів обґрунтованості “добра” з точки зору науки. Коротко напишу про один із його аргументів , тому що на нього буде спиратись моя подальша історія. Теорія ігор показувала що егоїстичні стратегії поведінки в соціумі перемагала на початку, на коротких дистанціях. Але в довгостроковій перспективі вони повністю знищували самі себе. І математичним переможцем ставали стратегії які базувались на довірі, альтруїзмі та вірності слову.
Я написав ШІ що хочу отримати якусь більш обгрунтовану базу ніж просто “мені ШІ сказав”. Тобто я попросив навести реальні книги, які є не художніми творами, а реальними науковими працями і дослідженнями які проводились авторитетними науковцями.
ШІ порадив мені наступні 5 книг:
1) Роберт Аксельрод — «Еволюція кооперації» (The Evolution of Cooperation)
2) Мартін Новак — «Суперкооператори» (SuperCooperators)
3) Ніколас Крістакіс — «Blueprint: Еволюційні витоки хорошого суспільства» (Blueprint: The Evolutionary Origins of a Good Society)
4) Роберт Райт — «Ненульова сума: Логіка людської долі» (Nonzero: The Logic of Human Destiny)
5) Джонатан Гайдт — «Праведний розум» (The Righteous Mind)
Спершу я хотів прочитати їх всі. Почав я із книги Роберта Аксельрода — «Еволюція кооперації» (The Evolution of Cooperation), і як далі буде видно, після того як я її прочитав то мене “понесло” так, що мені вже було не до читання наступних книг:).
Першою перепоною було те що я не знайшов цю книгу на рідній мові, і навіть не знайшов на російській. Але в нашу епоху соромно зупинятись від таких перепон:) Я взяв електронну версію книги (сайт www.scribd.com дозволяв безкоштовно скачати дві книги) і переклав її через перекладач DeepL (використовуючи ШІ він робить більш якісний переклад), я навіть купив за 10$ місячну підписку, вона надавала можливість перекласти здається 150 000 символів, цього якраз вистачило щоб перекласти більшу частину книги. Переклад дійсно вийшов досить непоганий, краще ніж гугл-перекладач.
Книга спиралась на теорію ігор, а саме на “дилему в’язня”. Не дивлячись на свою назву, “дилема в’язня” має універсальний характер і її можна застосовувати майже будь де. Якщо коротко то це як міні ігра в якій є два участника, вони взаємодіють один з одним, і у кожного з них є два варіанти іти на кооперацію або зрадити. Якщо обидва йдуть на кооперацію то кожен отримує по три бали. Якщо один йде на кооперацію, а інший зраджує то той хто зрадив отримує 5 балів, а той кого зрадили отримує 0 балів. Одразу може здатися що це супер вигідно – зрадити і замість 3 балів отримати 5. Але це вигідно на короткій дистанції. Тому що після зради гравець скоріш за все отримає зраду у відповідь. У випадку коли обидва гравця обирають зраду то кожен отримує всього по 1 балу. Досвідчений читач може зрозуміти що ці прості правила, насправді то, можна спроектувати майже на будь-яку ситуацію взаємовідносин між людьми.
3. Комп’ютерні турніри Аксельрода та велич стратегії Tit-for-Tat
Аксельрод влаштував комп’ютерний турнір в якому взяли участь бажаючі з 65 країн світу. Суть була в тому що кожен писав програму зі своєю стратегією ігри. І потім всі ці програми “грали” одна з одною (по 200 ходів в кожному раунді, в кожному наступному раунді пари змінювались і здається таких раундів було 5 або 6). Як і слідувало очікувати, багато хто з гравців думав як же хитро обійти всіх, як же так хитро зраджувати, щоб переграти суперника, витягнути з нього все і як можна більше отримати. Але не дивлячись на велике різноманіття різних продуманих стратегій, в першому турнірі перемогла досить проста стратегія Tit-for-tat. Вона завжди починалася з кооперації, а потім реагувала на хід суперника, якщо суперник йшов на кооперацію то вона у відповідь продовжувала обирати кооперацію. Як тільки суперник робив зраду, то на наступний крок Tit-for-tat у відповідь теж робила зраду. Але варто було супернику виправитись і знову обрати кооперацію, як Tit-for-tat на наступному кроку у відповідь обирала кооперацію.
Після першого турніру всіх учасників зібрали разом і показали всі більш переможні стратегії. Були ті хто на наступний турнір підготували максимально схожі на переможні стратегії. А були ті, хто знаючи це, підготував стратегії які по-ідеї повинні були максимально спаратизувати на цих переможних стратегіях. В другому турнірі знов перемогла стратегія Tit-for-tat.
Не буду описувати всіх подій цих турнірів, але я з неймовірним захопленням читав про них. У мене було таке враження що я читаю підручник з Історії, настільки всі події були за повадками схожі на більшість історичних подій, про те як люди підлаштовуються, шукають лазівки, ну і звісно про всім відомий “ріал-політік”.
Здається всього було проведено 4 таких турніри, і в кожному з них перемагала стратегія Tit-for-tat.
Особливість, і я би сказав велич, цієї стратегії була в тому, що вона ніяк не ошукувала опонента. Вона починала з кооперації, ніколи першою не зраджувала, але одразу у відповідь наказувала за зраду. В той же час вона легко вибачає опонента, і якщо той виправлявся то знову йшла на кооперацію. Тобто ця стратегія не перемагала домінуванням над опонентом, вона приводила до рівного успіху, до взаємовигідного процвітання обох учасників.
Підсумовуючи, це все було максимально точним і явним доказом перемоги добра. Це доводило що добро (кооперація, прощення, не намагання обдурити чи зрадити) це найвигідніша, найобоснованіша і найуспішніша стратегія.
4. Народження Homo Homini: Перенесення лабораторних теорій у сувору реальність
Homo Homini (гра-симулятор)
Це складна соціально-психологічна гра-симулятор на базі теорії ігор та «дилеми в’язня», яка моделює реальні суспільні механіки: рівень довіри, упередженість, репутацію, прощення, корупцію та комунікаційні помилки, з метою продемонструвати довгострокову ефективність альтруїстичних стратегій поведінки.
І ось тут ми повертаємось до початку статті. Саме тут і з’явилася ідея яка стала каталізатором всіх подальших подій. Мені прийшла ідея створити ігру на основі теорії ігор і “дилемі в’язня”. Доречі я такий не перший, вже існує ігра яка спирається на теорію ігор і “дилему в’язня” ви можете ознайомитись із нею за посиланням https://ncase.me/trust/ .
Але моя ідея була набагато більш глобальною, глибокою і головне – більш реалістичною. Справа в тому, що якщо брати наше реальне життя то ось ці “кооперація” – “зрада”, виглядають занадто ідеалістично-теоретично. Я би сказав що це як лабораторні експерименти в вакуумі. Якщо ж ми спробуємо перенести це все в реальність, то ми побачимо цілу купу різних факторів, які сильно впливають не процес. Нерозуміння один одного, забобони, не вміння правильно висловити свою думку, неправильне трактування вчинків інших, не вміння зробити те що планував, важкість прощення (важкість вибачити іншого), репутація і упереджене відношення, наївність і цинізм, корупція і залякування. Ці всі механіки я вирішив додати в мою гру. Моїм бажанням було максимально близько і точно відобразити реальність нашого суспільства. Певною мірою ця гра схожа на Rimworld або Dwarf Fortress, але з відсутністю бійок і з більшим нахилом в соціальні відносини і психологію.
Так як одним з моїх бажань є вивчення React і TypeScript, то я вирішив саме на них і створювати цю ігру. Вибираючи назву я зупинився на варіанті Homo Homini. Це початок відомої цитати Гоббса homo homini lupus est – людина людині вовк. Але в той же час Сенека перефразував цей вираз кажучи що людина людині щось святе. Тобто незакінчена цитата homo homini якби натякає що гравець сам обирає яких відносин він хоче.
«Homo homini lupus est (Людина людині вовк) / Homo res sacra homini (Людина для людини — щось святе)»
Зрозуміло, що я, як людина яка тільки планує і хоче почати вивчати React і TypeScript, вирішив робити це все завдяки ШІ. Але це не була ігра типу “вовк ловить яйця”. Забігаючи наперед, скажу що після того як я скинувши технічне завдання і опис архітектури ігри ШІ і попросив його порахувати всі механіки ігри, то він нарахував їх більш 45. Тому спочатку було потрібно зробити ТЗ (Технічне завдання). Це був важкий процесс. Тому що для того щоб зробити ТЗ тобі потрібно спочатку це все скласти в свої голові. Як я писав в минулій статті, було таке відчуття що місця в мої голові критично не вистачає, що критично не вистачає оперативної пам’яті. Періодично я просто йшов в туалет, тому що там було спокійно, сідав і просто дивився в одну точку, намагаючись взагалі ні про що не думати. Було бажання, хоча б ненадовго викласти з голови весь цей величезний ворох думок, щоб вона хоч трохи відпочила.
5. Програмування з ШІ: Як приборкати «хворобу Альцгеймера» нейромереж
З часом почала з’являтися наступна проблема. Обмеженість контекстної пам’яті ШІ. Коли пішла розробка складних процесів, то він почав дуже швидко все забувати. Через 2-3 сповіщення він забував що сам писав цей код і дивлячись на нього хвалив мене кажучи який класний код я написав. Іноді він казав мені що ось в цьому от моменті я не дуже вірно написав код, що насправді більш правильно написати його ось так. На це весело було дивитись, враховуючи що він сам і писав цей код.
Дивлячись на це все, я все більше і більше розумів що думка про те що ШІ повністю замінить людину не вірна. Його поведінка короткої пам’яті лишала мене можливості сказати йому щось тіпа “ну це ж ти сам писав цей код, чому він тепер не працює, це твій косяк”. Ставало зрозуміло, що хоч код пише ШІ, але відповідальність за нього повинен брати я. Контролювати процес повинен я.
З часом я природньо прийшов до ідеї створити файл “Архітектура”, в цьому файлі перераховувались всі файли проекту і стисло писалось які в кожному файлі функції і взагалі яка його роль. Ця ідея стала рятівником. ШІ почав дуже часто глючити, було враження що я спілкуюсь з літньою людиною яка хворіє на хворобу Альцгеймера. Він навідріз не пам’ятав того про що ми спілкувались 10 хвилин тому. Тому кожного разу я “приводив його в почуття” скидаючи йому детально прописаний файл “ТЗ” і файл “Архітектура”. Я вже навіть перестав йому кожного разу пояснювати що цей код насправді написав не я, я просто вислуховував його дифірамби про те як класно написаний цей код і що би він порадив в ньому змінити.
Винайдення промптингу через файли «Архітектура» та «Правила»
Мені регулярно доводилось повторювати одні й ті самі речі (такі наприклад як – сам пиши код, а не кажи мені як це зробити і.т.п.). І тут мені прийшла думка зробити ще один файл, який я назвав “Правила” там я прописував взагалі хто я, що ми з ним робимо, як він повинен себе вести. І так, в цьому файлі я відкрив йому очі на неймовірну істину – весь код насправді написаний ним:). Тільки потім, вже глибше досліджуючи питання роботи з ШІ, я дізнався що мій файл “Правила” був тим що називають словом Prompt. Ось так, коли ми прагнемо до мети, ми природно починаємо знаходити ефективні шляхи.
З часом, коли проект вже досить сильно виріс, і коли в нього було покладено багато зусиль, я почав переживати за його цілісність і безпеку. Мені стало страшно довіряти його цьому маразматику із хворобою Альцгеймера. Я порадився з ШІ, і він сказав що моя ігра вже досить сильно розрослася і контекстної пам’яті звичайного безкоштовного Gemini вже недостатньо. Він порадив мені використовувати платну версію AI Studio. Так я почав знайомитись з концепцією токенів, і тим як їх правильно використовувати. Я не буду описувати всіх деталей, тому що це зрозуміє вже тільки той хто “в теме”, але це був цінний і важливий досвід, який дав важливе розуміння як правильно використовувати платні версії ШІ, точніше – як більш економно використовувати токени.
6. Економіка токенів та вихід із режиму «мавпи з копіпастом»
Не дивлячись навіть на використання платного ШІ, я все одно підійшов до точки де зрозумів – далі, просто будучи мавпою яка копипастить код який написав ШІ, я не можу продовжувати. Як я вже казав до цього, я зрозумів що саме я повинен бути тим хто візьме відповідальність за цей проект. Саме я повинен бути тим хто контролює процес розробки, саме я повинен бути тим хто буде направляти цей процес. Маразматик хворий на Альцгеймера просто не може цього робити. Давайте чесно – якщо ШІ пише поганий код, то це не вина ШІ, це вина людини яка сказала йому цей код написати. Тобто це моя вина. Я за це все відповідальний, ШІ це просто інструмент. Тому я зрозумів – щоб далі продовжувати мені потрібно вивчити хоча б саму базову базу. Тому я відклав розробк проекту і почав процес навчання. Навчання на моєму ж проекті.
Так, в цьому всьому процессі я зустрів своє 40-річчя. Відчуття кризи середнього віку не було й сліда. Мене очікували “Наполеонівські плани”:).
В процессі розробки, я поступово і якось природньо почав знайомитись з іншими ШІ. Окрім Gemini я доволі часто використовував ШІ в VS Code. Потім я дізнався і опробував Клода. Мені так сподобалось його оформлення що я навіть подумував купити його платну версію, але поки що не наважився. Потім я познайомився з Antigravity, який по суті є більш кращою версією ШІ в VS Code. Потім познайомився з Cursor, який дуже схожий на Antigravity. Побачивши як швидко використовуються токени в платній версії ШІ, я природньо почав шукати безкоштовні аналоги:).
Так, коли я почав свій процесс навчання то я використовував для цього вже декілька безкоштовних версій ШІ. Як я вже казав – вчитися я вирішив на своєму ж коді. Давайте для кращого розуміння уявимо що можливості використовувати ШІ нормальної якості це як кошик з яблуками, тобто покористуватись трохи ним це все одно що взяти пару яблук з цього кошика. Так ось, я дізнався що кожному гугл акаунту дають свій кошик. Тому для навчання я використовував вже окремий акаунт, щоб весь кошик можна було використовувати на навчання.
7. Хакінг навчання: Нейробіологія, Claude-експерт та перша React-«Евріка»
Також під час навчання я чомусь згадав про методики асоціативної пам’яті. Тому в той час коли Gemini писав мені пояснення мого коду, я після цього брав це пояснення і “згодовував” його чату з Клодом, цьому чату була присвоєна гучна роль AI Expert in the Neurobiology of Learning, використовуючи різні наукові методики він перероблював це пояснення так, щоб воно мені краще запам’ятовувалось.
Я активно занурився в процесс навчання розбираючи код який ШІ написав мені для мого ж проекту. Спочатку все йшло дуже туго. З часом трапилась перша “Еврика”. Я раптом усвідомив, точніше зрозумів і якось ясно побачив, що означали слова ШІ що процес роботи React це Матерія => Склад => Закони фізики => Нервова система => Телевізор. Я почав розуміти що таке ці стейти, сеттери і пропси. Це знов було ось це приємне відчуття коли лінії сходяться, коли тебе ніби б’є струмом і ти кажеш “ааа! так ось про що він казав, ось як воно працює”, ніби ти нарешті зібрав пазл і нарешті зрозумів що ж було зображено на ось тих окремих кусочках пазлу.
8. Когнітивне перевантаження та iHerb-аптечка для нейронів
Але після майже 2 тижнів активного навчання трапилось щось незрозуміле. Почалось з того що якось навчання почало проходити важче. А на наступний день просто було сильне відторгнення і читаючи код ти відчуваєш що вся інформація проходить якось мимо твоєї голови, це схоже на те як ти хотів з’їсти жменю горішків, але всі просипав і в рот жодного не попало. Я спитав у ШІ що це може бути. Він сказав що скоріш за все це перевтома, що мозок не встигає засвоїти таку велику кількість інформації. Порадив 48 годин ніякого кода, тому от зараз сиджу і пишу цю статтю, ну щоб ніякого кода:).
Також, я порадився з ШІ с приводу того які вітаміни можна почати приймати щоб якось допомогти моєму мозку в процесі навчання. Після консультації у ШІ я замовив з офіційного сайту iHerb декілька баночок вітамінів – гліцинат магнію, Lion’s Mane (це взагалі гриб), риб’ячий жир, L-треонат магнію, холін та інозитол, комплекс вітамінів групи B, вітамін D3.
Висновок: Нова гра, де я сам став Володарем і Архітектором
Що ж с приводу моєї залежності від комп’ютерних ігор? Процес розробки моєї власної ігри займав стільки ресурсів і давав так багато відчуття творення, що бажання грати в ігри значно зменшилось. Навіщо мені “будувати місто” в грі, коли у мене тут розробка такої величезної власної задумки. Я і далі граю ввечері в ігри, але це займає 1-2 а часто навіть пів години часу в день.
Ось так, я опинився в масштабному процесі, процесі який певною мірою став заміною комп’ютерних ігор. Дав мені можливість творити щось цікаве. Дав можливість вчитися програмуванню, дав можливість вчитися працювати з ШІ, вчитися бути його володарем. Дав можливість вчитися бути архітектором.




