И певец, и на дуде игрец. Или почему ChatGPT необходим стажеру

Привет, Хабр. Меня зовут Алексей, я разрабатываю мобильные приложения на Flutter в Пиробайте. И ради сегодняшней статьи сошлись аж две звезды, две светлых повести. Во-первых, популярность нейросетей немного приутихла, и они стали обыденным инструментом. Во-вторых, я понемногу осмыслил свой путь изучения языка Dart. О том, как эти 2 вещи умудрились пересечься, я и расскажу дальше.

Предлагаю сразу начать с главной парочки — Dart/Flutter. Когда мы говорим о кроссплатформенной разработке на Flutter, то мы говорим о… Flutter, как это ни странно. И только о нем. Если вы начинаете свой путь изучения фреймворка, то найдете много туториалов, обучалок, статей и прочего: Stateful vs stateless виджеты, BLoC vs RiverPod, основы верстки на Flutter, в конце концов. 

Если составлять список, то он покроет большинство фич разработки на Flutter. Но почему-то все забывают о, так сказать, БАЗЕ — языке Dart.

Такая забывчивость в целом понятна. Dart в отрыве от Flutter никто и звать его никак, будем честны. Однако для новичка, особенно для того, кто пришел из веб-разработки, папаша нашего любимого фреймворка покажется достаточно интересной штукой, так как гораздо больше полагается на ООП. Наличие миксинов, особенностей приватных и паблик полей, куча способов объявить переменную, необходимость указывать типы данных — все эти особенности усложняют переход из классического веба. Сложно найти больше одного практического задания, а практика — важная штука в разработке на любом языке.

И тут можно сказать, что нужды в углубленном изучении Dart (особенно на начальном этапе) нет. Отчасти это так. Но иногда, после очередной статьи про возможности языка (или даже про принципы ООП), все-таки хочется написать что-нибудь эдакое или просто закрепить знания на практике. 

Можно, конечно, копаться в гугле. Можно придумать самому себе задачу (и самому проверить, что уже не так круто). А можно обратиться к своему ментору.

Но что, если в гугле ничего не нашлось, сам ты придумать ничего не можешь, так как компетенций не хватает, а у наставника горят дедлайны? На помощь приходит наш подручный — ChatGPT.

Давайте напишем ему запрос на составление задания

Начнем с дружественного приветствия. Вдруг это нам зачтется, когда начнется восстание машин. 

Допустим, мы изучаем паттерны проектирования, в чем откровенно признаемся нашему боту. Не забываем указать, что изучаем не абы что, а язык Dart. И последнее — уточняем, что чат должен проверить нашу задачу. Так мы задаем контекст беседы.

Пишем ясно, кратко и вежливо

Пишем ясно, кратко и вежливо

Если вас не устраивает задание из-за его абстрактности, скажите об этом боту.

Уточнения — еще один ключ к совместной победе

Уточнения —еще один ключ к совместной победе

Честность в общении с чатом вообще очень хорошо окупается. А еще он вас никогда не наругает за глупый вопрос (глупых вопросов не бывает!)

Еще ChatGPT нужен референс. Прямо как нормальному разработчику, дизайнеру и т.д. 

Несмотря на небольшое количество заданий по нашей с вами теме (разработка на Dart), мы, так или иначе, можем использовать существующие крупицы и скармливать их нейросети. 

Попробуем на практике, вводные данные следующие: мы все также учим Dart. Говорим, что проходим тему интерфейсов. Предоставляем задачу, которая нам понравилась и говорим, что хотим что-то похожее (в идеале уточняем — сложнее или проще). И приправляем ключевым словом в кавычках. В нашем случае это тема обучения.

Делаем ему запрос

Делаем ему запрос

Получаем ответ

Получаем ответ

Важная вещь про ключевые слова и референс

Если вы захотите усложнить задачу, то обречены на бесконечный разговор с чатом, где он перебирает слагаемые в выражении A + B = C. То есть что бы он ни предлагал, задача остается прежней. Поэтому будьте аккуратнее, даже с укороченным лимитом контекста у GTP-3.5 (3000 слов против 25000 слов у 4-ой версии) — вы можете попасть в бесконечный цикл.

Есть несколько важных пунктов:

  1. ChatGPT должен ДАВАТЬ вам задания, а НЕ РЕШАТЬ за вас. Немного очевидный пункт, но все-таки, будьте честны перед собой: вам просто лень или вы действительно хотите попрактиковаться в той или иной теме? Если вам лень, то лучше отдохните и только потом садитесь за программирование;

  2. ChatGPT НЕ ваша дебаг-консоль. Не стоит скармливать ему код, над которым вы сидите в студии. Это попросту небезопасно и выстрел сами знаете куда;

  3. ChatGPT не заменит вас, так как немногие заказчики умеют формулировать просьбы. Вы же должны это уметь. Будьте лаконичны, давайте больше контекста и не забывайте поправлять и направлять чат-бота в нужное русло, если ответ вас не устраивает.

