Skip to main content

Изучение нового языка программирования с помощью GitHub Copilot

Чат GitHub Copilot вы можете расширить навыки программирования, обучая код на новом языке программирования.

Введение

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

Необходимые компоненты

В этом руководстве предполагается, что вы знаете, как использовать Копилот Чат и Copilot встроенные предложения в интегрированной среде разработки. См. Задавать вопросы GitHub Copilot в вашем IDE и Получение предложений по коду в вашем IDE с помощью GitHub Copilot.

Начните с основ

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

Примеры запросов: основы языка

Это некоторые запросы, которые можно использовать Копилот Чат для изучения основы нового языка программирования. Измените NEW-LANGUAGE имя языка, о который вы хотите узнать.

  • Для чего лучше всего подходит NEW-LANGUAGE? Я опытный Python программист, но я не знаю ничего о NEW-LANGUAGE.

  • Каковы основные способы, в которых NEW-LANGUAGE отличается от других языков? Объясните наиболее важные вещи, которые мне нужно знать как опытный программист, который хочет научиться коду в NEW-LANGUAGE.

  • Как установить NEW-LANGUAGE?

  • Как работает обработка ошибок в NEW-LANGUAGE?

  • Как управлять зависимостями и пакетами в NEW-LANGUAGE?

  • Каковы наиболее важные библиотеки или платформы, о которых я должен знать для NEW-LANGUAGE?

  • Какие платформы тестирования обычно использует сообщество NEW-LANGUAGE?

  • Каковы самые большие ошибки новичков, чтобы NEW-LANGUAGE обычно сделать с этим языком?

  • Как опытный программист учит NEW-LANGUAGE, что такое вещи, которые я должен сосредоточиться на первую?

Использование Copilot в качестве личного тренера

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

Когда вы спрашиваете Copilot , как закодировать что-то конкретное на новом языке, вам следует попросить его объяснить код, который он предлагает. Если вы не полностью понимаете код или Copilotего описание, попросите упрощенное объяснение или попросите дополнительные сведения, пока вы не поймете код. Всегда избегайте использования любого кода, который вы не уверены в том, что вы понимаете.

Примеры запросов: запрос объяснения

Измените NEW-LANGUAGE имя языка, о который вы хотите узнать.

  • Explain your previous suggestion in more detail. I am new to NEW-LANGUAGE and I don't understand the code you suggested.

  • Показать мне, как написать следующий код Ruby в NEW-LANGUAGE: people_over_50 = people.select { |person| person.age > 50 } Объясните каждую часть предлагаемого кода NEW-LANGUAGE.

  • Add comprehensive comments to this NEW-LANGUAGE file to explain what each part of the code does.

Написание простой программы на новом языке

Чтобы get started, напишите простую программу, которую вы сможете легко написать на уже знакомом вам языке. Обратитесь Copilot за помощью. Если вы предпочитаете, вы можете попросить Copilot написать очень простую программу для вас, только чтобы начать работу. Затем вы можете изучить код, узнать, как он работает, а затем расширить программу самостоятельно.

Примеры запросов: написание простой программы

  • Показать мне код Rust для простого, полезного средства командной строки, который запрашивает ввод пользователя и возвращает полезную информацию на основе введенных данных.

  • Comment the suggested code more thoroughly. I want to understand what every part of this code does.

  • Дайте мне код для очень маленького приложения Android, написанного в Kotlin.

  • Suggests ways I could enhance this app.

Использование комментариев и Copilot встроенных предложений

В качестве альтернативы Копилот Чат предложить базовый код для новой программы можно написать комментарии в редакторе и увидеть, какой код Copilot предлагает.

