paint-brush
作为编程导师,我使用 ChatGPT 学到了什么经过@zawistowski
5,163 讀數
5,163 讀數

作为编程导师,我使用 ChatGPT 学到了什么

经过 Wojciech Zawistowski22m2023/05/08
Read on Terminal Reader

太長; 讀書

没有什么比经验丰富的导师更能加速您的成长了。 ChatGPT 可以作为合理的替代品吗?我是一名拥有 20 多年经验的开发人员,我对它进行了测试。
featured image - 作为编程导师,我使用 ChatGPT 学到了什么
Wojciech Zawistowski HackerNoon profile picture
0-item
1-item

没有什么比经验丰富的导师更能加速您的成长。然而,找到一个可能具有挑战性,而且它们的可用性通常是有限的。


另一方面,像ChatGPT这样的 AI 代理可以 24/7 全天候使用,而且似乎也知识渊博。这样的代理人可以作为真正的人类导师的合理替代品吗?


我特别感兴趣的是更多的“元”建议——只有通过丰富的经验才能获得的小技巧和窍门,它们将帮助你作为开发人员成长和成熟——而不仅仅是生成或解释代码。


作为一个拥有超过 20 年经验并指导过几位初级开发人员的人,我很好奇这样的 ChatGPT 建议对于初学者来说是否合理、全面和可操作。


让我们来快速试驾一下吧!

长话短说;博士。

如果您对 ChatGPT 建议的质量感到好奇,但又不想经历整个讨论和我详细的分步评论,请随时直接跳到最后一部分。

一个简短的传奇。

💬我的提示。


🤖 ChatGPT 答案。


🤔我的想法/评论。

设置。

💬担任经验丰富的专业软件开发人员,拥有超过 10 年的经验。想象一下,您正在指导一位经验不超过 2-3 年的年轻初级同事。我会问你与编程和软件开发职业相关的不同问题。我会问他们这个年轻的开发者。以对我成为更好的开发人员和专业成长最有帮助的方式回答他们。


🤖 当然,我是来帮你的!如果您对编程或您的软件开发职业有任何疑问,请随时提出,我将根据我的经验尽力为您提供指导。


🤔到目前为止,还不错。让我们开始吧!


“百万美元”问题:成为更好开发人员的 10 个生活窍门。

💬请分享 10 个快速且易于实施的生活小窍门,它们将立即帮助我成为更好的开发人员。


🤖 当然!以下是您可以快速实施以提高开发人员技能的 10 个生活窍门:


  1. 使用键盘快捷键:学习和使用 IDE 或特定于编辑器的键盘快捷键来更快地导航和操作代码。它将节省您的时间并提高您的工作效率。


  2. 遵循番茄工作法:将您的工作分成小的、可管理的间隔(通常为 25 分钟),然后短暂休息。这项技术可以帮助您保持专注并保持一致的工作节奏。


  3. 掌握版本控制:熟悉 Git 或其他版本控制系统。这将帮助您跟踪代码中的更改、与他人协作并在需要时恢复到以前的版本。


  4. 自动执行重复性任务:使用脚本或工具自动执行代码格式化、文件重命名或项目脚手架等日常任务。这将节省您的时间并减少人为错误的机会。


  5. 阅读和编写简洁的代码:采用易于阅读和理解的简洁编码风格。遵循命名约定、缩进和代码结构的最佳实践。这将使您的代码更易于维护,并减少调试时间。


  6. 评论你的代码:写有意义的评论来解释你的代码的目的和功能。这将使其他人更容易理解您的代码,并使您在以后重新访问代码时更容易回忆起您的思维过程。


  7. 寻求代码审查:请您的同事或导师定期审查您的代码。这将帮助您确定需要改进的领域并从他们的专业知识中学习。


  8. 保持好奇:不断探索新的语言、框架和工具。这将帮助您了解最新的行业趋势并拓宽您的技能组合。


  9. 将问题分解成更小的部分:当遇到一个复杂的问题时,将其分解成更小、更易于管理的任务。这将帮助您保持专注并防止您不知所措。


  10. 照顾好自己:优先考虑您的身心健康。定期锻炼,充足的睡眠,并在需要时休息一下。健康的身心将帮助您提高工作效率和专注于工作。