Окей, с разработкой в целом ясно, но это разве все? Разумеется, нет. 

Следующая роль, которую примерит ChatGPT, будет репетитор по английскому

И поверьте, оно вам надо. И еще как. Сам я большинство запросов составляю именно на английском.

Во-первых, точность ответа так чуть-чуть выше. Во-вторых, это практика лично для меня, ведь с носителями я общаюсь нечасто. Ко всему прочему, в среде разработчиков не так уж много людей, которые прям вообще не понимают английский. Как раз наоборот — понимают очень даже неплохо: читают, смотрят видосы. Однако проблема в продуцировании какого-либо контента, будь то написание текста или разговор. И если с разговором нам чат не поможет, то с перепиской очень даже.

И тут перед нами встает 2 варианта. Можно покосплеить Хоакина Феникса из фильма «Она» и начать активно общаться с нейросеткой, а потом влюбиться в нее до беспамятства, перестать общаться с реальными людьми, потом она вас бросит, т.к. переходит в другую реальность… В общем, вы поняли, вариант рабочий, но немного антисоциальный. 

А можно поступить также, как мы поступили с вами чуть выше — задать роль чату.

Например, вводные такие: улучшаем письменный навык, наш уровень языка, просим обратную связь.

Перевод: Эй, чат! На данный момент я изучаю английский язык и хотел бы улучшить навыки письма. Не мог бы ты составить задание для меня? Что-то типа эссе пойдет, тема может быть любой, без ограничений. Я нацелен на уровень C1, так что мне нужна жесткая критика, включающая в себя: вариативность словаря, грамматика (если предложения слишком простые — это тоже ошибка). Ну и было бы здорово услышать немного здоровой критики и парочку советов на будущее для письма. Что скажешь?

Перевод: Эй, чат! На данный момент я изучаю английский язык и хотел бы улучшить навыки письма. Не мог бы ты составить задание для меня? Что-то типа эссе пойдет, тема может быть любой, без ограничений. Я нацелен на уровень C1, так что мне нужна жесткая критика, включающая в себя: вариативность словаря, грамматика (если предложения слишком простые — это тоже ошибка). Ну и было бы здорово услышать немного здоровой критики и парочку советов на будущее для письма. Что скажешь?

И вот тут, я думаю, вы уже догадались, что эта статья может продолжаться вечно и вместо улучшаемого навыка можно подставить совершенно любое знание или умение.

Давайте попробуем сформулировать нашу псевдо формулу:

Где S — это ваш изначальный навык, T — конкретная задача, C — нейросеть, а D — ваш улучшенный навык

Где S — это ваш изначальный навык, T — конкретная задача, C — нейросеть, а D — ваш улучшенный навык

Весовые коэффициенты примерно такие:

c1fc466ddc8c5694deb78eaed86a44d2.png

Никаких объективных цифр, разумеется, не будет. Не относитесь к этой формуле слишком серьезно. Давайте поясню, почему именно такие коэффициенты я выделил. 

Во-первых: по-хорошему, нам неважно, каков уровень вашего навыка, ведь мы и так его повышаем. 

Во-вторых: конкретная задача — это наиболее важное в нашей формуле, так как именно от нее зависит, получим ли мы какой-либо результат. Чем лучше формулировка, тем выше конечный результат. 

В третьих: ChatGPT занимает промежуточное место, так как без нашей задачи и изначального навыка оно не сработает, однако, вносит весомый вклад в улучшение навыка.

А теперь закрепим все вышесказанное

Давайте менее душно и более практично — что получилось наскрести за всю статью из реальных советов:

  1. Задавайте контекст

Например: «Я изучаю язык программирования Dart», «I«m learning English Language». Далее углубляйте его, добавляя детали — ваш уровень, какую тему изучаете.

Например: «На данный момент я изучаю паттерны проектирования <имя_паттерна>», «My level of English is C1»

  1. Не забывайте про референсы

Если хотите чего-то конкретного, например: «Вот хорошая задача для примера: <задача>», «Here«s a good task from IELTS, would love to hear something similar:»

  1. Укажите конкретную роль для чат-бота

И тут 2 варианта. Либо задавайте четко — «Ты ментор/учитель/мой друг», либо укажите что хотите от бота — «проверь мою задачу и укажи слабые места/что можно улучшить», что по сути также относится к роли.

***

Если подытожить, то ChatGPT может стать хорошим дополнением к работе ментора, репетитора и самого стажера. Самое главное, что стоит понимать — не надо показывать ему каждую строчку коммерческого продукта. Чат лишь изредка может взглянуть со стороны на ваше творение. Развивайтесь сами, а не кормите нейросети. 90% работы должно выполняться вами, а рутину (вроде придумывания какой-либо задачки) можно отдать ChatGPT. 

Что думаете? Используете его в своей работе?

© Habrahabr.ru