Skip to main content

使用 GitHub Copilot 学习新的编程语言

GitHub Copilot 聊天功能 通过学习如何使用新的编程语言进行编码,可帮助你扩展编程技能。

简介

GitHub Copilot 可帮助你了解如何编写代码:无论你以前没有编程体验,还是在学习其他编程语言时。 本指南专注于后一种使用场景:你已经掌握了一种或多种编程语言的编程知识,但现在希望学习一门新的语言。

先决条件

本指南假定你知道如何在 IDE 中使用 副驾驶聊天 和 Copilot 内联建议。 请参阅 在 IDE 中向 GitHub Copilot 提问问题使用 GitHub Copilot 在 IDE 中获取代码建议

先了解基础知识

使用 副驾驶聊天 了解这门新语言的基础知识。 了解此语言与你已知道的语言有何不同。 在开始使用新语言编码之前,请 Copilot 询问你需要注意的主要事项。

示例提示:语言基础知识

你可以在 副驾驶聊天 中使用这些提示,来帮助你学习一门新编程语言的基础知识。 将 NEW-LANGUAGE 更改为你想要了解的语言的名称。

  • NEW-LANGUAGE 最适合用于什么? 我是一位经验丰富的Python程序员,但我对新语言一无所知。

  • 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.

  • 演示如何使用 NEW-LANGUAGE 编写以下 Ruby 代码: 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.

用新语言编写简单的程序

若要开始,请编写一个简单的程序,这个程序你可以使用你已经知道的语言轻松编写。 向 Copilot 寻求帮助。 如果你愿意,你可以要求 Copilot 你编写一个非常简单的程序,只是为了帮助你入门。 然后,你可以查看代码,了解它的工作原理,并在此基础上自行扩展程序。

示例提示:编写简单的程序

  • 显示用于请求用户输入的简单有用命令行工具的 Rust 代码,并根据输入的内容返回一些有用的信息。

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

  • 给我一个用 Kotlin 编写的非常小的 Android 应用的代码。

  • Suggests ways I could enhance this app.

使用注释和 Copilot 内嵌建议

作为要求 副驾驶聊天 为新程序建议基本代码的替代方法,可以在编辑器中编写注释,并查看代码 Copilot 建议的内容。

例如:

  1. 在 IDE 中,创建一个文件,并使用与你所使用的语言相对应的文件扩展名。 例如,如果要学习 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. 按回车键和 Tab 键可查看并接受 Copilot 提供的内联建议。 继续接受建议,直到你拥有一个完整的程序为止。

  6. 通读代码以查看其工作原理。 如果你不了解代码的任何部分,请要求 Copilot 解释它。 例如:

    1. 选择一行或多行你不理解的代码。

    2. In VS Code:

      右键单击所选代码,然后选择“ Copilot > 解释”。

      在 JetBrains IDE 中:****

      右键单击所选代码,然后选择“ GitHub Copilot > 解释这一点”。

In Visual Studio:

    打开副驾驶聊天面板,并输入提示词`Explain this code`。

向 Copilot 提出具体问题

学习新语言时,应处理执行特定任务的小型代码单元。 询问 Copilot 定义明确的范围较窄的问题,以帮助你熟悉新语言的语法和习惯。

示例提示:具体问题

NEW-LANGUAGE 更改为你想要了解的语言的名称。

  • 解释可以使用 NEW-LANGUAGE 编码条件的所有各种方法。

  • 在 JavaScript 中,我会编写: The ${numCats === 1 ? 'cat is' : 'cats are'} hungry.。 如何使用 NEW-LANGUAGE 编写此文?

  • 在 NEW-LANGUAGE 中,如何将字符串转换为所有小写?

  • NEW-LANGUAGE 中的 num++ 等效项是什么?

  • 如何运行以 NEW-LANGUAGE 编程语言编写的程序?

  • 如何为 NEW-LANGUAGE 项目编译单个可执行文件,并将其作为发布分发?

将现有代码转换为新语言

利用你已有的编程知识的一个有效方法是,选取你熟悉的一种语言中的代码,将其转换为新语言的代码,然后对比并研究在新语言中如何实现相同的操作。

  1. 查找独立代码片段。 例如函数。
  2. 要求 副驾驶聊天 将其转换为正在学习的语言。
  3. 将建议的代码复制并粘贴到编辑器中的新文件中。
  4. 并排查看这两段代码,分析如何用新语言完成相同的操作。 相似点和不同点有哪些呢?
  5. 让 Copilot 解释任何你不理解的代码。

阅读用新语言编写的现有代码

当你对新语言的基础知识感到熟悉后,可以花时间阅读用该语言编写的现有代码。

查找使用新语言的project并查看代码。 打开文件并请求 副驾驶聊天 简要概述文件用途。 逐行阅读代码。 你是否理解所使用的技术? 你是否了解这些库和内置函数的工作原理? 您能通过代码跟踪数据流吗?

要求 Copilot 解释你不理解的代码的任何部分。

完成代码阅读后,询问 Copilot 它是否可以建议任何改进代码的方法。

避免认为 Copilot 总是正确的

Copilot 是一个可以帮助你学习一门新语言的工具,但和所有 AI 助手一样,它并非万无一失。 它可能会出错,也可能会建议一些并不最优的代码。

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.