原贴链接

我的情况是这样的:大语言模型(LLM)让我能够运用现有的规划和思维技能及知识开始编程,而不需要了解任何编程知识。过了一段时间,创建了一些能解决我的需求/问题的工具之后,我意识到是时候……买一本合适的书,真正学习编程了。我选择了埃里克·马特斯(Eric Matthes)的《Python编程快速上手》和阿尔·斯威加特(Al Sweigart)的《Python自动化办公实战》,我确定如果没有人工智能,我不会知道现在开始这个旅程还为时不晚。你们中有多少人有类似的经历呢?

讨论总结

这个讨论的主题是关于在编码过程中使用大型语言模型(LLMs)的情况。原帖分享了自己借助LLMs开始编码并进一步学习编程的经历,引发了众多评论者分享自己在编程工作或学习中与LLMs相关的体验和看法,涵盖了从正面肯定LLMs对编程的帮助到指出其局限性等多方面内容,总体氛围较为积极开放,大家都在探索LLMs在编程领域的作用。

主要观点

  1. 👍 有多年编程经验的人在工作流程中大量使用LLMs并受益
    • 支持理由:可以利用LLMs输出部分解决方案,编程语言重要性降低,可更快交付工作,不受语法问题阻碍并能审核代码。
    • 反对声音:无。
  2. 🔥 LLMs对不同人在编程学习方面有积极的推动作用
    • 正方观点:增强学习新事物的创造力和好奇心、提高学习速度、有助于回忆已知事物、提供不同视角帮助记忆、帮助认识到学习新事物是可能的、让编码从抽象变为具体可理解的内容等。
    • 反方观点:无。
  3. 💡 LLMs在代码生成方面表现因语言和情况而异
    • 在生成Rust代码时多为阻碍而非助力,Github copilot在生成多行代码及优化函数时效果不佳,但在询问代码流细微差别时,Perplexity表现很好,不同语言下LLMs表现不同,其他开发者认为ChatGPT和Claude虽不完美但有用,知道如何有效使用LLMs是关键。
  4. 🤔 正确使用LLMs需要一定能力和技巧
    • 支持理由:将自己创建高层次概念和利用LLM处理琐碎部分相结合较好,直接让LLM制作软件不可取,正确指示LLM需要是专家开发者并有管理团队的能力。
    • 反对声音:无。
  5. 😎 不同编程基础的人对LLMs的依赖程度和使用方式不同
    • 支持理由:有经验的工程师某些方面能力不足时可借助LLMs构建原本难以构建的东西;新手可借助LLMs更好理解基础编码、提升知识速度;资深开发者认为要从底层工作入手使用LLMs效果最佳等。
    • 反对声音:无。

金句与有趣评论

  1. “😂 15 +年coder。我从php开始,然后是javascript、typescript…我现在在我的工作流程中大量使用LLMs。”
    • 亮点:通过自身多年编程经历引出LLMs在工作流程中的使用,很有代表性。
  2. “🤔 当我开始玩llms时我有一些经验,但它增强了我学习新事物的创造力和好奇心。”
    • 亮点:体现出LLMs在学习方面的积极影响。
  3. “👀 LLMs get in the way more than they help when generating code.”
    • 亮点:提出与多数正面观点不同的看法,指出LLMs在生成代码时可能存在的问题。
  4. “😎 有一种错误的美德弥漫在空气中,它说借助人工智能在任何领域快速进步是一种作弊行为,而最好是做一个诚实的、辛勤劳作的工匠。”
    • 亮点:反驳对使用AI提升进步速度是作弊的观点,引人深思。
  5. “💪 Life changing.”
    • 亮点:简洁地表达出LLMs对自己生活产生巨大改变的感受。

情感分析

总体情感倾向是积极的。主要分歧点在于LLMs在代码生成方面的表现,部分人认为LLMs对代码生成助力很大,而另一些人则指出在特定语言(如Rust)或任务(如生成多行代码)中LLMs表现不佳。可能的原因是大家使用的LLMs类型不同、自身编程经验和技能水平不同以及所涉及的编程任务不同。

趋势与预测

  • 新兴话题:探索LLMs在更多特殊编程场景(如游戏制作)中的应用潜力。
  • 潜在影响:如果LLMs在编程领域持续发挥积极作用,可能会改变编程教育的方式,也可能影响未来软件开发的模式,提高开发效率的同时可能降低一些基础编程技能的门槛。

详细内容:

标题:关于借助 LLMs 进行编码的热门讨论

在 Reddit 上,一篇题为“Let’s open a bit controversial discussion - coding with LLMs, or thanks to LLMs”的帖子引发了热烈讨论。该帖子讲述了发帖者借助 LLM 开始编码,在解决了一些需求和问题后,意识到要购买专业书籍真正学习编程的经历,并询问大家是否有类似体验。此帖获得了众多关注,评论数众多。

讨论的焦点主要集中在 LLM 在编码工作中的作用和价值。有人认为,LLM 极大地提高了工作效率,如 15 年经验的程序员表示在工作流程中重度使用 LLM,能快速解决问题,甚至能在不熟悉的语言如 C#中工作。软件架构师也称赞 LLM 能迅速生成复杂的图表和系统结构。但也有人指出 LLM 存在的问题,比如给出不适用的优化建议,导致代码性能下降。

有用户分享道:“我写了一个调用多个 API 并处理结果的 Python 脚本,然后让 Chat GPT 4O 审查,它提出的一个建议在理论上有益,但在 Python 实际情况中不适用,还引入了不必要的开销。但这并不意味着我不使用 AI 进行编码,它在找代码漏洞、交流想法、生成测试用例等方面很有帮助。”

还有用户表示,LLM 对于低级别编程的帮助有限,生成的代码往往不符合高级软件开发者的要求。但也有人反驳称,在某些语言如 Python、Javascript 等中,LLM 能准确生成所需的复杂代码。

有人认为使用 LLM 时关键在于人的引导和管理,若指令不明确,LLM 可能会偏离正轨。但也有人指出 LLM 能帮助处理繁琐工作,减轻决策疲劳。还有人提出 LLM 具有教学能力,能帮助理解代码和概念。

总的来说,讨论中的共识是 LLM 在编码中具有一定的价值和作用,但不能完全依赖,使用者需要具备一定的知识和技能来正确引导和评估。特别有见地的观点如将 LLM 视为团队成员,根据具体情况合理分配任务,以及认识到 LLM 在不同语言和场景中的表现差异。这些观点丰富了关于 LLM 在编码中应用的讨论,让人们对其有了更全面的认识。