使用聊天功能进行编程练习

多年前,在加州大学的一门经典CS 170课程中,我接触到了图灵奖得主理查德·卡普(Richard Karp)关于高级算法的介绍。我认为我们当时没有意识到自己有多幸运(我还有幸在伯克利国际象棋俱乐部与卡普教授交流)。

但是即使是最好的介绍也需要定期更新。

在过去的几个月里,我一直在Leetcode.com上进行每日复习,并与我的数字辅导员ChatGPT 4密切合作。

原来,在给予适当的提示下,Chat会成为一个有创造力、表达流利且吸引人的伙伴!它不仅仅是回答那些严格限定的技术问题。实践(在我这边进行沟通)使人更上一个层次。

这里有一些我参与Chat的方式,共同拓展算法开发的边界(是的,这被称为诗意的许可):

  1. 你能把所有的DSA(数据结构和算法)整理成一个问题分类体系吗?以便于我系统地学习?
  2. “你能问我一些关于以下代码的困难问题来测试我的理解吗?” [通常我会收到5-10个问题-非常有帮助!之后进行评估并提供详细反馈,如有必要会进行进一步交流。]
  3. “在代码中,[这个具体的语句] 的目的是什么?”
  4. “我没有理解。你能详细解释一下吗?”
  5. "你能插入一些错误(请不要注释它们!)让我来调试吗?"
  6. 请问你能展示一下使用bfs解决这个问题的代码吗?使用栈的代码呢?使用DP的代码呢?
  7. 这个问题使用dfs和bfs、栈和DP之间有什么权衡?
  8. “您刚刚为我编写的代码是否可以简化?”【经常可以。】
  9. 为什么你第一次当我问的时候没有给我简化的代码呢?【比我对真人说话时直接一些!】
  10. [如果聊天似乎比平常更不正确或不流畅,请确认是否仍在 Chat4 模式下,而不是 Chat3.5 模式。]
  11. 今天我想学习关于Trie树的知识。你可以列出十个Leetcode问题,从简单到困难,帮助我逐渐掌握Trie树的学习进度吗?
  12. 【与Chat进行对话,就像与一个聪明的人进行对话一样。它是一个出色的交谈者,对于回答广泛的问题以及捕捉微妙和暗示非常擅长。】“我应该花更多时间刷Leetcode还是进行项目建设?”
  13. 为了将所有内容都与Karp教授的CS 170课程联系起来,“用Dijkstra算法解决什么样的Leetcode问题比较好?”

我知道这只是Chat可以提供的所有编码帮助中的一小部分。但它确实超出了我的预期。顺便说一句:Chat至少减少了我使用谷歌搜索引擎的70-80%。我希望这不会影响他们的按摩和鱼子酱预算。

圣诞祝福(给Sam/Satya 11个月): 与Jesse Kraai 和 Johan Hellsten 相当水平的国际象棋导师。谢谢!

2024-01-22 04:41:52 AI中文站翻译自原文