Например:

  1. В интегрированной среде разработки создайте файл с соответствующим расширением имени файла для используемого языка. Например, если вы изучаете Rust, создайте файл с именем example.rs.

  2. Скопируйте и вставьте следующие строки комментариев.

    Rust
    // NEW-LANGUAGE command line program to find the day of the week for a date.
    // The program does the following:
    // Prompt user to input string in format YYYYMMDD
    // Parse the string to check that it is a valid date.
    // If it's not, print an error message and exit.
    // Calculate the day of the week for the given date.
    // Print the day of the week to the user.
    
  3. При необходимости измените синтаксис примечания, чтобы он соответствовал используемому языку.

  4. Измените NEW-LANGUAGE имя используемого языка. Это и расширение имени файла будет указывать Copilot , какой язык следует использовать.

  5. Нажмите клавишу RETURN и TAB, чтобы увидеть и принять встроенные предложения, которые Copilot предлагают. Продолжайте принимать предложения, пока не будет завершена программа.

  6. Прочитайте код, чтобы узнать, как это работает. Если вы не понимаете какую-либо часть кода, попросите Copilot объяснить его. Например:

    1. Выберите одну или несколько строк кода, которые вы не понимаете.

    2. В VS Code:

      Щелкните правой кнопкой мыши выбранный код и выберите Copilot > "Объяснить".

В idEs JetBrains:

    Щелкните правой кнопкой мыши выбранный код и выберите **GitHub Copilot** > **"Объяснить это**".

  

В Visual Studio:

Копилот Чат Откройте панель и введите запросExplain this code.

Задать Copilot конкретные вопросы

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

Примеры запросов: конкретные вопросы

Измените NEW-LANGUAGE имя языка, о который вы хотите узнать.

  • Объясните все различные способы, которыми можно закодировать условные условия в NEW-LANGUAGE.

  • В JavaScript я бы написал: The ${numCats === 1 ? 'cat is' : 'cats are'} hungry. Как написать это в NEW-LANGUAGE?

  • В NEW-LANGUAGE как преобразовать строку во все строчные регистры?

  • Что такое эквивалент num++ в NEW-LANGUAGE?

  • Как запустить программу, написанную на языке программирования NEW-LANGUAGE?

  • Как скомпилировать один исполняемый файл для проекта NEW-LANGUAGE, который можно распространить как выпуск?

Преобразование существующего кода в новый язык

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

  1. Найдите автономный фрагмент кода. Например, функция.
  2. Попросите Копилот Чат преобразовать его в язык, который вы изучаете.
  3. Скопируйте и вставьте предлагаемый код в новый файл в редакторе.
  4. Просмотрите два фрагмента кода параллельно и проанализируйте, как эта же операция выполняется на новом языке. Каковы сходства и различия?
  5. Узнайте Copilot , как объяснить любой код, который вы не понимаете.

Чтение существующего кода на новом языке

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

Найдите project, который использует новый язык, и посмотрите код. Откройте файл и попросите Копилот Чат краткое представление о назначении файла. Затем считывает строку кода по строке. Вы понимаете методы, которые использовались? Знаете ли вы, как работает библиотека и встроенные функции? Можете ли вы отслеживать data flow через код?

Попросите Copilot объяснить все части кода, которые вы не понимаете.

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

Избегайте допущения, что это Copilot всегда правильно

Copilot — это инструмент, который поможет вам научиться новому языку, но, как и все помощники по ИИ, это не является непобедимым. Это может сделать ошибки, и он может предложить код, который не является оптимальным.

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

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

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

Если вы запускаете код и создаете ошибку, предоставьте Copilot сведения об ошибке и попросите его исправить код.

Вы также должны проверить, что Copilot следует соблюдать рекомендации по стилю написания кода. Если это не так, вы можете изменить пользовательские инструкции репозитория, чтобы предложить Copilot придерживаться рекомендаций в будущем. См. Добавление пользовательских инструкций репозитория для GitHub Copilot.

Примеры запросов: проверка работы

  • Check this code for syntax errors.

  • Assess whether this code is optimally performant.

  • Suggest alternative ways this code could have been written.