开篇词|知识工程:AI时代的软件工程

2024-03-11 徐昊
《徐昊 · AI 时代的软件工程》
课程介绍


讲述:徐昊

时长:大小8.70M


你好,我是徐昊,欢迎你和我一起学习 AI 时代的软件工程。
随着 2022 年底大语言模型(Large Language Model)进入技术爆炸期,LLM 也对软件研发产生了巨大的冲击。无论是使用 ChatGPT 直接从头生成应用,还是在 Github Copolit 辅助下在已有代码库中编码,每一次与 LLM 有关的新闻都刺激着从业人士的神经,好像过不了几天,工作就会被 AI 取代了。

通过 ChatGPT 编写生产代码

然而实际使用起来,是怎样的呢?让我们看一个例子,如果要做一个产品目录的服务(Product Catalog),通过 API 的调用返回产品信息。这是一个非常简单的 RESTful API 服务。大多数人可能会想到通过下面的提示词(Prompt),让 ChatGPT 帮助我们编写代码:
目前我们在编写一个产品目录服务,通过API提供所有可售商品的详细信息,使用Java编写。
请提供代码和对应的功能测试。
在这个提示词中,我们简要地描述了需求。因为 ChatG...

展开全文
© 版权归极客邦科技所有,未经许可不得传播售卖。 页面已增加防盗追踪,如有侵权极客邦将依法追究其法律责任。

精选留言

  • 听水的湖
    置顶
    2024-03-11 来自北京
    购买专栏后,请添加小助手微信号:geektime004,回复「徐昊」,立即进入专栏交流群。
    共 2 条评论
    6
  • JJPeng
    2024-03-11 来自广东
    请问老师,那10%的技能是哪方面的技能呢?我们该如何习得这部分技能呢?

    编辑回复: 这门课程就在关注这部分技能呀~

    
    4
  • 水木
    2024-03-12 来自广西
    在3月9日央视的《对话》·开年说节目上,百度创始人、董事长兼CEO李彦宏表示,以后不会存在“程序员”这种职业了,因为只要会说话,人人都会具备程序员的能力。“未来的编程语言只会剩下两种,一种叫做英文,一种叫做中文。”

    作者回复: 这种论调在历史上出现过很多次,比如SQL出来的时候

    共 2 条评论
    
  • 许凯
    2024-03-12 来自江苏
    真心期待,一直在数字化、网络化、智能化的方向上裸奔,希望可以在智能化方面有所提升,成为今年年会ppt上的一个亮点

    编辑回复: 除了ppt,更重要的是更新认识,并助力日常工作

    共 2 条评论
    
  • aoe
    2024-03-11 来自浙江
    看完第一感觉:不用担心失业了 第二感觉:要用 AI 开挂了「传奇程序员 Kent Beck 所言,LLM 让我 90% 的技能无用了,却让 10% 的技能放大了 1000 倍」
    共 1 条评论
    14
  • 术子米德
    2024-03-11 来自浙江
    🤔☕️🤔☕️🤔 【R】提示词中,要提供丰富的上下文信息 = 业务上下文 + 业务功能描述 + 技术规范 + 最佳实践 + 技术栈 + 代码范围 + 交付物要求 + … 【.I.】跟ChatGPT聊天,最尴尬的事情,不是对方输出不是我所想要的,而是三轮问下来,答案我没得到,却把自己给问穷了,再也想不出问题,能够把这个对话给继续,如此尴尬之下,缓解的方式,居然是说它不行,而不是自己不灵。回头想来,尬问之后的惶恐,只有自己知道有多忐忑。这就好像,屏幕后面可能是苏格拉底、阿奎那、伽利略、牛顿、欧拉、高斯、图灵、爱因斯坦、冯诺依曼,屏幕后面的模型里携带者人类全部精英的智慧,而我,却只能跟他们聊,今天的天气怎样,不把天聊死才怪。 【R】软件是载体,其中包含的知识,才是真正的产品;软件开发的核心,是知识的获取与学习,并通过软件的代码表达出来。 知识工程(Knowledge Engineering),更准确表示用LLM来改造软件工程,提取组织知识给LLM,再通过LLM将知识表达为软件的代码,从自己掌握知识、自己编码,改变为掌握知识、表达给LLM去做编码工作。 【Q】敲代码,软件开发的典型样子,不敲代码,总有点缺少软件开发的自信感。这样的刻板印象来自哪里?     — by 术子米德@2024年3月11日
    展开
    共 2 条评论
    5
  • 打卡主持人
    2024-03-11 来自北京
    缓解焦虑的好课👍
    
    4
  • 范飞扬
    2024-03-17 来自广东
    我注意到,老师用了不同的词汇,不知道是否是故意区分的? 老师一开始说: “最有价值的部分:获取、学习并传递知识。” 然后说: “提取知识、组织知识为 LLM 更易于理解的形式。” 所以,想问下老师,“获取知识”和“提取知识”是一样的嘛?“传递知识”和“组织知识”是一样的嘛?如果不一样,这之间的联系是什么呢? 我自己的想法是: 1、提取是获取的细化,组织是传递的细化。 2、为什么要细化?为了更好的用LLM。
    
    2
  • 奇小易
    2024-03-12 来自湖北
    收获:作为软件工程师不能只停留在编码环节,也不要被 LLM 的出现搞得自己没有未来了一样。实际情况是我们需要将关注点放到更有价值的地方,因为知识本身是为了解释世界、解决问题,软件是知识的载体,那么他们的目的都是一样,有了 LLM 之后,软件工程师能够有更多的精力去改造世界🥳。
    
    1
  • webmin
    2024-03-11 来自上海
    看完老师关于软件开发核心的论述,重新审视自己的开发构建过程,确实是有大量的时间是花在获取和学习知识这个过程上. 知识管理与编码相比是一项更加通用的技能,习得此技貌似可以向更多方向上转型.
    
    1