请记住,成为更好的开发人员是一个持续的过程,需要时间和奉献精神。但是通过实施这些生活小窍门,您可以加速成长并不断提高技能。


🤔 这个列表看起来大部分是可靠的,尽管有些随机并且不是特别具有开创性。但是,我确实向 ChatGPT 询问了初学者的建议,所以相对明显的答案是可以理解的。


其中一些技巧似乎并不那么容易实施(这是我的提示的一部分)。其他一些有点模糊,需要进一步解释——但由于 ChatGPT 旨在迭代使用,通过后续问题越来越深入地挖掘,我想这很好。有几点我不完全同意,但我更多地认为它们是一种观点,而不是不正确的。总的来说,还不错!


让我们更深入地探讨每个建议:


  1. 使用键盘快捷键:可靠的建议。快速且易于实施,无疑会提高您的工作效率。让我感到惊讶的一件事是为什么只有简单的键盘快捷键?利用更高级的功能,如代码智能、代码片段、自动格式化程序、代码生成器和 AI 助手,如 GitHub Copilot(或 ChatGPT 本身,duh)将同样容易上手并提供更大的推动力。


  1. 遵循番茄工作法:好建议。你绝对应该尝试一下。如果您以前从未听说过 Pomodoro,您可能需要用谷歌搜索它或向 ChatGPT 询问后续问题,但它在其他方面非常简单明了。


  1. 掌握版本控制:很好的建议,但绝对不是救命稻草。即使是“大师”这个词也清楚地表明这不是一个快速简单的修复方法。我还认为版本控制是您的主要技术堆栈不可或缺的一部分,类似于您的编程语言、主要框架或数据库,而不是提高您的生产力的“黑客”。但除此之外,这个建议是正确的。


  1. 自动化重复性任务:可靠的建议,但同样需要进一步探索。级别太高,不能立即实施。


  1. 阅读和编写干净的代码:阅读大量干净的代码(或一般代码)是极好的建议——而且易于实施。唯一棘手的部分是作为初学者如何知道哪些代码是干净的以及在哪里可以找到它。这又需要更深入的探究。然而,编写干净的代码是完全不同的事情。这是终生精通手艺的一部分,整本书都是关于这个主题的。你绝对应该研究它,但就像掌握版本控制一样,它离生活窍门还很远。


  1. 评论您的代码:这是我认为值得商榷的第一个提示(尽管,正如我之前所说,不是因为它显然是错误的,而是因为个人喜好)。关于评论有两种立场:大量评论与使代码不言自明以至于您不需要评论(除非您需要解释代码背后的业务目的)。我是坚定的第二阵营,所以ChatGPT非常权威的“写评论”并没有引起我的共鸣。另一方面,它也说要写有意义的注释,解释你的代码的用途,我非常赞同。但它也说要解释你的代码的功能,我认为这是一种不好的做法并且浪费时间。所以,我对这个有复杂的感情。


  1. 寻求代码审查:这个建议尽可能可靠且易于应用。您绝对应该尽可能多地寻求代码审查,尤其是作为初学者。


  1. 保持好奇心:这是我觉得有些争议的第二条建议。探索新的语言、框架和工具总体上是个好建议(尽管我会争论“不断地”——它闻起来像流行语驱动的开发),但对于只有一两年经验的初学者来说,这可能不是最好的策略经验。作为大三学生,你应该更多地专注于为最佳实践和原则打下坚实的基础,并深入学习它们,当你专注于掌握一个堆栈一段时间时,这会更容易。但是,坦率地说,我在这里吹毛求疵,我不会说这条建议是错误的。


  1. Break problems into smaller pieces :可靠的建议,但同样,它太高级了。有效地分解问题并非易事。要在实践中真正实施这一点,需要进一步深入研究。


  1. 照顾好自己:非常好的和适用的建议。 ChatGPT 包含这样的建议实际上很好,它与硬技术技能没有直接关系。


