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

И я не единственный — многие другие разработчики открыли для себя преимущества использования ChatGPT3 в своей работе.

В этой статье я поделюсь своим опытом работы с ChatGPT3 и тем, как он помог мне вывести мое программирование на новый уровень.

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

ChatGPT3 имеет множество функций, которыми могут воспользоваться разработчики, давайте углубимся в те, которые уже активно используются разработчиками сегодня:

  • Повышенная эффективность: ChatGPT3 может помочь автоматизировать задачи, выполнение которых разработчиком вручную заняло бы много времени. Например, он может генерировать фрагменты кода или самостоятельно выполнять небольшие проекты. Это может помочь разработчикам сэкономить время и повысить свою производительность.

  • Повышенная точность: ChatGPT3 может помочь уменьшить количество ошибок в программе, предлагая исправления и улучшения. Это может помочь обеспечить более высокое качество и надежность кода.

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

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

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

  • Экономия затрат: ChatGPT3 может помочь снизить стоимость определенных задач программирования за счет их автоматизации, что может привести к экономии средств для компании или организации.

  • Личный ментор: ChatGPT3 может отлично помогать начинающим разработчикам для объяснения сложных концепций и разъяснения как работает чужой код.

Как разработчик среднего уровня, я часто обращаюсь к ChatGPT3 за советом, как сделать мой код более эффективным, читабельным и эстетически привлекательным.

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

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

Я ускорил взаимодействие с ChatGPT3, создав расширение для Visual Studio Code.Теперь я могу легко получить доступ к возможностям ChatGPT3 прямо из моего редактора и еще больше оптимизировать свой рабочий процесс.

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

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

Если вам это интересно, вы можете найти его по этой ссылке

Я коротко расскажу вам про то, как можно его использовать:

  1. Сгенерируйте свой OpenAI API KEY и вставьте его в настройки расширения через cmd+shift+p → DevGPT: Set API KEY

  2. Выберите любой код, откройте контекстное меню правой кнопкой мыши и выберите нужный вариант из списка.

  3. Смотрите результат ответа ChatGPT3 в новом окне в формате markdown (бонусный совет: установите дополнительное расширение для удобного предпросмотра файлов md)

  4. Дайте расширению 5-звездочный рейтинг и позвольте ChatGPT3 произвести революцию в вашем программировании!

Команды
Команды
Результат
Результат

На самом деле, для публикации этого расширения я решил пойти ещё дальше и сгенерировать для него иконку через Midjourney, получился вот такой результат:

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

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

Итак, ChatGPT3 — идеальный инструмент для того, чтобы сделать мое письмо (и мою работу в качестве разработчика) лучше, чем когда-либо.

