简介
GitHub Copilot 可以帮助你学习如何编码:无论你是没有任何编程经验,还是正在学习另一门编程语言。本指南专注于后者的使用场景:你已经熟悉一种或多种编程语言,现在想学习一门新语言。
先决条件
本指南假设你已经了解如何在 IDE 中使用 Copilot Chat 与 Copilot 行内建议。请参阅 在 IDE 中向 GitHub Copilot 提问 与 在 IDE 中获取代码建议。
从基础开始
使用 Copilot Chat 研究新语言的基础知识。了解该语言与已熟悉的语言有何不同。让 Copilot 告诉你在开始使用新语言编程前需要注意的主要事项。
示例提示:语言基础
以下是一些可以在 Copilot Chat 中使用的提示,帮助你学习新编程语言的基础。将 NEW-LANGUAGE 替换为你想了解的语言名称。
-
What is NEW-LANGUAGE best suited for? I am an experienced Python programmer, but I don't know anything about NEW-LANGUAGE. -
What are the main ways in which NEW-LANGUAGE differs from other languages? Explain the most essential things I need to know as an experienced programmer who wants to learn to code in NEW-LANGUAGE. -
How do you manage dependencies and packages in NEW-LANGUAGE? -
What are the most essential libraries or frameworks I should know about for NEW-LANGUAGE? -
What testing frameworks does the NEW-LANGUAGE community typically use? -
What are the biggest mistakes newcomers to NEW-LANGUAGE typically make with this language? -
As an experienced programmer learning NEW-LANGUAGE, what are the things I should focus on first?
使用 Copilot 作为你的个人教练
GitHub Copilot 能为你自动撰写代码。你可以让它生成代码块、函数,甚至完整的程序。但在学习新语言时,你应避免让 Copilot 为你写大量代码——尤其是当你在未经完整理解就直接接受它的建议时。若你不熟悉该语言,就不容易判断 Copilot 提供的代码是否已达到最佳水平。相反,你应把 Copilot 当作你的个性化训练助理。
当你让 Copilot 说明在新语言中如何实现特定功能时,务必要请它解释所给出的代码。如果你对代码或 Copilot 的解释仍有疑惑,请请求更简化的说明——或要求更详细的解释——直到你确信自己已经完全理解这段代码。始终避免使用你不完全理解的任何代码。
示例提示:请求解释
将 NEW-LANGUAGE 替换为你想了解的语言名称。
-
请对你之前的建议进行更详细的解释。我是 NEW-LANGUAGE 的新手,仍然不理解你提供的代码。 -
请告诉我如何在 NEW-LANGUAGE 中编写以下 Ruby 代码:people_over_50 = people.select { |person| person.age > 50 }。请解释您建议的 NEW-LANGUAGE 代码的每个部分。 -
为此 NEW-LANGUAGE 文件添加完整的注释,解释代码的每一部分功能。
在新语言中编写一个简单的程序
入门时,先写一个你已经熟悉的语言能够轻松实现的简单程序。可以请求 Copilot 帮忙。如果愿意,也可以让 Copilot 为你生成一个非常基础的程序,以便快速开始。随后,你可以查看代码、学习其工作原理,然后自行扩展。
示例提示:编写一个简单程序
-
对所建议的代码进行更详尽的注释。我想了解此代码的每一部分具体作用。 -
为该应用提出可改进的建议。
使用注释和 Copilot 的行内建议
作为不向 Copilot Chat 请求基本代码的替代方案,你可以在编辑器中写下注释,然后观察 Copilot 给出的代码。
例如
-
在 IDE 中,创建一个符合所使用语言文件后缀名的文件。例如,如果你正在学习 Rust,创建一个名为
example.rs的文件。 -
复制并粘贴以下注释行。
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.
// 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. -
如有必要,请将注释语法更改为与你使用的语言相匹配。
-
将
NEW-LANGUAGE替换为你正在使用的语言名称。这以及文件后缀会告诉 Copilot 使用哪种语言。 -
按回车键并使用 Tab 键查看并接受 Copilot 提供的行内建议。继续接受建议,直至得到完整的程序。
-
阅读代码,了解其工作原理。如果有不明白的部分,请让 Copilot 解释。例如
-
选中一行或多行你不理解的代码。
-
在 VS Code 中
右键点击所选代码,选择 Copilot > Explain。
在 JetBrains IDE 中
右键点击所选代码,选择 GitHub Copilot > Explain This。
在 Visual Studio 中
打开 Copilot Chat 面板,输入提示
Explain this code。
-
向 Copilot 提出具体问题
在学习新语言的过程中,应当专注于完成特定任务的小代码单元。向 Copilot 提出明确、范围有限的问题,以帮助熟悉该语言的语法和惯用法。
示例提示:具体问题
将 NEW-LANGUAGE 替换为你想了解的语言名称。
将现有代码转换为新语言
有效利用已有编程经验的一种方式是挑选一段你熟悉的代码,将其转换为你正在学习的新语言,然后观察相同操作在新语言中的实现方式。
- 找一段独立的代码块,例如一个函数。
- 请求 Copilot Chat 将其转换成你正在学习的语言。
- 将 Copilot 提供的代码粘贴到编辑器中新建的文件中。
- 并排查看两段代码,分析相同操作在新语言中的实现。有哪些相似点和不同点?
- 让 Copilot 解释你不理解的代码部分。
阅读新语言的现有代码
在熟悉了新语言的基础后,花时间阅读用该语言编写的已有代码。
找一个使用新语言的项目,打开其中的文件,向 Copilot Chat 请求该文件的简要概述。然后逐行阅读代码。你能理解所使用的技术吗?你了解库函数和内置函数的工作方式吗?你能跟踪数据在代码中的流向吗?
请 Copilot 解释你不懂的代码片段。
阅读完代码后,询问 Copilot 是否能提出改进建议。
避免认为 Copilot 永远是对的
Copilot 是帮助你学习新语言的工具,但——和所有 AI 助手一样——它并非万无一失。它可能会出错,甚至给出不够优化的代码。
Copilot 通过大量代码进行训练,但每种语言的建议质量取决于公开仓库中该语言的代码量和多样性。例如,JavaScript 在公共仓库中占比很高,Copilot 通常能给出准确且有帮助的建议。而对于在公共仓库中代表性不足的语言,Copilot 的建议质量可能会稍低。
始终检查 Copilot 给出的代码,并在使用前确保自己理解它。在审查代码时,寻找可以提升性能、简化实现或提升可维护性的改进点。
如果你觉得 Copilot 的建议并非最佳方案,可以让它尝试不同的实现方式。
如果运行代码时出现错误,请向 Copilot 提供错误详情并请求修复代码。
您还应检查 Copilot 是否遵循您的编码风格指南。如果没有,您可以修改仓库的自定义指令,以提示 Copilot 今后遵守您的指南。请参阅 为 GitHub Copilot 添加仓库自定义指令。
示例提示:检查你的工作
-
检查此代码的语法错误。 -
评估此代码是否达到最佳性能。 -
建议此代码的其他写法。