好吧,我们已经了解了所有提示。不错,真不错。但是,并非所有这些都立即适用。让我们深入研究几个,看看我们离核心有多近

键盘快捷键 - 深入挖掘。

💬让我们更深入地研究“使用键盘快捷键”提示。如果我应该学习所有可能的快捷方式,或者是否有任何特定类别的快捷方式我应该关注,您能详细说明一下吗?


🤖 当然!说到键盘快捷键,关键是要专注于学习那些对您的生产力和效率影响最大的快捷键。您无需学习每一个可用的快捷方式,而是优先考虑最能为您节省时间并有助于简化工作流程的快捷方式。


以下是一些需要重点关注的键盘快捷键类别:


  1. 导航快捷方式:这些快捷方式可帮助您快速浏览代码、在文件或选项卡之间跳转以及查找特定符号或关键字实例。示例包括“转到定义”、“转到行”和“查找所有引用”。


  2. 编辑快捷方式:这些快捷方式可帮助您通过剪切、复制、粘贴和格式化文本来操作代码。示例包括“重复行”、“向上/向下移动行”和“切换注释”。


  3. 重构捷径:重构是维护干净高效代码的重要组成部分。帮助您快速重构代码的快捷方式可以为您节省大量时间。示例包括“重命名符号”、“提取方法”和“更改签名”。


  4. 调试快捷方式:调试是开发过程中至关重要的部分。帮助您管理断点、逐步执行代码和检查变量的快捷方式可以简化您的调试会话。示例包括“Toggle Breakpoint”、“Step Over”和“Step Into”。


  5. 特定于 IDE 的快捷方式:您的 IDE 或代码编辑器可能具有可通过快捷方式访问的独特功能或工具。熟悉这些快捷方式以充分利用您选择的开发环境。


请记住,这些快捷方式的实际组合键可能因您使用的 IDE 或代码编辑器而异。请参阅您的编辑器的文档或设置,以根据您的喜好发现和自定义这些快捷方式。


学习捷径时,从一次专注于几个捷径开始。随着您对它们越来越熟悉,逐渐将更多快捷方式纳入您的日常工作流程。随着时间的推移,使用这些快捷方式将成为第二天性,您会发现您的生产力和效率有了显着提高。


🤔这是一个很好的分类!我印象深刻。我也喜欢每个类别的具体示例。这一级别的建议已经是可操作的——您可以轻松地在您的 IDE 文档中查找“导航快捷方式”或“转到定义”。此外,类别选择得当。它们确实可以显着提高您的工作效率。


我仍然缺少一件事:更重要的生产力助推器,如自动完成或代码片段。我不想明确地询问它们,因为我假装不知道它们的存在。但是,让我们稍微改变一下规则:


💬 你说我应该学习快捷方式“以更快地导航和操作代码”,“关键是专注于学习那些将对你的生产力和效率产生最重大影响的”,并“优先考虑那些将为您节省最多时间并帮助简化您的工作流程”。除了键盘快捷键之外,还有其他工具或 IDE 功能可以帮助我实现这些目标吗?


