#AI #programming #way

@serhii_harnyk написав тут непогано про ШІ та перспективи у програмуванні (менеджмент справді часто не бачить проблеми, а йти проти ринку — вивалитися за нього, це так)? збережу його в Тґ:

=*=
Я думав півроку, тестував різні LLM, спілкувався з різними людьми на різних посадах, і тепер я впевнений, що ШІ справді замінить програмістів в компаніях. Але вам це не сподобається.

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

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

  1. Читаємо з файлу
  2. Формуємо sql-запит
  3. Відкриваємо з’єднання з БД, пишемо в неї
  4. Оброблюємо помилки типу обриву з’єднання, неспівпадіння формату даних і т.п.

Хороший джун впорається з таким без проблем. Але є нюанс. Пункт один працює лише тоді, коли вміст файлу влізає в оперативну пам’ять. А якщо файл не влізе в оперативку? Можна читати порядково і записувати кожен рядок. Можна читати батчами по 10-100-1000 рядків. Код стане складніше, додадуться нові типи помилок, що треба обробити, більше коду - більше багів і складніша підтримка. Тому розробнику бажано не тупо закладуватись на те, що файл не влізе, а зрозуміти - чи може виникнути така ситуація і не ускладнювати код, якщо ні. А це залежить від того, що саме в файлі - якщо там дані по користувачам які заходили на сайт за місяць, то може і не влізти. Якщо ж там якісь статуси агреговані, наприклад, по країнам, то їх ніколи не буде багато. Відповіді на подібні питання і є прийняттям рішень. Важливо розуміти, що зазвичай питання розглядаються не на наочному абстрактному рівні файл-БД, а більш специфічному, типу в тебе є модуль такий і модуль сякий, і треба розробити третій модуль, який використовує перші два і робить шось ще. Прийняття рішень це і є основна інтелектуальна робота програміста, яка поїдає ресурси мозку. Писати ж код, коли ти прийняв всі рішення доволі просто і ненапряжно. Хоча, звісно, займає час.

Так от, ШІ-ентузіасти уявляли собі, що розробник буде приймати ці рішення, писати їх в чат, а LLM швидко напише код, економлячи час розробника. Але я(як і всі мої знайомі) цього не бачу. А бачу я, що навіть сіньйорні програмісти просто хуярять в ChatGPT/Claude/Copilot/Cursor запити типу “запиши мені файл в базу”, а потім підчищають згенероване. Тобто все відбувається рівно навпаки - машина займається інтелектуальною діяльністю, приймає рішення, а шкіряний мішок виконує некваліфіковану роботу дрібного кодфіксінгу! А що відбувається з мозком людини, яка перестає приймати рішення в своїй експертний сфері? Мозок відвикає і людина губить навички. Тому я вважаю дуже вірогідним, що ШІ таки зрівняється з більшістю програмістів. Не тому що LLM розвинуться до рівня сучасного сіньора, а тому що сіньори заредьюсять самі себе до рівня сучасних LLM.