Комментарии (31)


  1. OBIEESupport
    10.01.2023 02:28
    +3

    Эх, жизнь-жестянка простого программиста, сорри, ChatGPT3! Кто-нибудь реальный пример любого извращения кинет на этот сайт? Например, решение задачи "обезьяна и банан" на ассемблере x86? Или решение задачи пересечения двух орбит небесных тел раз в миллион лет?


    1. Nilomar
      10.01.2023 03:54
      +1

      напиши на питоне решение задачи обезьяна и банан

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

      Функция должна выводить на экран слово "Банан" столько раз, сколько указано в инструкциях. Если в строке инструкций встречается символ "В", это означает, что обезьяна должна взять один банан, иначе она ничего не делает.

      Вот как может выглядеть функция на Python:

      def monkey_and_bananas(instructions, num_repeats):
          bananas = 0
          for i in range(num_repeats):
              for c in instructions:
                  if c == 'В':
                      bananas += 1
                  print("Банан")
          return bananas
      

      Чтобы вызвать эту функцию, нужно указать нужные аргументы:

      bananas = monkey_and_bananas("ВВВВ", 5)
      print(f"Обезьяна съела {bananas} бананов.")

      напиши на питоне решение задачи пересечения двух орбит небесных тел раз в миллион лет

      Давайте сначала разберемся с тем, что означает "пересечение двух орбит". Орбита - это траектория, по которой движется небесное тело. Пересечение орбит означает, что эти два тела находятся в одной точке пространства одновременно.

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

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

      ...

      характеристики орбиты Земли

      a1 = 1.496e11 # экваториальный радиус, м
      e1 = 0.0167 # эксцентриситет
      M1 = math.radians(358.6) # средняя аномалия, рад

      характеристики орбиты Марса

      a2 = 2.279e11 # экваториальный радиус, м
      e2 = 0.0934 # эксцентриситет
      M2 = math.radians(19.4) # средняя аномалия, рад

      r1, r2 = find_orbit_intersection(a1, e1, M1, a2, e2, M2)

      if np.allclose(r1, r2, atol=1e-9):
      print("Орбиты пересекаются в точке", r1)
      else:
      print("Орбиты не пересекаются")


      1. Wesha
        10.01.2023 04:59
        +4

        Пересечение орбит означает, что эти два тела находятся в одной точке пространства одновременно.

        Два. Тела. Находятся в одной точке пространства. Одновременно...

        Насколько я помню, последний раз, когда "два тела находились в одной точке пространства одновременно", у Земли образовалась Луна.

        решение задачи обезьяна и банан

        Что за задача-то? Гугль выдаёт штук 20 разных.


      1. OBIEESupport
        10.01.2023 14:49

        Один минус у ваших решений - они к постановке задач для сильного ИИ не имеют никакого отношения.

        Привожу полные формулировки задач.

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

        Решить - на ассемблере x86, не давая дополнительных инструкций и не писав кода.

        Задача пересечения двух орбит небесных тел раз в миллион лет?

        ИИ должен знать, что у Земли есть несколько "маленьких" недавно открытых спутников, вращающихся по орбите системы Земля-Луна.

        Формулировка задачи: Написать все траекторные уравнения всех тел, которые находятся сейчас в пределах Солнечной системы, могут быть подлететь к Земле ближе, чем Луна за следующие 1000 000 лет. Пример тестовый: 469219 Kamoʻoalewa, an asteroid discovered on 27 April 2016, is possibly the most stable quasi-satellite of Earth. Ссылка на Вики: https://en.wikipedia.org/wiki/Claimed_moons_of_Earth


        1. Wesha
          10.01.2023 20:00

          Перед дверью, [...] Может ли обезьяна получить этот банан?

          Да!

          В гостинице, куда поселились инженер, математик и физик возник пожар.

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

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

          Математик, осознав, что все кругом полыхает, задумчиво смотрит на пожарный гидрант. Воскликнув: "О! Решение существует!", спокойно возвращается к себе в номер…


        1. Nilomar
          10.01.2023 20:37

          Если честно, задача про обезьянку мне не понятна, там где я раньше работал, если бы заказчик прислал такое ТЗ, то такой заказчик сразу же ушёл бы в перманентный бан. Возможно речь идёт о том, что может ли нейронка писать код нейронки обезьяны

          Нейронка же ответила следующее:

          Извините, но похоже, что вы просите меня написать программу на языке ассемблера для решения гипотетической задачи с участием обезьяны и банана.
          
           Ассемблер — это язык программирования низкого уровня, который используется для программирования компьютерных процессоров на самом базовом уровне.
          
           Он очень специфичен для архитектуры процессора, для которого он написан, и не подходит для решения задач, не требующих низкоуровневого программирования.
          
           Гораздо правильнее было бы решить эту проблему с помощью языка программирования более высокого уровня, такого как Python, C++ или Java, который больше подходит для решения задач. Было бы здорово, если бы вы сообщили мне о своих намерениях, и я постараюсь помочь более подходящим способом.

          К вопросу знает ли нейронка как обезьяне достать банан(отправлена просьба ответить кратко):

          Похоже, вы задаете мне вопрос о том, может ли обезьяна достать банан, который висит на потолке комнаты, используя ящик, который находится у окна.
          
          Ответ: Да, обезьяна может достать банан. Она может залезть на ящик и дотянуться до банана, который висит на потолке.

          На второй вопрос ответ такой:

          Было бы непрактично выписывать уравнения траекторий для всех тел Солнечной системы, которые потенциально могут приблизиться к Земле ближе, чем Луна, в течение следующих 1 000 000 лет, поскольку потенциально таких объектов много тысяч. Кроме того, точные траектории многих из этих тел могут быть неизвестны с достаточной точностью, чтобы написать точное уравнение.
          
          Вместо этого астрономы используют математические модели для предсказания движения небесных тел на основе наблюдений и физических принципов. Например, орбиты большинства тел Солнечной системы можно описать с помощью законов Кеплера о движении планет. Эти законы описывают, как тело движется под действием силы тяжести, и могут использоваться для расчета положения объекта в любой точке его орбиты.
          
          Что касается приведенного вами примера 469219 Kamoʻoalewa, этот астероид классифицируется как возможный «квазиспутник» Земли, что означает, что его орбита аналогична орбите естественного спутника, но он не находится на стабильной, долговременной орбите вокруг Земля. Вместо этого его орбита пересекается с земной, и он неоднократно приближается к нашей планете, но в конце концов сдвинется со своей резонансной орбиты.
          
          Стоит отметить, что даже если есть объекты, которые могут приблизиться к Земле, вероятность того, что любой из них действительно столкнется с Землей, чрезвычайно мала, поскольку это редкие события, и многие факторы могут изменить их траектории, такие как гравитационные взаимодействия с другими объектами. небесные тела.

          ....

          import numpy as np
          
          # Example orbital elements
          a = 1.5 # semimajor axis (AU)
          e = 0.1 # eccentricity
          i = np.deg2rad(15) # inclination (radians)
          Omega = np.deg2rad(30) # longitude of ascending node (radians)
          omega = np.deg2rad(45) # argument of periapsis (radians)
          M0 = np.deg2rad(60) # mean anomaly at a given time (radians)
          
          # Time for which to calculate position (in days)
          t = 365
          
          # Mean motion (in radians per day)
          n = np.sqrt(1.3271244004193938e+11 / (a**3))
          
          # Time elapsed since periapsis (in days)
          dt = t - (M0 - omega) / n
          
          # Eccentric anomaly
          E = M0 + e * np.sin(M0) + (e * np.sin(M0)) / (1 - e * np.cos(M0))
          
          # True anomaly
          nu = 2 * np.arctan2(np.sqrt(1+e) * np.sin(E/2), np.sqrt(1-e) * np.cos(E/2))
          
          # Distance from the sun
          r = a * (1 - e*np.cos(E))
          
          # Heliocentric coordinates
          x = r * (np.cos(Omega) * np.cos(omega + nu) - np.sin(Omega) * np.sin(omega + nu) * np.cos(i))
          y = r * (np.sin(Omega) * np.cos(omega + nu) + np.cos(Omega) * np.sin(omega + nu) * np.cos(i))
          z = r * (np.sin(omega + nu) * np.sin(i))
          
          # Convert to geocentric coordinates
          x_earth = x - 1
          
          # Distance from Earth
          distance_from_earth = np.sqrt(x_earth**2 + y**2 + z**2)
          
          # Moon distance
          moon_distance = 384_400e3
          
          # check if the asteroid will come closer than the moon
          if distance_from_earth < moon_distance:
              print("Asteroid will come closer than the moon")
          else:
              print("Asteroid will not come closer than the moon")
          

          p.s. В данный момент сетка выдаёт тексты около 20-50 строк максимум, потому Вы, конечно, легко можете поставить задачу, ответ которой просто не влезет в выдачу

          Как будет платное апи можно будет хоть целый многотомник из 1000 страниц каждый об этом родить, с подробными раскладками и уравнениями только это будет стоить сотни баксов


  1. Wesha
    10.01.2023 02:29
    +14

    я все больше и больше обращаюсь к ChatGPT3, чтобы улучшить свои навыки

    От количества дырок в коде ChatGPT3 меня просто в дрожь бросает. Опасаюсь даже себе представить, какой код был у автора, если "обращение к ChatGPT3" его улучшает...


    1. bogdanaks Автор
      10.01.2023 02:59
      +2

      он еще не совсем готов полностью заменить разработчиков-людей

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


      1. Wesha
        10.01.2023 03:08

        он еще не совсем готов

        ...ну да, примерно как термояд: "до появления практической ТЯЭС осталось 20 лет" — и так последние 60 лет.


        1. Nilomar
          10.01.2023 03:57

          сейчас стало меньше 20 лет, ITER в 2025 году собирается первый пуск сделать


          1. Wesha
            10.01.2023 05:15
            +7

            Ну, значит следующие 60 лет будет "до появления практической ТЯЭС осталось 5 лет". Аднака, прогресс!


          1. Tresimeno
            10.01.2023 12:04

            Пока у них там шоу-стоппер нарисовался - https://ru.euronews.com/2023/01/06/nib-iter-nuclear-fusion-delay

            Так что 25й год, думаю, в пролете. Как фанера над Кадарашем :)


  1. lair
    10.01.2023 03:19
    +12

    Вся эта статья была написана с помощью ChatGPT3

    ...и это заметно.

    В результате получилась хорошо написанная увлекательная статья

    Знаете, в чем проблема? Вы считаете эту статью хорошо написанной. А я - нет.

    А теперь давайте перенесем это различие мнений на код, который вы получили с помощью ChatGPT. Вот, скажем, ваша документация (которую вы не потрудились привести в виде текста):

    This function returns a random date between a given range

    ...но так же не говорят. Сравните: "Returns a random integer that is within a specified range."

    start: a Date object from which the random date should start from

    Во-первых, два раза "from". А во-вторых, вообще не очень понятно, что же имеется в виду. Что такое "random date should start from"?

    end: a Date object from which the random date should end

    ...а это вообще неграмотно.

    Ну и наконец:

    let start = new Date('January 1, 2019')

    Это, конечно, разрешенная запись, но не рекомендуемая (потому что ее поведение implementation-defined):

    When parsing date strings with the Date constructor (and Date.parse, they are equivalent), always make sure that the input conforms to the ISO 8601 format (YYYY-MM-DDTHH:mm:ss.sssZ) — the parsing behavior with other formats is implementation-defined and may not work across all browsers.

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


    1. vassabi
      10.01.2023 03:32
      +1

      Во-первых, два раза "from"

      ну, в филологию кстати ЧатЖПТ умеет гораздо лучше, чем в программирование поэтому второе from - это такая часть глагола https://idioms.thefreedictionary.com/start+from

      (см. еще look for, have to и куча их таких)


      1. lair
        10.01.2023 03:37

        Я знаю, что это "часть глагола". Она все равно не должна повторяться: https://forum.wordreference.com/threads/where-to-start-from-vs-from-where-to-start.3837213/


        1. AcckiyGerman
          10.01.2023 11:00
          -2

          Безотносительно ChatGPT, вы уже смахиваете на граммарнаци.


        1. vassabi
          10.01.2023 14:37

          что-то по вашей ссылке там нет обоснования - какой-то форум и вариант со "start from" обозначен зеленой галочкой.

          start: a Date object from which the random date should start from

          вот вам мой вариант перевода, если у вас к ней есть вопросы:

          start: объект типа Date с которого случайная дата должна начинаться


          1. lair
            10.01.2023 14:40

            что-то по вашей ссылке там нет обоснования

            Так по вашей ссылке тоже нет ни одного примера с удвоением.

            вот вам мой вариант перевода

            От того, что вы можете перевести фразу на русский, оригинальная фраза не становится грамотнее. Я не смог найти ни одного такого употребления вчера.


            1. vassabi
              10.01.2023 14:52

              эээ ... а что, должно быть правило?

              я как-то считал, что по умолчанию если это фразеологический глагол, то что удвоение что утроение (eg "For me to tell you that this is what I'm looking for!")

              И только если есть правило по которому он разрывается и не удваивается - тогда нет удвоения.


              1. lair
                10.01.2023 15:01

                а что, должно быть правило?

                Должны быть примеры употребления.

                For me to tell you that this is what I'm looking for!

                Вы путаете. В этой фразе два for независимы. Вы не можете ее так поменять, чтобы получилось "looking for me". А в исходной фразе в документации - это одно и то же from, потому что можно поменять на "the random date should start from which date?"

                И только если есть правило по которому он разрывается и не удваивается

                Я, повторюсь, что-то не смог найти ни одного примера, где было бы удвоение предлога, принадлежащего глаголу.


                1. lair
                  10.01.2023 16:04

                  было бы удвоение предлога, принадлежащего глаголу

                  Хотя меня вот поправляют из-за плеча, что и в "start from", и в "look for" предлоги как раз относятся к существительному (нет частого употребления, где не было бы дополнения; сравните с "look out" или "get up"). Но на удвоение это никак не влияет - его все равно нет.


  1. Kiel
    10.01.2023 04:37
    +6

    Можно гуглить, будет то же самое, тот же эффект. Просто это не так весело и прикольно как "новый невероятный ИИ". Но очнитесь, прошу и, лучше, заставьте этот инструмент генерить вменяемые юнит тесты, я устал их писать ;(


  1. wtclrsnd
    10.01.2023 05:55
    +2

    Жирок аж капает с экрана


  1. Jianke
    10.01.2023 06:17
    +6


  1. flancer
    10.01.2023 09:25
    +4

    Офигенно же! ChatGPT теперь может вносить в код новые ошибки - правдоподобие. Это когда на первый взгляд кажется, что всё ОК, а на самом деле - не туда, не то и не тогда. Появляется место для новой профессии - отладчик ИИ-кода.


    1. Wesha
      10.01.2023 10:06
      +12

      Появляется место для новой профессии - отладчик ИИ-кода.


  1. SWATOPLUS
    10.01.2023 11:53
    +1

    А что такое ChatGPT3? Из статьи понятно только, что это что-то очень "эффективное". Вот серьезно. Прочитав статью про него я должен идти гулить?


    1. SWATOPLUS
      10.01.2023 11:58

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


  1. shiru8bit
    10.01.2023 12:26
    +2

    И самое приятное? В результате получилась хорошо написанная увлекательная статья, которой я горжусь тем, что могу поделиться с вами.

    Как говорится - сам себя не похвалишь, никто не похвалит.


  1. outlingo
    10.01.2023 13:07

    Согласно исследованиям британских ученых, количество вхождений слова ChatGPT3 в тексте никак не коррелирует с качеством текста.


    1. tvr
      10.01.2023 15:33

      Но лучше индексируется поисковыми системами!/s