🤖 绝对!除了键盘快捷键,还有许多其他工具和 IDE 功能可以帮助提高您的生产力和效率。这里是其中的一些:


  1. 代码片段和模板:许多IDE和编辑器都支持代码片段或模板,只需敲击几下即可生成常用的代码结构或样板代码。这些可以节省您的时间并有助于保持代码的一致性。


  2. 自动完成和 IntelliSense :现代 IDE 和代码编辑器通常提供智能代码完成,这会根据当前上下文建议变量、方法或关键字的完成。这可以加快您的编码过程并减少拼写错误或语法错误的可能性。


  3. 集成调试:集成到 IDE 中的调试工具允许您在不离开开发环境的情况下设置断点、逐步执行代码和检查变量。这种无缝调试体验可以帮助您更有效地发现和修复问题。


  4. 版本控制集成:许多 IDE 提供对 Git 等版本控制系统的内置支持。这种集成可以简化常见的版本控制任务,例如提交更改、创建分支和解决冲突,所有这些都在您的 IDE 中完成。


  5. 代码分析和 linting :实时代码分析和 linting 工具可以帮助您在编写代码时识别潜在问题,例如语法错误、未使用的变量或代码风格违规。这可以节省您的调试时间并确保您的代码符合最佳实践。


  6. 重构工具:一些 IDE 具有可以自动重构代码的内置工具,例如提取方法、重命名变量或更改方法签名。这些工具可以帮助您无需手动操作即可维护干净高效的代码。


  7. 任务和项目管理:许多 IDE 和编辑器都具有允许您管理任务、创建待办事项列表和跟踪项目进度的功能。这可以帮助您保持井井有条并更有效地确定工作的优先级。


  8. 定制:大多数 IDE 和编辑器都提供高水平的定制,包括主题、插件和配置选项。根据您的喜好定制您的开发环境可以帮助您更舒适、更高效地工作。


  9. 集成终端:在您的 IDE 中拥有一个集成终端可以让您运行命令、构建项目或与版本控制交互而无需在窗口之间切换,从而节省您的时间。


这些工具和功能可以显着改善您的编码体验,使您更加高效和多产。花时间探索您的 IDE 或代码编辑器的功能,并毫不犹豫地尝试可以增强您的工作流程的新工具或插件。


🤔现在我们正在谈论!该列表并不完全详尽(例如,它遗漏了代码自动格式化程序,令人惊讶的是它仍然遗漏了 AI 助手——ChatGPT 没有意识到自己的能力吗?还是它太谦虚了?)但它足够可靠和广泛对初学者开发者真正有用。另外,既然您已经意识到现代开发人员工具的丰富性,您就可以逐渐深入挖掘。

版本控制 - 深入了解更可操作的、一口大小的技巧。

💬你给我的提示之一是“主版本控制”。但这真的是一种快速简便的生活窍门吗?在我看来,要完全掌握版本控制是一个漫长的过程。是否有任何与版本控制相关的快速提示,可以立即实施?


🤖 掌握版本控制可能是一个较长的过程,这是正确的,但是您可以立即实施一些快速提示和最佳实践,以更有效地使用 Git 等版本控制系统。这里有一些:


  1. 以小单位频繁提交:进行包含单个逻辑更改的小而集中的提交。这样可以更轻松地了解项目的历史、定位问题并在必要时还原更改。


  2. 编写描述性提交消息:提交更改时,编写清晰简洁的提交消息来描述更改及其目的。这有助于您和您的团队了解项目历史,并使以后更容易找到特定的更改。


  3. 使用分支:为新功能、错误修复或实验创建分支。这使您的主分支保持稳定,并允许您在不影响主代码库的情况下并行处理多个任务。


  4. 定期合并:定期将更改从主分支合并到您的功能分支中,以使它们保持最新,并在需要集成您的更改时最大限度地减少合并冲突。


  5. Pull before you push :在将更改推送到远程存储库之前,请始终从远程拉取最新更改,以确保您的本地存储库是最新的。这有助于防止冲突并确保更顺畅的协作体验。


  6. 拥抱 .gitignore :使用 .gitignore 文件排除不需要跟踪的文件,例如临时文件、构建工件或特定于 IDE 的文件。这使您的存储库保持清洁并专注于基本代码。


这些快速提示可以帮助您更有效地使用版本控制系统并简化您的工作流程。虽然它们可能不会让您在一夜之间成为版本控制大师,但它们可以作为您继续学习和完善技能的坚实基础。


