Будучи младшим разработчиком, который недавно пришел в отрасль после смены карьеры, я определенно испытал чувство страха и удивления, когда в конце прошлого года вышел ChatGPT 3, который взорвал Интернет (почти буквально).

Сначала удивление: этот новый инструмент показался чрезвычайно полезным. Прощай, пассивно-агрессивный StackOverflow, здравствуй, дружелюбный робот. Потом экзистенциальный страх. Подожди, может эта штука действительно заменит меня?

По сути: «О, черт, это действительно впечатляет! 😃», а затем: «О. Проклятие. На самом деле это впечатляет… 😨».

Это был захватывающий опыт — начать новую карьеру и переквалифицироваться как раз перед тем, что, несомненно, стало переломным моментом для белых воротничков и работников умственного труда во всем мире. Когда я учился веб-разработке, мне приходилось полагаться на: пробы и ошибки, биться головой о стену, Google, Reddit, StackOverflow, документацию и крики.

15-недельный буткемп помог мне преодолеть черту, и мне посчастливилось получить работу (большой CodeLingo!).

ChatGPT уже стал неотъемлемой частью моего рабочего процесса. Просидев с ним несколько месяцев, я меньше беспокоюсь о безопасности работы и больше оптимизма в отношении удовлетворенности работой.

Почему? Потому что я быстро понимаю, что ChatGPT действительно позволяет мне в 10 раз увеличить набор навыков и скорость разработки.

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

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

Быстрый гроккинг

Один из моих любимых глаголов в области компьютерных наук — «to grok»: быстро что-то понять. ChatGPT — отличный инструмент для грокинга.

Во-первых, я могу использовать его для быстрого понимания того, как работают блоки кода. Обычно слова «Объяснить», за которым следует неформатированный код, достаточно, чтобы дать мне действительно четкое представление о том, с чем я работаю.

Во-вторых, отладка. Используя интуицию и знакомство с другими языками программирования, я смог начать работать в Kotlin. Но это, конечно, не было идеальным — ChatGPT помог мне быстро определить, что могло пойти не так, вместо того, чтобы копаться в Документации или Документах Google, Google, Reddit и Stack Overflow.

Но! На этом мое использование ChatGPT закончилось — я определенно не полагался на него при написании кода.

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

«НЕ используйте [ChatGPT] для создания кода, требующего большого количества контекста… Невозможно предоставить модели контекст всей кодовой базы или продукта, поэтому, если у вас еще нет четкое представление о том, как подойти к задаче, то ChatGPT реально не очень поможет».

Для правильной работы с отраслевыми кодовыми базами требуется так много контекста. Именно здесь так важны человеческие знания, и именно здесь в игру вступил еще один замечательный инструмент: CodeLink(Кроме того, гм, я один из дружелюбных разработчиков, работающих над CodeLink 💅).

Человеческое прикосновение

CodeLink — это бесплатное расширение IDE, которое позволяет пользователям делиться фрагментами кода, которые открываются непосредственно в вашей IDE или предпочтительном хосте VCS (Github, Gitlab и т. д.).

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

В этом случае я наткнулся на коллегу со значительным опытом и контекстуальным пониманием кодовой базы (который также работает из другого города). Через несколько секунд они прислали мне CodeLink на соответствующую часть кодовой базы. CodeLink открылся прямо в моей IDE, проверил репозиторий и выделил соответствующие строки кода, что позволило мне приступить к работе в рекордно короткие сроки.

Кроме того, ChatGPT может ошибаться! Это отличный первый порт захода, но он не всегда может быть последним, особенно если то, что он пишет, заставляет вас поднять бровь.

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

О шумихе и надежде

Реальность такова, ChatGPT уже здесь и будет только улучшаться. Было бы глупо пытаться разобрать его на части и отрицать, что он коренным образом изменит то, как мы работаем, и нашу работу. Это верно и для разработки программного обеспечения.

Тем не менее, и я мог бы обижаться на копиум здесь, чем больше я использую его как часть своего рабочего процесса, тем больше я склонен рассматривать его как главное средство повышения производительности и обучения. Чтобы справиться с работой над большими унаследованными кодовыми базами, требуется целый ряд навыков, таких как интуиция, общение, понимание контекста — здесь человеческий фактор играет решающую роль.

Когда ИИ сможет заменить все эти вещи, у нас, вероятно, будет больше поводов для беспокойства, чем просто наша работа…