ChatGPT ужасно хорош в написании кода.
Все слышали о ЧатGPT на данном этапе. Это чат-бот на базе искусственного интеллекта, который использует модели обработки естественного языка для получения ответов на сложные вопросы. Эти ответы не всегда могут быть точными, но они, как правило, достаточно подробны, чтобы вы могли довольно легко проверить ответы, которые он вам дает. Что, если бы вы взяли ChatGPT и попытались написать с его помощью код?
Как оказалось, это то, что вы можете делать с разной степенью успеха, в зависимости от языков, которые вы хотите использовать, и того, чего вы хотите с их помощью достичь. Я проверил его, чтобы увидеть, насколько хорошо он будет работать на разных языках программирования для выполнения разных задач. Я также не буду вносить какие-либо изменения в код, который создает ChatGPT, я только направлю его на создание рабочего кода, если код, который он создает, не работает.
Я использовал три языка, с которыми я уже знаком, чтобы протестировать ChatGPT: Python, C и Java. Результаты были особенно удивительными, так как он немного боролся с Python из-за абстрактного характера того, что я просил его сделать, но он легко обрабатывал C и базовую Java. у меня также
создал репозиторий GitHub со всем кодом, доступным здесь, чтобы вы могли попробовать его самостоятельно.Автоматическая проверка страницы в Python
Python — мой любимый язык программирования для работы, и это благодаря его возможностям и простоте использования. В прошлом я написал много инструментов на Python для автоматизации частей моего рабочего процесса, и моя бакалаврская диссертация по компьютерным наукам была полностью написана на Python. Я попросил ChatGPT написать программу, которая могла бы периодически сканировать веб-страницу на наличие изменений, и в основном это срабатывало.
Проблема с приведенным выше кодом, который он мне дает, заключается в том, что он не имитирует настоящий браузер. Веб-сайты проверяют параметр в вашем браузере, который называется «пользовательский агент», и он определяет, какой браузер вы используете и являетесь ли вы ботом. Многие веб-сайты не принимают подключения, которые не определяют пользовательский агент, и я столкнулся с этим, когда указал на XDA. Я попросил его добавить к запросу пользовательские заголовки для имитации реального браузера, и он согласился.
Приведенный выше код работает для статических веб-сайтов, но проблема в том, что большая часть контента, который вы читаете в Интернете, является динамической. Если страница возвращает текущее время, например, где-то на странице, то приведенный выше код всегда будет говорить, что страница изменилась при каждом ее обновлении. Когда я указал на это ChatGPT, он запутался и дал мне совершенно неверное решение проблемы.
Вышеприведенное является неверным объяснением того, как работают хэши. Смысл хеша в том, что незначительное изменение входных данных приведет к существенной разнице в хеше, поскольку два хэша в основном несопоставимы. Когда я сказал ему, что было бы неправильным утверждать, что хэши — лучший способ сравнивать и сканировать изменения, он ответил извинениями и дал мне что-то, что делал работа.
Единственная проблема, которую я обнаружил с приведенным выше кодом, заключается в том, что для больших веб-сайтов это вычислительно затратный, поскольку он использует обработку естественного языка для сравнения и вычисления разницы между ними. Тем не менее, 5-процентный порог измененного контента достаточно для большинства веб-сайтов, если вы хотите проверять наличие обновлений, и при необходимости вы можете настроить порог. Это заняло некоторое время, но в конце концов это произошло.
Есть много причин, по которым вам может понадобиться веб-парсер, подобный одному из этих, и, хотя есть инструменты, которые могут это сделать, здорово создать свой собственный. Вы можете использовать их для отслеживания посылок или, в моем случае, для поиска новых объектов недвижимости, которые сдаются в аренду на местных сайтах недвижимости.
Генератор паролей на C
В связи с тем, что в последнее время в моде безопасность, важно использовать безопасные пароли, а также использовать двухфакторную аутентификацию. Если вы боретесь с частью безопасного пароля, довольно легко написать генератор паролей на C. ChatGPT справился с этим довольно легко, и единственная проблема, которую я обнаружил, заключалась в том, что когда я попросил создать генератор паролей, он не импортировал библиотеку String C. Я сказал ему это, и он добавил его в импорт в начале.
Я увеличил глобальную переменную MAX_LENGTH до 32 символов вместо 16, и она сгенерировала для меня следующий пароль: aW3H0E(&FPQvG8B@4*()+4yRKTKB#U0O. Можно с уверенностью сказать, что это работает!
Калькулятор на Java
Довольно простая программа, с которой многие люди имеют опыт работы на Java, — это создание калькулятора. Это одна из самых первых проблем, с которыми сталкиваются компьютерщики в своей карьере программиста, независимо от того, какой язык они изучают в первую очередь. Я попросил ChatGPT написать калькулятор на Java, в котором использовались бы как минимум два класса, и с первой попытки он отлично заработал.
Это класс калькулятора:
Это основной класс:
Создание обоих этих классов в моей IDE, IntelliJ, и выполнение основного класса приводит к отлично работающему программа-калькулятор, которая принимает два числа и оператор сложения, вычитания, умножения или разделение.
ChatGPT хорош в программировании
Хотя я бы не стал полагаться на то, что ChatGPT сделает все за вас, ясно, что он может неплохо справляться с созданием программ и учетом критических замечаний, когда возникают проблемы. Я был удивлен, увидев, что он предлагает алгоритм хеширования как способ различать незначительные изменения на веб-странице, но, кроме этого, он вообще не боролся с более простыми задачами. Даже в случае с программой на Python у нее с самого начала была правильная идея, и на более статичных страницах она работала бы отлично.
Конечно, ChatGPT не заменит программистов в ближайшее время, но он на пути к тому, чтобы стать очень хорошим рабочим инструментом. Второй пилот GitHub, например, использует GPT технология, помогающая людям писать код, и со временем она будет только совершенствоваться. Даже если вы начинающий программист, такой инструмент потенциально может помочь вам учиться, если вы полностью ему доверяете, но, как мы видели, иногда он допускает странные ошибки.
Конечно, приведенные здесь примеры очень просты, и большинство программистов смогут написать их достаточно легко, но суть не в этом. Он пугающе хорош в создании решений для простых задач и, кажется, неплохо справляется с более сложными задачами. Мы рады видеть, как такие инструменты будут развиваться в будущем и помогать людям улучшать свои навыки.