🤔非常光滑。虽然这些技巧不会引导您完全掌握版本控制,但它们现在更易于操作——总的来说,考虑到它是给初学者的建议,它们相当不错。


有些点仍然有点模糊,例如,“使用分支”。版本控制分支策略是一个广泛而复杂的主题,如果不进一步探索,这个特定的观点不是很可行。然而,它是一个单一的异常值,至少为更深入的研究提供了一个明确的起点。


总的来说,还不错!

阅读干净的代码 - 消除歧义。

💬你给了我“阅读干净的代码”的提示。但是,作为初学者,我怎么知道哪些代码是干净的呢?如何识别?在哪里可以找到这样的代码来阅读?


🤖 作为初学者,乍一看可能很难识别干净的代码。然而,通过实践和接触编写良好的代码,您将开始理解什么是干净的代码。以下是干净代码的一些一般准则和特征:


  1. 可读性:干净的代码易于阅读和理解。它具有清晰的结构、有意义的变量和函数名称以及适当的缩进。它还遵循一致的命名约定和样式指南。


  2. 模块化:干净的代码被组织成小的、集中的函数或执行单个任务的方法。每个模块应该有单一的职责,代码应该分成逻辑组件。


  3. 可维护性:干净的代码易于修改、扩展和重构。它避免重复代码(DRY 原则)并遵循最佳实践,以最大限度地减少在进行更改时引入错误的机会。


  4. 文档和注释:干净的代码有很好的文档记录,注释解释了代码的目的和功能。注释应该简明扼要,并且只提供阅读代码本身不会立即显现的信息。


  5. 效率:干净的代码在性能和资源使用方面是高效的。它避免了不必要的复杂性,并且所使用的算法和数据结构非常适合手头的问题。


要找到干净的代码以供阅读和学习,请考虑以下来源:


  1. 流行的开源项目:GitHub 等平台上许多流行的开源项目都有高质量的代码,这些代码已经过多个贡献者的审查和完善。探索使用您正在使用的语言或框架的项目,以查找干净代码的示例。


  2. 编码最佳实践:查找有关您正在使用的编程语言的编码最佳实践的文章、书籍或课程。这些资源通常提供干净代码的示例和编写代码的指南。


  3. 代码审查:参与团队内的代码审查或寻求经验丰富的开发人员或导师的反馈。观察他们的反馈和建议可以帮助您学会识别干净的代码并改进您自己的编码风格。


  4. 编码挑战:LeetCode、HackerRank 或 Codewars 等网站提供编码挑战以及其他用户提交的解决方案。查看这些解决方案可以帮助您了解解决问题的不同方法,并让您接触到清晰的代码示例。


请记住,识别和编写干净的代码是一种随着时间的推移而发展起来的技能。当您阅读和编写更多代码时,您将更加善于识别干净的代码并在您自己的工作中采用最佳实践。


🤔 这一次,结果充其量是meh。


答案的第一部分基本上指出,您可以通过以下事实来识别干净的代码,即它遵循非常高级和模糊的干净代码原则(其中一些原则,如评论和效率,甚至值得商榷——例如,确实代码真的需要高效才能干净和可读吗?)。


第二部分也是碰碰运气。参与代码审查是一个很好的建议(尽管可以更强调的是,您不仅应该审查您的代码,而且还应该尽可能多地自己进行审查,以向更多高级开发人员的代码学习)。阅读有关编码最佳实践的书籍和文章是合理的建议,但相当明显,不会增加太多价值。从开源项目和编码挑战网站学习可能是极好的建议,但这些资源通常也包含错误代码,并且它仍然无法解决初学者如何识别哪个是哪个的难题。


让我们尝试更深入地挖掘:


💬 你说要找到干净的代码来阅读和学习,我可以看看流行的开源项目,因为它们中的许多都有高质量的代码。但是许多开源项目也有低质量的代码。我如何辨别哪些开源项目是高质量的,哪些不是?


