Как превратить ChatGPT в мощный инструмент программирования на основе искусственного интеллекта и удвоить производительность
Вот что я узнал за два года тестирования помощи в программировании ChatGPT - и за это время я сделал гораздо больше программ.
Я экспериментирую с использованием ChatGPT для ускорения моего программирования уже более двух лет. Когда ChatGPT помог мне найти тревожную ошибку, я понял, что в искусственном интеллекте (ИИ) есть что-то стоящее.
Многие люди, с которыми я общался, думают, что ИИ — это волшебный джинн, который может воплотить целую программу или приложение из одного, едва сформированного желания. Вот гораздо лучшая аналогия: ИИ — это мощный инструмент.
Конечно, вы можете использовать старомодную пилу для резки дерева, но настольная пила работает гораздо быстрее. Ни один из этих инструментов не делает мебель. Они просто помогут вам сделать мебель. Имейте в виду, что искусственный интеллект не будет писать ваш код за вас. Это поможет вам написать свой код.
Хотя у меня нет объективного способа сказать вам, насколько ChatGPT помог мне, я вполне убежден, что он удвоил мою производительность программирования. Другими словами, я сделал в два раза больше, используя ChatGPT как часть моего набора инструментов.
Я в основном использую ChatGPT Plus, а не бесплатную версию ChatGPT. Изначально это было связано с тем, что модель GPT-4 в Plus лучше справлялась с программированием, чем модель GPT-3.5 в бесплатной версии. Однако теперь, когда обе версии поддерживают тот или иной вариант модели GPT-4o, их возможности кодирования идентичны. Помните, что с бесплатной версией вы получаете не так много запросов, прежде чем вас попросят подождать некоторое время, и я обнаружил, что это прерывает мой процесс программирования. Итак, я использую версию Plus за 20 долларов в месяц.
Должен отметить, что я протестировал множество больших языковых моделей (LLM) в сравнении с моим реальным кодированием и обнаружил, что только некоторые из них (и все они основаны на LLM ChatGPT) могут справиться со всем, что я на них взял. Таким образом, несмотря на то, что существует множество классных инструментов искусственного интеллекта для программистов (некоторые даже бесплатные), они не будут такими уж полезными, если код, создаваемый искусственным интеллектом, действительно не работает. Хорошая новость заключается в том, что ИИ со временем неизбежно станет лучше в программировании, поэтому это должно перестать быть большой проблемой.
Вспоминая все свои проекты, я понял, что могу поделиться некоторыми практическими советами о том, как получить максимальную отдачу от партнера по программированию ИИ. Давайте разбираться.
1. Дайте ИИ много мелких заданий
ИИ плохо справляется со сложными наборами инструкций, особенно если вы ожидаете, что он будет заниматься дизайном продукта. Тем не менее, ИИ очень хорош в разборе и обработке небольших, четко определенных инструкций.
2. Думайте о боте как о человеке, который находится в конце разговора в Slack
Вместо того, чтобы переписываться по электронной почте с коллегой, в которой каждое взаимодействие может быть разделено часами, представьте, что вы находитесь в чате Slack, где каждое взаимодействие намного меньше, но разделено секундами.
3. Для более сложных процедур подскажите итеративно
Начните с простого задания и, когда оно будет правильно написано, добавляйте к нему еще, элемент за элементом. Я вырезаю и вставляю предыдущую подсказку, добавляя и удаляя ее части, поскольку получаю куски кода, которые работают для того, что я ищу.
4. Тестируйте каждый маленький кусочек кода, возвращаемый ИИ
Никогда не думайте, что код будет работать. Внесите код в свой проект и посмотрите, как он работает.
5. Используйте отладчик
Для более глубокого тестирования не стесняйтесь заглянуть в отладчик и шаг за шагом изучить код, сгенерированный искусственным интеллектом. Следите за переменными и за тем, что именно делает ИИ. Помните, что это нормально, если вы позволяете ему писать фрагменты кода за вас, если вы проверяете каждую инструкцию и строку на правильность работы.
6. Вам не нужна помощь в кодировании искусственного интеллекта, встроенная прямо в вашу IDE
Многие поставщики инструментов программирования продвигают идею интегрированного искусственного интеллекта в своих инструментах. Среди прочего, такой подход позволяет им продавать вам функции искусственного интеллекта. Тем не менее, я предпочитаю использовать ChatGPT для программирования в качестве отдельного инструмента от моей среды разработки. Я не хочу, чтобы искусственный интеллект мог проникнуть в мою основную среду программирования и изменить то, что там есть.
7. Не стесняйтесь пожирать строки кода из сгенерированных процедур
Вам не всегда нужно использовать все, что ИИ производит для вас. Точно так же, как вы можете перейти на Stack Overflow для поиска примеров кода, а затем выбрать строки, которые хотите скопировать, вы можете сделать то же самое с кодом, созданным искусственным интеллектом.
8. Не просите ИИ выполнять проприетарное кодирование или использовать институциональные знания, которых у него нет
LLM с искусственным интеллектом работают на обучающих данных или на том, что они могут найти в Интернете. Это означает, что они, как правило, ничего не знают о вашем уникальном приложении или бизнес-логике. Таким образом, избегайте попыток заставить ИИ написать что-либо, требующее такого уровня знаний. Это ваша работа.
9. Предоставьте ИИ примеры для работы, чтобы он понимал контекст вашего кода
Я дал ChatGPT фрагмент HTML-страницы и попросил его добавить функцию для расширения блока текста. ИИ вернул мне HTML, JS и CSS. Позже я попросил его добавить дополнительный селектор CSS, а затем попросил его обосновать свою работу, после чего он объяснил мне, почему он сделал то, что сделал. Весь этот процесс работал, потому что примеры, которые я приводил ИИ, помогали ему понять контекст.
10. Используйте искусственный интеллект для кодирования на основе общих знаний
Самое большое преимущество ИИ заключается в написании блоков кода, которые используют общие знания, популярные библиотеки и обычные практики. ИИ не сможет написать вашу уникальную бизнес-логику. Но если вы попросите ИИ написать код для возможностей из библиотек и API, это сэкономит вам много времени.
11. Не стесняйтесь просить одно- или двухстрочные сниппеты
Даже если вам нужно что-то, что может сгенерировать всего одну или две строки ответа, используйте ИИ так же, как вы бы использовали любой исследовательский инструмент, если он может сэкономить ваше время.
12. Сообщите ИИ, когда написанный им код не работает
Я обнаружил, что ИИ часто выдает неполный или нефункциональный код. Расскажите ему, что не работает, и, возможно, предложите уточнить. Затем попросите ИИ написать что-то новое. Обычно так и есть, и пересмотренный код иногда лучше оригинала.
13. Используйте один Al для проверки работы другого Al
Интересно наблюдать, как две языковые модели интерпретируют один и тот же код. Как мы уже видели, не все языковые модели работают так хорошо, но их результаты могут быть поучительными. Вы даже можете попросить одну сессию ChatGPT проверить результаты другой сессии ChatGPT.
14. Используйте искусственный интеллект для написания селекторов CSS
Селекторы CSS — это выражения, которые программисты используют для определения элемента на веб-странице для стилизации или других действий. Они быстро становятся сложными и загадочными. Я часто копирую блок HTML и прошу селектор для данного фрагмента этого HTML. Такой подход может сэкономить много времени. Однако помните, что обычно вам придется повторять итерации, сообщая ИИ, что первые несколько селекторов не работают, пока он не сгенерирует один, который работает.
15. Используйте искусственный интеллект для написания регулярных выражений за вас
Регулярные выражения — это символьные математические последовательности, которые чаще всего используются для разбора текста. Мне не нравится писать их почти так же, как мне не нравится писать селекторы CSS. ИИ отлично справляется с написанием регулярных выражений, хотя вам придется их протестировать.
16. Используйте искусственный интеллект для тестирования регулярных выражений
Я использую приложение Patterns для тестирования сгенерированных регулярных выражений на моем Mac Studio. Но ИИ тоже может помочь. Я часто скармливаю отдельному экземпляру ИИ регулярное выражение, сгенерированное ChatGPT. Затем я спрашиваю этот отдельный экземпляр: «Что это делает?» Если я получаю описание в соответствии с тем, что я хотел, чтобы функция делала, я чувствую себя более уверенным, что ИИ сделал то, что я хотел.
17. Позвольте искусственному интеллекту выполнять сложные вычисления по циклам
Как и в случае с селекторами CSS и регулярными выражениями, сложная математика циклов может быть утомительной и подверженной ошибкам. Это идеальное приложение для ИИ. При указании запроса не сообщайте ИИ, что находится в цикле. Пусть он напишет соответствующие элементы оболочки цикла, а затем напишет бизнес-логику после того, как этот процесс заработает.
18. Используйте вопрос «Что не так с этим кодом?» в качестве подсказки
Я часто передаю блоки кода, особенно регулярные выражения, сгенерированные ИИ, ИИ. Может быть очень поучительно увидеть, что, по мнению ИИ, не так с кодом, часто выделяя условия ошибки, которые код не тестирует. Затем, конечно, попросите ИИ повторно сгенерировать код, исправив найденные ошибки.
19. Используйте вопрос «Что это делает?» в качестве подсказки
Точно так же мне нравится скармливать блоки кода искусственному интеллекту и спрашивать его: «Что это делает?» Это часто бывает поучительно, даже для моего собственного кода. Но самая большая польза проявляется при работе над кодом, написанным кем-то другим. Передача функции или блока ИИ может сэкономить время на реверс-инжиниринг исходного кода.
20. Знайте, когда стоит отказаться от ИИ
Иногда ИИ не справляется с этой задачей. Я обнаружил, что если вы попытаетесь заставить ИИ переписать свой код более двух или трех раз, вы пройдете точку невозврата. Если вам нужен код, сгенерированный искусственным интеллектом, начните с совершенно нового, переформулированного запроса и посмотрите, что вы получите из этого. А иногда вам придется идти самостоятельно.
21. Будьте конкретны в именовании функций и переменных
ИИ улавливает намерения из имен переменных и функций и пишет более качественный код. Например, указание имени переменной в качестве $order_date помогает сообщить ИИ, что вы имеете дело с заказом и значением даты. Это намного лучше, чем что-то вроде $od. Более того, код, сгенерированный из хорошо названных имен переменных, также часто более удобочитаем, потому что ИИ знает, что для других переменных, которые он создает, нужно использовать более описательные имена.
22. Прочтите примечания до и после индекса
ИИ обычно генерирует заметки о каждом запросе до и после написания кода. В нем могут быть жемчужины, которые могут помочь вам понять, что сделал ИИ или как он подошел к проблеме. Иногда ИИ также указывает вам на другие библиотеки или функции, которые могут быть полезны.
23. Можно вернуться и попросить больше помощи по фрагменту кода
Возьмите различные фрагменты кода из вашего проекта, чтобы проиллюстрировать, что вам нужно, скажите ChatGPT прочитать их, а затем спросите, что вы хотите. Мне нужно было создать исключение для полей ввода в расширенной области, и я обратился к ИИ. Менее чем через минуту у меня был код, на написание которого у меня ушло бы от 10 минут до часа.
24. Используйте ИИ для переписывания устаревших блоков кода
У меня был модуль PHP, написанный на старой версии PHP, который использовал языковую функцию, которая теперь устарела. Чтобы обновить код, я вставил устаревший сегмент кода в ChatGPT и попросил его сообщить мне, как его переписать, чтобы он был совместим с большинством последних версий PHP. Это сработало, и это сработало.
25. Используйте искусственный интеллект, чтобы помочь вам писать на менее знакомых языках
Мне очень комфортно изучать новые языки программирования, но я обнаружил, что искусственный интеллект может быть полезен, если мне нужно программировать на языке, в котором я не являюсь экспертом. Я спрашиваю у ИИ, как написать то, что я хочу, и указываю язык. Допустим, я хочу знать, как сделать оператор case в Python, и я всегда делал это в PHP. Просто спросите: "Сравните написание оператора case в PHP и Python" или "Как объединить строку в Python и PHP". Вы получите отличное сравнение, а сам процесс значительно упростит написание незнакомого кода.
Вот бонусный совет. Проконсультируйтесь со своей компанией по юридическим вопросам, связанным с генерируемым кодом. Если вы не знаете, с чего начать, прочитайте мою статью об искусственном интеллекте и владении кодом. Если вы будете следовать советам, которыми я поделился с вами, вы никогда не будете использовать ИИ для написания уникальной бизнес-логики или ядра того, что делает ваш код уникальным. Таким образом, вы, скорее всего, сможете сохранить авторские права на этот код, который должен составлять ключевой элемент вашей уникальной ценности.
Я пишу код для внутреннего использования компанией или код с открытым исходным кодом, поэтому меня не волнуют вопросы владения сниппетами, созданными искусственным интеллектом.
Вы использовали искусственный интеллект для написания кода? Есть ли у вас какие-нибудь советы, которые вы могли бы добавить к моему списку выше? Дайте нам знать в комментариях ниже.
