Пройшло трошки більше року з моменту першої публікації про те як нейромережі заберуть роботу у всіх програмістів і настане велике щастя бо не будуть купувати більше сири по 500 грн(спойлер: ніхто роботу не забере). Контекст - https://t.me/uselessit/7.
Пам’ятаю той інфоциганський хайп мені дуже сильно підігрів сраку то і написав своє бачення ситуації.
Що ми маємо через рік? Коротка версія - клоуни як завжди пожрали гімна, а я був правий.
Орієнтуючись на своє бачення ситуації я майже одразу почав використовувати в роботі Github Copilot, який за скромну суму в 10 доларів допомагав мені працювати швидше і менше потіти. Вийшло непогано, вцілому цей інструмент просто працював як будь який помічник в будь якій студії розробки, тільки на максималках.
Стандартні допоміжні інструменти будь якої середи розробки в базі підказують вам маленькі речі, назви змінних, класів і так далі. Copilot в свою чергу спроможний по контексту та назвам методів підказувати цілі блоки коду або закінчені логічні конструкції, що пришвидшує роботу десь на третину, якщо ви, звичайно, знаєте, що саме ви хочете зробити, бо думки читати лелелемки ще не навчили.
І десь півроку тому вже зʼявилась можливість використовувати подібний до Chat GPT інструмент під назвою Copilot Chat. І оскільки мені довелось дуже швидко вриватись в божевільний новий світ JavaScript/веб/бекенд розробки, я вирішив спробувати поспілкуватись з ним і швиденько розібратись в новій для себе сфері і щось корисне нагавнякати.
Результат я оцінюю позитивно, але є велика кількість АЛЕ, про які я напишу нижче.
Отже - якщо ви точно знаєте що саме ви хочете зробити, тулза дуже корисна. Можна прямо задавати питання Чату і казати, що саме ви хочете зробити, у відповідь отримувати готові класи/методи/шматки коду, які можна одразу використовувати в своєму проекті. Copilot розуміє контекст, бачить, що за файл відкритий і що саме ви маєте на увазі коли питаєте про якісь речі.
На прикладі простої задачі: підняти свій веб сервер який повинен реагувати на певні зовнішні подразники.
Раніше було так(за умови що ви нульовий розробник в технології): йдемо в Гугл і починаємо по черзі задавати питання: Як створити веб сервер? Як його налаштувати? Як зробити щоб він очікував повідомлень? Як його запустити? Як налаштувати docker контейнер для цього веб серверу? І так далі.
Відповідно використовуючи Copilot Chat цей потік нескінченних питань можна зручно задавати в IDE, не відволікаючись на підходи до Гугла і назад. Оскільки система розуміє контекст і має доступ до проекту, помилки виправляти можна швидше і ефективніше. Якщо якісь деталі незрозумілі можна перепитати. Якщо потрібно щось зробити кращим способом - можна попросити переробити. Щось не працює: копіюємо текст помилки і питаємо як це виправити.
Стосовно старих аплікух - рефакторити і виправляти код також дуже зручно. Кажеш йому:
- перепиши ось це гімно, до речі хто бляха його писав(а, це був я два роки тому…).
І у відповідь отримуєш гарний працюючий код, який робить те саме, але виглядає краще і може десь оптимізований.
Тепер про АЛЕ. В першому своєму пості рік тому я казав: питання завжди стоїть в тій площині, що загальній інформації з StackOverflow ще можна навчити нейромережу, але диявол в деталях. Не вистачає експертизи.
Офтоп: на чому ви будете вчити нові нейронки, якщо у StackOverflow уже дуже впала аудиторія і в якийсь момент він просто перестане існувати?
Ті питання, що я задавав, були сформовані моїм досвідом програмування зі сфери мобільної розробки, і Copilot чесно давав мені відповіді. Проблема була в тому, що мій досвід прямо неможливо перенести на веб розробку, бо там просто багато речей робиться по іншому. Але Чат не намагався мене виправити і сказати щось на кшталт:
- Е, Уася, ти тут хочеш зробити ось це і це, але у нас тут так не роблять, зроби краще ось так і ось так.
І при цьому коли до мене приходить колега, який вже добре розуміється в цій технології від задає цілком логічне питання:
- А чому ти зробив ось так/використав таку технологію?
- No particular reason, просто робив як мені здавалось логічним.
- Ну дивись, у нас так не прийнято, у тебе точно дуже скоро будуть проблеми з такою реалізацією, зроби краще ось так.
Тобто, подібним інструментам все ще не вистачає експертизи. Чат що питаєш то він і відповідає. Тобто в цілому якщо ви тупо абсолютний нуль в програмуванні і приблизно розумієте, що ви хочете зробити, він вам допоможе, але результат буде дуже не оптимальний, потенційно кривий та/або буде погано масштабуватись.
Раніше мені батько, коли я ще тільки йшов до інституту вчитись, казав, що класний інженер не повинен все запамʼятовувати, а повинен знати де знайти. Ця фраза дуже швидко еволюціонувала до: повинен знати як правильно сформувати питання Гуглу. То на сьогоднішній день це вже виглядає як: повинен вміти задавати правильні питання до Chat GPT.
Висновки
1) Програмісти не помруть з голоду.
2) Програмісти, які не опанують нові інструменти розробки, дуже швидко програють конкуренцію.
3) Відсутність мозку ніякий Чат ЖПТ вам не виправить.
4) Наявність досвіду все ще є і дуже довго буде головною вашою конкурентною перевагою.
5) Намагайтесь розібратись як влаштовані нейромережі, на яких принципах побудовані, як їх створювати і використовувати, це на наступні 10 років буде одна найбільш важливих технологій де буде потрібно багато спеціалістів.
6) Вчіть матан, без цього ви нічого не зрозумієте в цій сфері.
Підписатись:
Телеграм - https://t.me/uselessit
Фб - https://www.facebook.com/denis.bars.94