🤖 你说得对,并不是所有的开源项目都有高质量的代码。识别优质开源项目,可以考虑以下因素:


  1. 人气:在 GitHub 等平台上拥有大量 star、fork 或 watchers 的项目通常表明该项目受到社区的好评。虽然受欢迎程度并不能保证代码质量,但它可以是一个有用的指标。


  2. 活跃的维护者和贡献者:高质量的项目往往有活跃的维护者和多元化的贡献者群体。寻找具有定期提交、更新和错误修复历史记录的项目。健康的贡献者数量和活跃的社区可以表明代码库在不断改进和完善。


  3. 清晰的文档:文档完备的项目通常是维护良好且高质量代码库的标志。寻找具有全面自述文件、API 文档和使用指南的项目。


  4. 代码审查和讨论:检查项目的拉取请求和问题讨论。一个健康的项目将有全面的代码审查、建设性的反馈以及围绕改进和错误修复的积极讨论。


  5. 遵守编码标准:高质量的项目通常遵循其使用的编程语言或框架的编码标准和最佳实践。寻找一致的格式、命名约定和代码组织。


  6. 自动化测试:具有强大的自动化测试套件的项目表明维护人员关心代码质量并确保软件按预期工作。寻找具有高测试覆盖率和对每个提交或拉取请求运行测试的持续集成 (CI) 管道的项目。


  7. 依赖关系和许可:高质量的项目应该有一个清晰的依赖关系列表,以及它们相应的许可。这表明维护者关注项目的法律和操作方面。


要开始搜索高质量的开源项目,您可以浏览精选的列表或集合,例如 GitHub 上的 Awesome Lists,它汇总了各个领域中受欢迎和备受推崇的项目。您还可以查看由业内知名的知名组织或开发人员维护的项目。


请记住,即使是高质量的项目也可能有可以改进的地方。随着您获得更多经验,您将更好地理解干净的代码,并更好地评估各种开源项目的质量。


🤔 这个答案又一次不错了。虽然项目受欢迎程度或良好文档等因素不一定能保证代码干净,但所有这些因素结合起来都是一个不错的代理——可能是你能得到的最好的,因为从来没有硬性保证。查看精选列表的建议虽然更多地是受欢迎程度而非质量的指标,但提供了一个合理的起点。它并不详尽,例如 GitHub 搜索也是查找流行和活跃的开源项目的好方法。但考虑到识别干净代码是一个非常主观和困难的话题,这个答案还算可以。我们可以尝试更深入地挖掘 - 但我需要控制这篇文章的长度......

评论您的代码 - 澄清有问题的方面。

💬你给我的生活窍门之一是写有意义的注释来解释我的代码的目的和功能。你能详细说明一下吗?你认为哪些评论有意义?我应该总是为我的所有代码写注释吗?关于何时以及如何写评论有什么好的启发式吗?


🤖 编写有意义的注释是编写干净且可维护代码的一个重要方面。有意义的注释应该提供额外的洞察力和上下文,这些不是通过阅读代码本身就能立即看出的。以下是关于何时以及如何撰写评论的一些指南:


  1. 解释复杂或不明显的代码:如果一段代码很复杂或者对于不熟悉该项目的人来说可能难以理解,注释可以帮助解释实现背后的原因或提供算法的高级概述。


  2. 记录假设和限制:如果您的代码依赖于特定假设或有限制,请务必在注释中记录它们。当其他人(甚至您)稍后修改代码时,这有助于防止将来出现问题或产生误解。


  3. 阐明函数和类的用途:虽然函数和类名称应该是描述性的,但简短的注释可以提供有关函数或类的用途和预期行为的额外上下文。


  4. 解释解决方法或黑客攻击:如果您必须实施解决方法或黑客攻击来解决特定问题或限制,请在评论中记录推理和任何潜在的副作用。这有助于未来的维护者了解变通办法的目的并考虑潜在的改进。


  5. 参考外部资源:如果您的代码基于特定资源,如研究论文、算法或第三方库,请包含对该资源的引用的注释。这有助于为从事该项目的其他人提供上下文和背景信息。


以下是有关如何撰写有效评论的一些提示:


  1. 简明扼要:评论应该简明扼要。避免编写长段落或重复代码中已经清楚的信息。


  2. 使评论保持最新:确保您的评论随着代码的发展而保持相关性。修改代码时更新注释,以便它们准确反映代码的当前状态。


  3. 避免陈述显而易见的内容:避免编写只是重复代码功能的注释。专注于提供从代码本身看不是很明显的上下文、基本原理或解释。


您不需要为每一行或每一块代码编写注释。相反,专注于评论它增加价值并有助于提高对代码的理解的地方。请记住,编写良好的代码应该大部分是不言自明的,因此请优先编写清晰且富有表现力的代码,并在必要时使用注释进行补充。


🤔这是一个非常好的答案。虽然最初的提示是模棱两可的,并留下了可能导致过度评论的解释空间,但这种阐述很好地阐明了它,并且 100% 切中要点。这正是我建议接近撰写评论的方式。

结论。

这里和那里有一些小失误,但总的来说结果出奇的好。


有些答案太明显了,有些是见仁见智的,但没有一个是明显错误的,而且很多都非常好并且可以付诸行动。我也喜欢建议的广度和多样性——它甚至包括关于照顾您的健康的要点!


最初的答案很肤浅——如果不通过后续问题至少深入几个层次,它们不会带来太多价值。但如果你习惯了这种流程,它就会很顺利。您不会一开始就被大量信息淹没,而是可以逐步探索,只深入了解您感兴趣或不了解的主题。我什至会说它更像是与一位真正的人类导师一起工作,而不是阅读一本书或观看一门课程。


与真正的人类导师相比,使用 ChatGPT 工作会给您带来更多的负担。人们可以从你的语气、面部表情和肢体语言中获得更多线索,并且可以根据你的行为更主动地引导讨论。然而,在使用 ChatGPT 时,它唯一能捕捉到的线索是您直接提出的问题——因此体验的质量完全取决于您提出清晰问题的能力,而不取决于您导师的经验或情商。话虽这么说,学习如何提出适当的问题并不太难,如果你这样做了,你仍然可以从互动中获得很多价值。


对于初学者来说,比较棘手的部分可能是弄清楚究竟要问什么,以便从肤浅的答案转向更深层次的答案。如果您在给定领域没有深入的专业知识,那么它通常远非显而易见。然而,这可以通过学习提出更一般的“深入”问题来缓解,例如“你为什么选择这个答案?”,“你能进一步详细说明吗?”,“这个答案真的是最好的吗?”,“这是唯一好的答案吗?”、“优缺点是什么?”、“替代方案是什么?”、“还有更多类似的技术吗?”等等。善于提出这样的问题也会让你在日常工作中受益:在澄清需求、与队友集思广益时,甚至在与真正的人类导师一起工作时——所以这本身就是一项值得的培训。


总而言之,从我从如此有限的测试中观察到的情况来看,我当然会推荐它


它不能完全替代真正的人类导师,但如果您找不到导师,您绝对应该试试 ChatGPT。即使您确实有导师,也仍然值得利用两者,因为 ChatGPT 更容易获得。您可以从 ChatGPT 开始(并更频繁地使用它),然后让您真正的导师评估其答案,扩展它们,或者更深入地研究更棘手的领域,同时坚持使用 ChatGPT 来处理更直接的案例。


从对给定领域要学习的内容的高级概述开始,了解这片土地的整体布局,然后使用 ChatGPT 更深入地挖掘选定的主题,也可能是有益的。有很多很好的资源可以提供这样的概述,例如roadmap.sh我正在编写的指南