查看原文
其他

代码人生攻略:程序员们如何为自己编织一份明朗未来?

Tina AI前线 2024-03-02

作者|Tina

2023 年,没有一个打工人避得开 AI。程序员这个行业也不例外。现在,大量代码都可以由人工智能辅助完成,“人工智能编码助手”也已经跨越了从创新者到早期采用者的鸿沟。那么大模型对前端、架构等不同岗位等人都带来了哪些影响?大模型是否催生了更多的底层架构和云端后台技术岗位需求?未来 3 到 5 年里,程序员职业会有新的变化或发展方向吗?

2023 年,也是特殊的一年。一位计算机专业毕业生说,感觉似乎大公司突然就不要这么多人了,找工作好迷茫;一位大厂员工说,干了七年的程序员,今年裁员轮到了他,但他对未来没有清晰的规划;一位失业一年的 41 岁程序员说,他曾投简历四五百份,但都石沉大海...... 这样的新闻国内外比比皆是。大家都深刻地意识到行业大周期环境的变化,对于个体可能产生的不可避免的影响。那么我们是否可以做到根据行业发展规律,打好永不过时的基本功并做好中长期的规划?

当前迷茫时刻,大家都需要有人给予相对明朗的分析,帮助大家应对未来的挑战和机遇。所以,在年终盘点之际,InfoQ 邀请到了李博源、陶建辉、周爱民、章文嵩(按姓名拼音排序)四位重量级大咖,通过分享各自的职业心得和技术洞察,帮助我们更好地为未来的发展做好准备。

以下是直播文字整理,原视频链接:

https://www.infoq.cn/video/NIYfevVbiaJBhotWbdcd

霍太稳:回顾刚刚结束的 2023 年,用一个词来描述整个技术领域,最引人关注的可能就是 AIGC 了。当然,目前与之相关的还有许多引人瞩目的案例,让人们对其关注度不断攀升。我记得有一次和 PingCAP 的黄东旭进行交流时,询问他 AIGC 对他个人和公司的影响。他说目前公司生产系统中的 60% 代码已通过 AIGC 生成。这个回答让我深感震撼,同时也意识到 AIGC 给企业带来了巨大的帮助。AIGC 在帮助企业取得多方面成果的同时,也给我们程序员带来了相当大的挑战。随着年底的临近,我们有必要复盘一下大模型的到来对企业和个人产生的深远影响。那么,对于我们周围的软件行业和程序员群体而言,大模型的到来又将产生何种帮助或挑战?今天我们邀请到 4 位嘉宾与我一起来探讨这个话题。首先请各位嘉宾简单做下自我介绍。

章文嵩:大家好,我是 LVS 开源软件的作者章文嵩。目前,我的主要工作是在语音领域进行创业孵化。眼下,我正着手孵化两个项目。首先是快猫,一个致力于云原生智能运维的项目;其次是一个专注于云原生消息队列的项目。感谢大家对这些项目的关注。

陶建辉:大家好,我是涛思数据的创始人陶建辉。同时,我也是我们公司开发的一款开源软件 TDengine 的创作者。这个软件主要为物联网和工业互联网提供了一个强大的大数据处理平台。今天很高兴能够与大家坐在一起交流。

周爱民:以前我在支付宝、豌豆荚和盛大都担任架构师的职务,不过我已经有一段时间没在职了。最近我主要致力于写书。

李博源:大家好,我是松子。和爱民一样,我之前也在支付宝工作,后来转到阿里巴巴,再然后加入了车好多。自 2022 年以来,我也开始涉足写书。此外,在 InfoQ 我有自己的专栏。

大模型时代的变革

霍太稳:各位都经历过 IT 行业从兴起到鼎盛时期,根据您们对技术的洞察和领悟,对比您们经历的 IT 发展史上的不同阶段,大模型时代与以往的变革有何不同?

章文嵩:我亲历了互联网时代,包括云计算时代和移动互联网时代。在这之前,LVS 是否属于互联网时代呢?事实上,互联网时代包括了 90 年代初美国的互联网发展,而国内在 88 年时首次接入互联网。我个人认为互联网时代更多地是关于连接服务和人,使得人们的联系更加方便。正因为互联网的发展,服务连接人的需求急剧增加,导致服务设备无法满足这一需求。因此,我在 1998 年 5 月启动了 LVS 的开源项目,专注于负载均衡。当时正好是一个机遇,因为 Linux 内核中还没有涉及这方面的项目,我成为了第一个着手这个领域的人。通过不懈的努力,我把这个项目做到了极致。这份代码至今仍然给我留下了深刻的印象。从 1998 年 5 月至今,已经过去了将近 26 年,这段代码一直保持着良好的状态,还没有被淘汰。相对于我自己编写的其他代码,有些代码早已停用,而这个代码存活了 25 年。

在云计算时代,云服务在资源聚合方面发挥了积极的作用。云计算作为基础设施对整个行业都带来了巨大的创新。通过实现资源的可复用性,云计算能够降低研发和使用成本,为整个行业带来更为经济高效的解决方案。

移动互联网时代使得大家能够随时随地访问服务,变得更加便捷。这一切使得后端面临了更大的工作压力,涵盖了互联网时代和移动互联网时代所有需求,需要进行大量的工作。

现如今,我们进入了大模型时代,过去的时代带来了更多的需求。作为程序员,我们需要开发更多的解决方案来迎接面临的问题。大模型时代将带来不同的变化,因为大模型在很多方面都能更加便捷地获取知识,从而在许多领域提高工作效率。这一趋势未来将会不断加强。

陶建辉:我们所经历的技术周期与大家相似,涵盖了互联网和移动互联网。我的第一家公司于 2008 年创业,其核心领域是移动互联网。虽然相对较早,因为真正的移动互联网兴起是在 2010 年。不论是互联网、移动互联网,还是云计算,它们最终都大大提高了生产效率。现在的大模型同样如此,它在各个方面提高了效率,影响着我们的生活。我认为是一场技术革命。

大模型无法颠覆数据库或操作系统,这似乎是不太可能的。但大模型能够提高测试效率,提高编程效率,而数据库的设计则目前仍然由人来完成。大模型强调的是概率问题,可以生成动漫、视频或文字,非常适用。但是对于数据库,尤其是处理精准性要求的操作,比如保证正确地插入数据和查询结果,大模型都做的不太好。简单地创建数据库里的一条记录,或者生成 SQL 语句,甚至生成 TDengine 的查询语句,它都能够处理。但如果让它处理类似滑动窗口等复杂任务,大模型就无法完成。

周爱民:我认为大模型能够代表一个历史性转折点。大模型改变的是计算机系统与人的交互方式。过去,我们要么让计算机理解人,要么让人学会理解计算机系统。大模型实际上改变的是计算机系统理解人的方式。以前,我们通过鼠标、键盘等输入方式提供信息,或者在数据库中逐条插入记录。而在大模型的基础上,它对人类提供的信息的理解方式完全不同。它能够对这些信息进行规格化,将其转化为特定形式进行存储,并在此基础上进行进一步的计算。交互方式在本质上发生了变化,并不是人们教导大模型系统,而是它通过与人类数据的交互。这是在人与机器以及机器系统之间的互动、对话和协作的新的方式。

李博源:我自己对这方面的体会相当深刻,自己从 2000 年开始涉足数据领域,一直做大数据领域。正值 2022 年,GPT-3(ChatGPT)开始迅速崭露头角,我也开始深入研究这个领域。AIGC 对于我的技能要求发生了巨大变化。过去只需要掌握几个特定的关键技术就足够了,而现在我需要理解数据、大模型,以及涉足多个学科的知识。下面我讲下我的感受,具体有以下五点。

  1. 随着大模型的崛起,我涉足某个业务领域的门槛大幅降低,当然,相应地,可达到的高度也越高。

  2. 数据的重要性愈发突显,AIGC 的涌现导致垃圾数据不断增多。

  3. 整个交付工具方面发生了翻天覆地的变化。过去,我们通常交付的是功能。自从有了大模型之后,它像推土机一样直接覆盖整个大中小型企业应用领域,使它们重新回到同一个起跑线上。

  4. 面临两极分化问题。一方面,依赖大模型的辅助工作人员变得越来越不需要动脑筋,导致这部分人大量失业。另一方面,那些更具创造力或者头脑更加灵活的人则因此变得更加富有。这种两极分化的趋势在技术发展的同时也深刻地影响了个体的经济状况。

  5. AIGC 带来的效率提升毫无疑问。

霍太稳:在未来我们应该关注大模型方面的哪些方面,或者可能会出现哪些突破点呢?

章文嵩:大模型的出现绝对是一次重大的变革机会。OpenAI 推出的 GPT 模型让人们认识到大模型所带来的价值。OpenAI 团队以连接主义为信仰,认为连接主义的人工智能能够解决许多问题。他们构建了一个超大规模的神经网络,拥有 1750 亿的参数,创造了一个前所未有的训练过程,利用大量 GPU 卡进行训练。预训练 GPT 模型的语料使用了自然语言的文本,由于文本本身具有结构,不需要进行标注。这样的训练效果非常惊艳,基本上可以与人类进行流畅、迅速的互动。在效果显著的推动下,各家陆续将模型规模做得更大,达到了万亿级别的参数规模,进一步提升了大模型效果。得益于这些启示,大模型的应用范围逐渐从文本扩展到图片,再到视频,甚至发展到了多模态领域。

至于大模型在未来会在哪些应用领域爆发,目前很难准确预测,因为应用领域极其广泛。微软推出了 Office,GitHub 也有自己的 Copilot,搜索引擎进行重构,都是基于大语言模型的。大模型的应用不仅包括办公领域,还涉及到法务、医疗、客服等多个领域。这是一个生态系统,会自然演化,最终哪个领域效果更好尚不可知。

在我个人的观察中,大模型本身是基于 Transformer 的预测模型。通过对语料的训练,模型生成了结果,但我认为它并不真正理解这些结果。与人类能理解语言背后含义不同,目前的 GPT 模型并不具备这种理解能力。它是基于确定性程序,通过语料的训练来调整权重,并最终通过概率模型生成结果。一些人担心 AI 的发展可能对人类构成威胁,但杨立昆教授认为,目前的 GPT 模型距离通用人工智能(AGI)还有很长的路要走,因为这个模型并不真正理解这个世界。

生成式 AI 对各技术领域的影响

霍太稳:我看到了一组数据,是关于百川智能王小川在云栖大会上分享的内容。他提到他曾去美国拜访了 OpenAI,与他们进行了交流。在交流中,OpenAI 的科学家告诉他,他们计划使用 2000 万张卡构建一个系统。这让王小川感到非常惊讶,因为在国内,使用 2 万张卡就已经很多了,2000 万张完全超出他的想象力。我观察到的另一个数据涉及微软 Bing 开屏。过去,Bing 开屏一张图片的制作需要全球各地的 200 万名摄影师提供素材,但现在仅需 20 名人员来渲染开屏图,就能确保用户经常看到不同的图片。考虑到这两种制作方式的成本,差距是相当大的。综合考虑这些数据,我个人对 AIGC 在未来的发展,特别是在应用领域方面,持相对看好态度。我想听听陶老师对数据库领域的看法。

陶建辉:我认为对于数据库技术本身,大模型可能不会发生实质性变化,因为数据库技术与人工智能并没有有很大关联。然而,由于 AIGC 产生的庞大数据量,将对数据管理提出更多要求,使我们面临更大的挑战。例如,在工业互联网中,人们希望利用大模型处理工业数据。对于时序数据库这样的存储方法,它特别适用于智能制造,如石油化工、电力和新能源生产等领域,这些领域产生大量数据。在没有大模型推动的情况下,人们可能不会充分认识到这些数据的价值。随着 AIGC 推动的数据量增加,我们将面临更大的挑战,其中包括对 GPU、CPU、内存和带宽的需求可能会数量级上升。也许在某一天,他们可能需要使用 TDengine 这类数据库来处理这种海量的时序数据,这对我们来说是一个积极的消息。我个人认为,虽然 AIGC 可以提高生产力,但它无法彻底取代数据库技术本身。它可以提高开发和测试速度,以及一些人机交互的效率,但不能颠覆数据库技术。相反,AIGC 可能会带来数据库领域的大量需求,随着数据量的增长,这对所有 IT 从业人员都是有利的。

霍太稳:对于我们技术人员来说,我听到了一个相对正面的观点。他表示,随着 AIGC 或大模型的兴起,技术人员,尤其是 CTO,将变得越来越重要。当时我感到有些困惑,为什么呢?似乎不太可能。他给了我一个例子,现在很多公司董事长要利用 AI 来改进整个流程。于是,CTO 的价值变得明显,因为他必须深入业务流程,才能让 AI 发挥最大的价值。因此,作为 CTO 或技术人员,你需要在董事长面前频繁亮相,从而彰显其价值,这对我们技术人员而言可能是一个积极的反馈。大模型的出现对前端和大数据领域技术人员有何影响呢?

周爱民:在前端领域,我认为有两个关键点。首先,从应用的角度来看,我们可能会经历类似于 CS 到 BS 的转变,即从客户端到浏览器端的重构。在这个过程中,人们会意识到所有的东西都需要重新开发一遍。尽管需要进行重新开发,但背后的业务需求却是一模一样的。举例而言,如果你原来在客户端要做一个图书管理系统,将其迁移到浏览器端,结果是相同的,只不过需要重新实现,因为环境发生了变化。因此,在大模型或 AI 的背景下,所有东西都可能会经历一次重构,但业务本身并没有变化。

其次,在我前不久写的一篇名为《告前端同学书》的文章中,我特别提到前端同学需要特别关注浏览器技术。其中一个点,我没有在文章中明确提到,现在想强调一下,那就是我们要思考未来的浏览器到底会浏览什么内容?浏览器是否仍然只是用于查看网页上的文本、图片和超链接?现代浏览器主要浏览我们所说的网页内容,以及参与网页上的一些交互。然而,未来的浏览器将会发生变化。随着人机系统交互方式的变革,交互方式、对象和内容都发生了变化。因此,未来的浏览器肯定不会是现在的样子。由于交互技术的变化,未来的浏览器将发生巨大的变革,从而引领整个前端的革命,这个部分是最重要的。

李博源:在大数据领域,我认为变革相当巨大。过去,我带着锤子和电锯就能完成项目,但现在有了大模型,就好比带上了一台多功能车床。我可以通过这台车床组建各种工具来处理工作。具体表现在哪里呢?去年我尝试了一个项目,使用 GPT,从数据底座、需求指标开始梳理数据建模,进行了一次自动化工程,效果非常好,特别是在大数据仓库、数据模型、数据资产管理的效率上取得了显著的进展。

其次,大模型在数据分析方面的能力也是非常出色的,尤其是在泛化过程中,包括报表解读、总结以及深度的专题分析。考虑到企业已经进入数字化转型的第二阶段,数据的价值和发现变得至关重要。如何提升企业员工的数据分析能力成为一个关键问题,而大模型提供了一个很好的切入点。我日常还会参与一些运维工作,大模型可以帮我从运维日志中轻松定位问题。我本身是一名产品经理,因此我主要关注大模型在上层应用方面的运用,即如何在跨学科的领域中提高效率,这是我在这个领域着重关注的方向。

大模型时代,程序员的“生存法则”变了吗?

霍太稳:我们刚才讨论了对每个行业的影响,现在让我们聊聊对于当下的程序员、运维工程师和产品经理,这些从业者的技能提升和整体工作模式是否会发生变化?

章文嵩:作为程序员和工程师,我们应该积极拥抱这些新技术。AI 是来赋能的,它能够有效地提升我们的工作效率。因此,我们不是被 AI 打败,而是可以与之协同合作。我鼓励大家积极拥抱这些变革。

另一方面,我们每天工作中要使用 GPT 等大语言模型,亲身尝试,获取第一手的感觉。需要注意的是,GPT 这样的大模型本身是一个知识的压缩网络,将全世界的文本知识压缩到一个神经网络中。当我们向它提问并提取知识时,可能会存在一些信息提取不准确的情况。因此,在使用过程中,我们需要对结果保持判断力。工程师应该构建自己的知识体系,因为人类对事物和世界有独特的理解。大模型虽然提供了高效的知识提取手段,但在使用结果时,我们需要具备判断力,有选择地使用其中的信息。

在后端架构设计方面,理解需求和问题的行为特征至关重要。根据这些行为特征,我们需要进行权衡,确定最优的解决方案,以最低的成本实现系统的设计。这对我们的技术能力是至关重要的。拥有这些技能的同时,通过 AI 提升工作效率,将会增强我们的竞争力。

陶建辉:我认为程序员本身不会被 AI 所淘汰,但不愿意应用 AI 的程序员可能会面临被具备 AI 技能的同行超越的风险。作为程序员,无论你在哪个行业,都必须积极拥抱大语言模型,以提高生产效率。然而,对于具体的业务本身,有些行业可能会面临颠覆,例如游戏和内容创作行业。在这方面,使用大模型创作游戏可能是提高效率的关键,而不掌握这一技能可能导致竞争力下降。对于其他行业,例如 CIA 系统的开发,逻辑复杂性较高,AI 可能无法轻松应用。对于从事 CIA 开发的程序员,核心的逻辑和技能仍然是至关重要的。他们可以考虑利用 AI 来提升开发速度、产品健壮性和人机交互效果,但基本的逻辑和专业知识并未改变。因此,程序员应该根据所在行业的特点选择适合的工作方法。

此外,一些行业可能会因大模型的出现而逐渐萎缩,但大部分行业仍将持续存在,类似互联网和移动互联网并没有摧毁传统的电力、煤矿和汽车行业。从事软件开发的程序员需要持续学习,不仅要拥抱新技术,还要根据行业需求不断提升自己的技能。

霍太稳:大家对程序员的定义现在有没有发生变化?

周爱民:程序员的定义本质上不会有特别大的变化。程序员的核心任务仍然是编写程序。写程序的本质是将一个现实系统映射为面向机器的可计算系统。未来的程序员仍然需要从现实系统或构想中获取需求,然后将其转化为计算机系统。虽然使用的工具可能有所不同,就像我们之前提到的从大刀过渡到手枪、机枪,但程序员仍然扮演着“士兵”的角色,其基本任务并不会改变。

代际性的产品如大语言模型及其相关技术,或者以大语言模型为基础的系统架构,的确可能会对某些行业和技术产生破坏性的影响。比如,重机枪摧毁了传统武术、支付宝改变了防盗行业的例子。我认为基于大模型的产品设计和实现可能导致一些行业和技术的变革,这是不可避免的。这种代际性的产品可能导致一些人失业,有些人可能需要离开原有的岗位。然而,这并不意味着程序员将会消失,因为依然需要有人去编写程序,将现实系统或者想要实现的系统映射为计算机系统的任务仍然存在且必不可少。

李博源:我认为可以将人群分为非 IT 人员和 IT 人员,对这两个群体的影响是不同的。对于刚入门的 IT 人员,大模型的出现可能使门槛降低,技能提升变得更加容易,因为他们可以得到大模型的辅助。然而,这也意味着这些新人需要在这个环境中更进一步地成长,以适应更广泛的技术领域。

对于专业人员来说,影响可能更为深远。专业人员可能需要主动获取信息,通过阅读类似 InfoQ 的文章来不断提升自己。因为大模型的出现使得跨多个领域变得更容易,这意味着他们可以更轻松地完成更为复杂的任务。以数据分析人员为例,大模型的出现可以显著减少处理临时需求的时间,从而使他们有更多的时间去研究更高级的领域,如数据洞察和专题分析。未来,多样化的角色和跨业务的能力,即所谓的复合性能力,可能会成为一种基准线。这并不是说专业的开发者的价值会减少,而是角色定位和所需的技能将发生了翻天覆地的变化。

霍太稳:大模型时代开发者的范畴在变大,能利用 AIGC 开发应用就算开发者,不一定要会写代码,即非专业开发者或者业技复合型人才在增加,与此同时,专业开发者人群在减少。您们是否认同这个趋势?

章文嵩:我们现在要调用服务,不必从头搭建所有东西,可以直接调用远程服务,例如使用云数仓 Snowflake 这样的平台,而无需自己构建,这提高了整个社会的效率。像 Snowflake 这样的公司需要大量构建这样的平台,对专业程序员的需求量仍然存在。

霍太稳:确实像 Snowflake 这样的公司需要很多专业成员,但相比之前很多公司都需要自己聘请专业成员搭建,它们的数量是不是在减少了?

章文嵩:但对整个社会的效率提升是显著的。像 Snowflake 这样的公司做云数仓的不止一家,全球有几十家上百家,它们需要大量的专业人员,而其他用户只需使用云数仓这项服务,无需自己建立一个大数据团队。

陶建辉:我认为它将程序员的门槛降低了,使一般人稍微学习下就能从事相关工作。特别是现在做前端,我在 1994 年就开始做网站,当时我们需要学习 CGI(Common Gateway Interface)并使用 C 语言编写代码,还需要了解 Oracle 数据库等,门槛相对较高。而现在不再需要懂这些知识,大模型的出现大大降低了门槛。我认为程序员的数量会增多,大模型的出现并不会减少程序员的数量。社会将变得更加信息化,数字化,对如何处理这些信息的需求将更加多样,会涌现出很多新的岗位,比如已经出现了许多新的岗位如提示工程师等。当前很多传统行业也在进行数字化转型,比如汽车行业已经变成了软件行业,汽车的价值主要由软件创造,创造软件一定会需要大量程序员。

巨头碾压,大模型小创企有核心壁垒吗?

霍太稳:AI 创业还有一些特殊性,比如最近很火的 AI 公司 Perplexity.ai 是 3 个人、Pika 是 4 个人、Midjourney 12 个人,跟以前传统创业要求相比,确实是有了变化。随着大模型时代的到来,对于我们这些个体,特别是创业团队,这将带来怎样的影响呢?

章文嵩:通过 AI 的赋能,个体的工作效率将显著提高,这可能导致未来更多像你刚才提到的那些规模相对较小的公司可能会越来越多,因为 AI 的赋能使每个个体的实力变得更强。相比过去,创业需要整合大量资源,进行融资,并建立庞大的团队方能展开工作。而现在,AI 的赋能使个体的能力更为突出。因此,未来有可能看到更多深入某个领域、规模较小的公司兴起。

李博源:我对商业化领域有不同的看法。作为一个产品经理,从产品角度来看商业化。

从中小企业和大型企业的角度来看,大模型的出现拉平了创业机会。但我认为,整个竞争格局的核心还是在商业化上。最终,大模型的技术创新需要转化为商业价值。在转化过程中,产品的市场适用性、创新速度和用户接受程度至关重要。中小企业的体量有限,很难建立核心壁垒。但大企业本身就具有技术优势。所以,谁的产品速度更快,谁能够在短时间内爆红,谁就更有可能在商业化竞争中胜出。

曾有人说:“小企业是 AI+,大企业是 +AI。”大模型的应用归根结底还是商业行为。最终买单的还是市场和流量。所以,我认为中小企业在长期竞争中并不占优势。我反而看好中小企业在短期内爆发的可能性。

陶建辉:大变革时代是个人英雄的时代。在这种时代,只有个人英雄才能突破现有格局,创造新事物。因此,大变革时代往往是小公司和个人崛起的时代。而在稳定发展时期,组织的力量更加重要。对于程序员来说,大模型是最好的机会。大模型的出现,打破了传统的开发模式,为程序员提供了新的舞台。我个人很遗憾没有机会参与大模型的开发。如果有机会,我一定会毫不犹豫地加入。

章文嵩:大模型的开发需要巨大的资源投入,起步就需要几万张卡甚至上千万张卡。因此,程序员如果对大模型感兴趣,我建议加入有前景的团队,因为单打独斗很难整合这么多资源。在使用大模型的基础上,可以构建很多垂直领域的应用。这些应用的创业机会很多,关键在于对垂直领域需求问题的理解。只有深刻理解垂直领域的需求,才能结合大模型在垂直领域创造价值。垂直领域有很多,每个领域都有自己的特点。人是真正理解这些领域的,因此在垂直领域的创新创业机会层出不穷。

李博源:我完全赞同这个观点。AI 大模型的出现是一种破坏性创新,它能够快速、灵活地针对细分市场进行产品创新,以敏捷性和便捷性迅速占领市场。然而,创业型企业在建立壁垒方面面临一定的局限性,很容易被大型企业抄袭。那么,小企业在大模型尤其是 Agent 领域的创业如何建立壁垒呢?

章文嵩:从科技的发展历史看,新兴公司往往能够通过颠覆性创新打破现有格局,取得成功。我认为未来科技的发展速度会越来越快,新的机会也将层出不穷。未来,我们的工程师、技术人员的创业机会是越来越多的。

周爱民:小公司与大公司实际上是无法正面对抗的,这是绝对的现实。小公司的优势在于能够在不同领域扎根生长,或者在同一领域找到不同的发展点。这揭示了大公司另一个巨大的弊端,即所谓的“船大难掉头”问题。大公司可能花费 3 到 4 年的时间来推动一个项目,一旦启动,它可能会顺利推进,但要在几个月,甚至一年内改变方向几乎是不可能的。大公司就是有这样的问题。因此,小公司正面竞争大公司的意义并不大,因为小公司无法拥有大公司的资源和机会。然而,小公司可以在行业发生大变革的时候,找到一些大公司没有涉足的全新方向,从而做一些非常有意义的事情。在这个时间差里,小公司可以成长壮大,最终变成大公司。这也是我们之前看到的所有变革中,一些像春笋一样冒出来的公司成功的原因。

章文嵩:大公司往往拥有雄厚的资源,但这些资源往往分散在不同的部门。即使再多的资源,也无法满足每个部门的所有需求。以云数仓为例,美国三大云计算巨头都提供云数仓产品。谷歌的 BigQuery、微软的 Azure Synapse Analytics 和亚马逊的 Amazon Redshift,都希望通过云数仓业务来抢占市场。但即使他们拥有大量的资源,也无法在云数仓领域取得绝对优势。

小公司虽然没有大公司那么多的资源,但在某个垂直领域,往往能够聚合更多的资源。例如,Snowflake 就是一家专注于云数据仓库领域的初创公司,它在云数仓领域积累了丰富的经验,并取得了一定的成功。因此,小公司并不应该害怕大公司,只要找到自己的优势领域,聚合更多的资源,也能取得成功。

李博源:我不是说小公司创业要害怕大公司,但小公司创业,尤其是在大模型领域,必须建立自己的壁垒。大模型的创业,从长期来看,需要建立两个方面的壁垒:

  • 商业化模式壁垒:小公司需要打造一种可持续化的商业模式,能够产生持续的收入和利润。

  • 技术创新壁垒:小公司需要不断创新,提升技术实力,才能保持竞争优势。

对于大模型的创业,尤其是 Agent 方向的创业,我认为以下两点需要注意:大模型不能解决总体性的业务问题:大模型只能解决具体的、局部的问题。而对于小问题,大公司可以快速投入资源,迅速解决。因此,小公司创业在大模型领域,必须要找到自己的优势和定位,打造自己的壁垒,才能在竞争中立于不败之地。

陶建辉:我认为,真正的壁垒在于谁对这个领域了解,在这个领域积累的数据。数据是训练大模型的基础,也是大模型的核心竞争力。因此,创业者要想建立壁垒,必须要在这个领域深耕,积累数据。这些数据是创业者的重要资产,不会无偿提供给他人。

霍太稳:我们可以用一个小故事来结束这个辩论。几年前,拼多多的黄峥接受我的采访时说,有人问他为什么要做电商,电商领域已经有京东和阿里两大巨头了。黄峥回答说:“时代总是在变,大家不可能一直用一种模式,也许会有一种新的模式会出来。”几年后的今天,拼多多已经成为中国电商市场的重要力量。这也证明了黄峥的预言是正确的。当然,我们还可以再往前倒一倒,看看被 Facebook 收购的 Instagram 的故事。Instagram 当时只有十几个人,但却被 Facebook 以 90 亿美元的价格收购。这也说明,大公司可以通过收购来获得创新的能力。总而言之,大公司和小公司各有优势。大公司有资源和规模优势,可以快速扩张;小公司则更加灵活敏捷,更容易创新。

从事开源项目的收益:不止“用爱发电”

霍太稳:我们回到开源的话题。根据我和很多朋友的沟通,包括开放原子开源基金会的秘书长冯冠霖上周到我们公司交流,大家认为,在大模型时代,开源更加重要。因为在当今国际环境下,开源是我国唯一能够与国外技术竞争的优势。当然,也有人认为,开源的收益可能不像从前那么好了。此外,开源领域已经被“开源老人”占据,像 PostgeSQL 和 Linux 这样的项目对年轻人来说门槛相对较高,缺乏新鲜血液,这个问题您们怎么看?

章文嵩:我认为,程序员通过开源是与世界互动最好的方法。在公司或团队中,你只能接触到有限的客户和团队成员。通过开源,你可以与来自世界各地的人交流,接触到更多的需求。真实的需求来自真实世界,往往比如何写代码更重要。此外,你可以与高手交流,学习到更好的编程技巧。这些对个人成长都非常有利。因此,我一直鼓励年轻程序员参与开源。开源可以帮助你提升能力,展示自己的才能,并在开源社区中建立人脉。

以 Linux 和 PostgreSQL 为例,这两个项目都是非常活跃的开源项目。每年都有大量的新人参与到 Linux 内核的开发中,新的版本也不断发布。这些新版本都是为了满足新的功能需求。PostgreSQL 是 Michael Stonebraker 在 80 年代开发的开源数据库,已经有 30 多年的历史,但仍在不断发展。年过 80 的 Stonebraker 还在坚持持续创新,是我们学习的好榜样。PostgreSQL 的模块化设计非常优秀,许可证也比较宽松。因此,很多创业项目都是基于 PostgreSQL 构建的。PostgreSQL 的生态系统也非常活跃,目前已经超过了 MySQL,成为了数据库领域的领军者。对于年轻程序员来说,这是一个巨大的机会。

陶建辉:我认为开源是程序员成长的舞台,无论是老项目还是新项目,都为年轻人提供了展示才能、提升能力的机会。老项目如 Linux 和 PostgreSQL 已经有几十年的历史,积累了大量代码和经验。这些项目的社区也非常活跃,有大量的贡献者。对于年轻人来说,加入这些项目,可以从老一辈程序员身上学习到宝贵的经验。然而,老项目的社区也存在一些挑战。由于项目的规模和复杂性,年轻人很难在其中脱颖而出,成为明星人物。我建议年轻程序员可以选择加入新的开源项目。新的开源项目往往更有活力,更需要新鲜血液。在这些项目中,年轻人更容易获得认可,成为明星人物。以我们自己的时序数据库为例,TDengine 是一个年轻的开源项目,成立于 2016 年。在 2022 年,TDengine 在 Pull request 和 Issue 数量上远远超过了另一个老牌时序数据库 InfluxDB,社区非常活跃,为年轻人提供了展示才能的机会。

章文嵩:对于年轻程序员来说,无论是加入已有的老开源项目,还是新的开源项目,都应该积极参与项目讨论,了解当前有哪些问题需要解决。如果有好的想法,可以大胆提出,并尽力实现。这样,不仅可以为项目创造价值,也能提升自己的技术能力和实践经验。

周爱民:我自己也参与过不少小项目,自己也发布过一些小的开源模块。我认为,对于程序员来说,开源是展示自己的最佳舞台。开源可以让雇主快速了解你的代码质量、编程风格、语言习惯和技能栈深度。如果雇主在招聘程序员时,看到你的 GitHub 账号上有丰富的开源项目,就会对你的技术能力和经验产生好感。我认为,对于大多数程序员来说,开源是展示自己的最佳舞台。如果你想在程序员行业取得成功,那么应该积极参与开源。

李博源:我自己没有参加过开源项目,但我经常使用开源软件。我认为,在价值与收益的抉择上,年轻程序员应该回归到价值这个领域。90 后、00 后程序员大多很现实,他们参加开源项目,往往是为了以下几个目的:获得收益,提升知名度,建立影响力。那么,年轻程序员到底是应该选择哪一种方式?我认为,他们应该以价值为导向,选择自己真正感兴趣、有价值的开源项目。

陶建辉:我是一个开源的受益者,我认为开源是 TDengine 成功的重要因素。TDengine 是一个时序数据库,在工业领域具有广泛的应用。由于开源,TDengine 迅速获得了大量用户。在开源之前,工业领域的数据库市场被传统的商业软件主导。TDengine 的开源为用户提供了一个免费、高性能、灵活的时序数据库,从而颠覆了传统的市场格局。我个人也从开源中受益匪浅。我曾在福布斯上发表了一篇文章,介绍了时序数据库的未来。这篇文章引起了广泛的关注,也让我成为了时序数据库领域的知名人士。

此外,开源还为 TDengine 贡献了大量的代码。例如,TDengine 的 DB 索引是由天津的开发者贡献的,ODBC Driver 是由苏州的工程师贡献的。这些贡献帮助 TDengine 不断完善,并为用户提供了更好的使用体验。总而言之,我认为开源是 TDengine 成功的重要因素。开源为 TDengine 提供了快速发展的动力,也为 TDengine 的未来发展奠定了坚实的基础。

章文嵩:我个人在开源中受益匪浅,尤其是在 LVS 项目中。LVS 项目是我早期参与的开源项目,为我的个人成长和事业发展提供了巨大的帮助。在参与 LVS 项目的过程中,我接触到了大量的开源代码,学习了先进的技术,并积累了丰富的经验。这对我的技术能力提升有很大帮助。LVS 项目还帮助我获得了职业机会。阿里巴巴正是通过 LVS 项目了解到我,并邀请我加入。目前,我正在参与孵化创业项目 AutoMQ 和快猫。这两个项目也都采用了开源的方式。通过开源,我们可以构建整个开源生态,并通过开源来获取用户。此外,开源还可以帮助我们快速迭代产品,并将产品推向全球市场。

陶建辉:我最近看到我的儿子在开源项目上取得了巨大的成功,这让我深受鼓舞。我的儿子在大学毕业后,创办了一个名为 LuxAI 的人工智能竞赛平台。这个平台与语言无关,吸引了来自全球各地的 1000 多支队伍参与。他之所以能够取得如此成功,主要归功于开源。通过开源,LuxAI 能够吸引到来自不同背景和技能水平的人才,共同为项目做出贡献。此外,谷歌也对 LuxAI 提供了赞助。谷歌不仅提供了所有计算资源的赞助,还为比赛提供了 5 万美元的奖金。这进一步提升了 LuxAI 的知名度,吸引了更多人才的参与。

霍太稳:不久前,我看到一位前同事在虎嗅上发表的一篇文章,题为《中国开源,又一次让人失望了》。文章中提到了一个观点,我个人非常赞同。他指出,一些国内企业存在竭泽而渔的倾向,他们似乎认为开源并不复杂,将其简单等同于免费。或许正因为这种看法,解释了为何中国企业在大模型方面的突破仅仅停留在数量上,因为抄袭终究是借用他人成果而不积极参与开源贡献,通常也难以具备真正的技术优势。各位如何看待这个观点?

章文嵩:这篇文章的结论我认为存在一些问题。尽管中国整体的开源生态未能充分体现在工程师们的回报中,但实际上中国在全球的开源力量排名第二,仅次于美国,这一点可以通过在 GitHub 上公开的数据进行验证。然而,我认为中国的开源生态仍有许多需要改进的地方。

我觉得其中一个最大的问题是,国内一些较大型的公司在开源领域中虽然实力相当,但却没有出现过令人瞩目的合作典范。国内商业竞争激烈,人们更多地关注短期的商业竞争,而很少看到公司之间在开源生态上展开合作的案例。公司与公司之间真正的开源项目合作几乎没有,除非是某个领域的龙头企业与相对实力较小的公司形成一种“老大哥带小弟”的合作模式,而这样的实例也相当有限。

我认为国内整个开源生态需要在这方面有所改进。如果国内公司能够更积极地展开开源项目的合作,这对中国整体的实力和影响力将产生巨大的影响。以 RISC-V 为例,如果中国能够在全球拥有最大的话语权,那么整个 RISC-V 的利益分配中,中国将能够获得最大的一块份额。我们的企业应该把眼光放长远,放弃一些短期利益,五年或八年后可能会实现更大的价值。

陶建辉:这篇文章对中国开源社区的评价有失偏颇。文章主要讲述了几个中国开源社区圈子的害群之马,因此得出了一些不利的结论。但实际上,整个中国在开源社区的贡献已经越来越大,不仅仅是明星项目,在其他领域也取得了许多成绩。不过,公司之间的合作仍然不够多,确实还有待改进。

霍太稳:我想向我们的编辑推荐一个文章题目:《中国开源并没有让人失望》。我最近在和一些企业交流,发现他们在开源方面做得很好,但最近在商业计划中弱化了开源,甚至不做了。我不知道你们有没有这样的感受,但我不好评论,因为竞争太激烈了。我希望线上的同学可以参与评论一下。一些企业一开始从开源中尝到了甜头,但后来因为商业竞争,又把开源这个门关上了。爱民老师对这个现象有什么看法吗?

周爱民:我认为这是一种正常的商业行为。企业从商业角度出发,做出商业性的选择是可以理解的。这并不意味着这家公司要完全放弃开源。它可能只是选择了某些项目或方向来进行投入,这是战术性的做法。

在战略层面,我们应该都认同拥抱开源的价值。但不同的企业对自己在开源生态中的位置、价值和利益的认识不同,对开源生态的概念本身的理解也不同。有些人认为开源就是索取无度,或者是占便宜。这种想法当然存在,但不应该是主流。但开源的大的形势还是合作、交流和共享。中国的一些大企业在开源贡献方面投入很大,但却没有得到应有的认可。这主要是因为它们在开源社区中的发声不够,表达的方式不够清晰。我认为构建开源生态不仅仅是贡献代码,还要有人去发声,有人去向世界说明,有人去承担重要的责任。这些看似虚的东西,其实是生态的核心。

陶建辉:我个人非常倡导中国程序员在全球发声,其中一个重要方式就是用英文写博客。我自己写英文博客的水平还远远不够,但我相信如果能达到我中文博客的水平,那在全球推广开源软件的效果会更成功。

中国企业的开源软件之所以知名度不够、影响力不够,与中国程序员在全球范围内发声不足直接相关。尤其是在 YouTube、Twitter 等平台上,中国程序员缺乏有影响力的技术文章。我建议在座的各位程序员,除了在 InfoQ 上用中文写博客、做课程之外,还可以到 YouTube 上用英文做课程。

章文嵩:我举一个具体的例子,阿里捐赠给基金会的 RocketMQ 是面向微服务的开源消息队列。在国内,RocketMQ 的生态非常强大,有许多公司在使用。但 RocketMQ 的开源生态绝大部分还局限在国内。这是因为 RocketMQ 社区中的英文文档非常少。我建议他们先翻译 RocketMQ 的文档,无论是使用人工翻译还是机器翻译。只有这样,才能让更多的海外开发者了解和使用 RocketMQ。中国的开源项目也要走出去,才能真正实现全球化。

霍太稳:我们对开源布道师的理解有了更深刻的认识。以前,我们认为开源布道师只是在宣传开源技术,但现在我们认为,好的开源项目不仅需要好的技术,还需要专业的布道师来宣传。开源布道师不仅要了解开源技术,还要了解开源社区,善于沟通交流。他们需要通过各种渠道,用通俗易懂的语言,向用户讲述开源项目的价值和优势。只有这样,才能让更多的人了解和使用开源项目,推动开源生态的发展。

章文嵩:关于刚刚提到的部分公司关闭原有开源项目,这从商业利益的角度是可以理解的。毕竟公司要生存,要赚钱,如何决策都是公司自己的事。另一方面,如果一个开源项目已经建立了一定生态,突然关闭会造成巨大损失。这时候需要仔细分析,做出正确判断。国外也有一些公司采取了宽松的开源许可证政策。例如,MongoDB 在去年 8 月份将其许可证改成了 Server Side Public License,基本上就是不允许第三方提供对外商业服务,只有 MongoDB 公司可以提供服务,其他云厂商要提供服务,需要获得 MongoDB 的授权并支付授权费。这对开源生态也会产生一定影响,但影响并不致命。还有一部分公司是基于 MongoDB 的基础上,又开发了自己的开源项目。

互联网公司不需要 CTO 了?

霍太稳:我还有一个问题,就是公司还需要 CTO 吗?这个问题的背景是,2023 年 9 月,居然之家裁掉了包括 CTO 在内的整个 IT 团队。居然之家的创始人在公开演讲中提到,裁掉 IT 部门是一个很大的风险。原来 100 多人,包括 CTO 和高管都没有留下。目前是让数字化团队的负责人接管,相当于用外包的方式找专业的公司来做数字化平台。结果,效益确实大大提升了。京东的 CTO 岗位也一直空缺着,小红书在经历了多位 CTO 轮换之后,也裁撤了 CTO,由 COO 兼任,一人统管电商、技术和产品团队。看到这些新闻,大家觉得研发部门在公司里发挥的价值到底在哪里?

李博源:数字化转型对 IT 部门提出了新的要求,如何建立有效的 IT 团队,是企业需要思考的问题。从核心来讲,这个问题涉及四个方面:

  • 数字化与 IT 的关系;

  • 数字化转型的难点;

  • 在投入有限的情况下,IT 部门该怎么做;

  • CTO 在数字化转型中的作用。

回顾 2023 年,数字化浪潮席卷全球,让社会商业模型发生了巨大变化。传统的 IT 部门从成本中心转变为战略伙伴,承担起推动业务创新和竞争优势的职责。一些企业为了快速转型,将 CTO 的岗位职责转变为让业务负责人监管技术、产品,好处是在这种大环境、新商业模型下是必须可行的,毕竟企业要生存,团队要生存,必须得考虑优先服务业务,优先为单 UE 考虑的。IT 部门自然也存在这样问题,传统观念就是 IT 是成本中心,维护基础设施和日常运营。而新的改变是 IT 部门在推动业务创新和提供竞争优势方面。

例如,可能会牺牲 IT 架构的合理性,导致系统性能和安全性下降。因此,在数字化转型中,CTO 自己也需要转型。CTO 需要具备战略思维和技术能力,能够制定技术战略,带领团队开发新技术,推动业务创新。我认为,数字化转型对 IT 部门提出了新的要求,企业需要根据自身情况,制定合理的 IT 部门建设方案。

周爱民:我认为这涉及到组织架构设计的问题。在组织架构设计中,有一个简单的判别方法,我称之为“命令”。正如中国有一句古话,“既不能命,也不能令”,即不能给予具体的职务任命,也不能下达明确的指令。如果一个角色既不能任命也不能下令,那么对应的职务也就不应该存在。回到刚才的问题,我们需要明确一点,CTO 的职责究竟是什么?他如何推动工作,或者如何带领团队完成任务,这些组织架构的关系需要明确才能判断 CTO 是否有存在的必要。

在很多情况下,许多公司把 CTO 看作是一个管理角色。这个管理角色涉及到人、事、物等方面的管理。如果他的职责和权利没有明确规划,那么他可能就不应该存在。如果他不接受任何人的管理,不接受指令,那么他的存在可能也没有意义。因此,我认为 CTO 的存在与否取决于组织架构中是否存在任命和下令的关系。在这一判断中,业务是一个关键的因素。在业务线上,技术 CTO 的角色是否有存在的必要,如果需要,那么这个角色就应该存在,即使是由其他角色兼任也是可以的。如果不需要,那么就无需存在。

在我之前所在的公司,就没有明确的 CTO 角色。如果需要,CTO 可以由其他角色兼任。总之,CTO 的存在与否应该根据具体的组织架构模式和业务需求来决定。我认为,要还是不要,这要视具体情况而定,不能一概而论。

章文嵩:听了你提到的居然之家的例子,我的第一印象就是四个字:始乱终弃。一开始公司成立时就设立了 IT 部门,明显是为了构建许多有助于提高整个业务流程效率的 IT 系统。有了这样的 IT 系统,才有可能积累一些数据,进而进行数字化的工作。然而,后来他们竟然将数字化项目外包,这就让我感到困惑。数字化需要深入理解业务,才能为业务的数字化提供支持,并在业务运营和决策方面提供数字化支持。因此,将数字化项目外包,让我感到他们对数字化的重视程度不明确。而且,外包公司又怎么可能比内部更深入地理解他们的业务呢?我认为,居然之家并不是一个好的例子。在你提到的京东和小红书的例子中,他们并没有宣布永远放弃 CTO 这一职位,而是因为暂时找不到合适的人选。

我认为一家公司对技术的看法非常关键。如果公司认为技术对其至关重要,而技术的战略规划对公司未来的发展和业务拓展至关重要,那么就应该设立 CTO 职位,由 CTO 负责统筹技术规划和技术战略布局,这一点非常关键,公司应该深刻考虑技术对业务的重要性。

霍太稳:我们在外部很难全面评判,居然之家可能是因为没有很清晰地理解信息化和数字化之间的关系。或许最初是想进行自身的信息化,但在寻找团队的过程中发现信息化在很多情况下其实是需要大量成本投入的。数字化则可能需要更多的产出,但当数字化来临时,原有的团队可能没有跟上,导致出现一些问题。此外,外包团队可能出于降低成本的考虑,或者是类似的想法。

章文嵩:我曾在多家大公司工作,包括阿里淘宝、滴滴等。在这些公司,技术部门如果没有外部收入,通常就是成本中心,但若有外部收入,就有可能独立出一块业务。然而,大部分情况下技术部门主要为内部各个部门提供服务,因此通常是成本中心。在这种情况下,CTO 需要清楚地向 CEO 解释,技术部门如何为客户创造价值。

CTO 的第一个服务对象是 CEO,因此 CTO 必须了解业务,理解技术如何为业务创造价值,并以清晰的语言向 CEO 传达这个价值。例如,对于成本中心来说,应清楚解释成本的构成,因为任何公司首先是业务,而业务的单位模型中技术成本的占比是多少?举例来说,无论是淘宝还是滴滴,都可以将其订单的 IT 成本与带来的收入进行比较。随着订单规模的增长,每个订单的 IT 成本是否能够持续下降?通过清晰地呈现每个订单的收入和成本,CEO 就能够更清晰地了解每笔订单的盈利情况,从而更好地进行决策。此外,CTO 还需要解构成本,明确日常运营和定期运营哪些部分可以持续优化,哪些是需要新的投资的。这些方面的沟通和解释对于确保 CEO 对整个技术投资的理解和支持至关重要。

我认为 CTO 职位非常重要,不仅要理解技术对业务的价值,还要通过清晰的沟通方式,确保 CEO 对技术投资的理解,并明确各个方面的投资价值,从而服务好全公司各个业务部门。

陶建辉:我认为整个中国对 CTO 的定义存在一个误区。至少在国外,CTO 并不是一个纯粹的管理岗位,也不是真正领导团队的职位。在美国,CTO 更多地参与小型团队,通常从事前瞻性和探索性的工作,关注技术储备等方面,而对团队的管理相对较少。

在国内,好像很多大型 IT 公司都设有 CTO。我个人认为刚才提到的居然之家这类企业,是数字化转型的企业,我看到很多中国的数字化转型案例失败的原因在于老板没有清晰认识。他们可能认为只需要招聘一些程序员来做就可以了,实际上数字化转型并不总是需要建立庞大的研发团队,而更需要对整个 IT 系统架构有清晰认识的人才。例如,公司可能有一个登录服务,甚至这个服务都可以使用第三方的,而不一定需要自己开发。他们更需要的是一个系统集成的角色,将各个组件整合在一起,不必自己开发每一个组件。整个系统运行,包括 CRM 系统、OA 系统、ERP 系统以及更大的供应链管理系统,这些可能都不需要自己的研发团队,而是可以购买第三方服务,然后集成在一起,提供一个完善的数字化平台。

因此,我认为居然之家的 CEO 对 CTO 的理解在这种情况下是有偏差的。他可能认为应该招聘像文嵩这样的博士,开发一套 IT 系统,但这样的投入产出比可能不划算,也有可能是招聘的人才不够匹配,更多的是自己对 CTO 的定位不准确。

霍太稳:对于大的传统企业,他们到底需要一个什么样的 CTO 呢?有没有一个 CTO 画像?

章文嵩:我认为 CTO 肯定是首先服务于 CEO,需要深入了解业务,通过技术手段为业务创造价值。在整体流程设计和集成方面,许多组件都可以利用第三方服务,包括 IaaS、SaaS 等服务,甚至像登录服务和账户管理系统也可以使用第三方的。对于大多数公司来说,数字化仍然很重要,因此需要有类似 CTO 这样的职位,负责整合所有外部的 IT 系统,为内部业务创造价值。对于绝大多数规模较小的公司而言,进行自建系统开发毫无必要。

霍太稳:我们从另一个角度来看,对于当前许多总监或 CTO,他们应该采用一种什么样的方法来向 CEO 明确展示自己的价值,使其更为显性化和易于理解。

章文嵩:当然,如何为用户创造价值是关键的。有些业务本身离不开 IT,不管你投入 10 人还是 20 人,关键是要明确适当的投入。讲清楚每个订单的成本是最好的方式,包括可用性指标。如果你的技术平台一旦出现问题,整个业务都会受到影响,这时可用性指标就显得尤为关键。企业应该关注可用性指标,例如一年内不可用的时长,能否从 200 分钟下降到 52 分钟,从而实现“四个九”的可用性。如果服务停止一次,造成的损失有多大也需要考虑。

答疑

霍太稳:我们回答一个线上观众问题,他问:“后端 Java 如何面对现在这个大模型的时代?现在比较焦虑。

章文嵩:我认为后端使用 Java 的情况下,很多时候会偏向应用层面的程序,后端的程序较为丰富。在这方面,我认为他应该拥抱大模型。对于一些模块的实现,可以咨询 ChatGPT 或者 Bard,它们有可能为你生成一些参考代码。在工作中,一些模块可以通过参考代码来体现,但辨别参考代码是否可用需要具备判断力,这是至关重要的。引入存在错误的代码,可能对整个程序的可靠性造成问题。因此,我认为工作岗位应该不受影响,而是可以利用大模型来提高工作效率。

周爱民:我认为不存在所谓的 Java 后端、Node.js 后端或者 C++ 后端的分类,这样的分类并不具有实际意义。后端就是后端,不论你使用何种具体语言实现,最终问题都是实现的交付界面和接口的问题。我曾经说过一句话,大型系统不是通过编写代码开发出来的,而是部署出来的。后端的问题不在于用何种语言编写代码,而在于如何进行部署,以及系统的模块、组件和服务之间的交互界面是什么。这才是后端的核心问题。这些问题是普遍的,不论你是否使用大模型,对系统的理解和对系统交互界面的实现都遵循相同的模式和方式。大模型的出现可能会带来一些新的系统分层和交互方式,但这并不影响后端开发的核心。

因此,我建议后端开发人员应该关注系统的组装、构建和架构,而不是编程语言本身。当然,我们可以说 Java 更成熟、更稳定,有更多的用户使用和更多的基础组件,但这并不是关键。当你进入大模型的环境时,就算 Python 的基础组件更多,最终仍然回归到部署和系统交互的问题,与语言选择无关。

李博源:后端开发人员每天接受的信息量是以前几十倍到上百倍,导致可持续思考的时间变短。在这种状态下,如何保持思考的深度和广度,是后端开发人员面临的一个挑战。随着系统和业务的复杂化,跨领域问题也越来越多。要解决这些复杂问题,后端开发人员需要不断学习新知识,拓宽知识面。即使大模型的出现,面临的问题仍然是一样的,后端开发人员仍然需要具备良好的基础编程能力和逻辑思维能力。

霍太稳:作为一个新人小白,如何参与开源项目?是重复造轮子还是参与别人的项目呢?

陶建辉:这个问题很简单。如果小白想参与一个热门项目,可以先从提问题做起。在看问题的过程中,可以逐步了解项目的代码、架构和流程。也可以从文档着手,补充文档中遗漏或不准确的内容。等到积累了一定的经验后,再尝试修复 bug。刚入行时,不要急于创造,先学会问问题。不要重复造轮子,可以加入社区或项目,先解决一些小问题,甚至是文档问题。这样可以逐步熟悉项目,积累经验。

霍太稳:接下来的问题是问松子老师,他问:“大学专科生,大数据怎么入门,走哪个方向比较好?”

李博源:我去年参加了两个高校的大数据相关学科评定,发现大数据领域发展非常迅速,与人工智能和机器学习的结合也非常紧密。这带来一个问题,就是原有的概念还没消化完,新的概念又出现了。从入门角度来说,我建议首先要理解基本概念,包括数据仓库、数据平台、数据中台、数据湖等概念及其发展历程。其次,要掌握核心技术,例如 SQL、Python、数据处理工具和平台、可视化等。最后,在大学一年级或二年级的时候就应该开始参加大数据实践项目,否则永远只能停留在理论阶段。大数据领域的实践方向有很多,包括数据工程师、数据分析师、机器学习工程师、数据架构师等。通过实践,可以了解不同方向的具体工作内容,并根据自己的兴趣和能力选择合适的方向。我认为 InfoQ 和《极客时间》上有很多很好的学习资料,可以帮助大家了解大数据领域的最新技术和实践经验。

霍太稳:如何看待程序员培训班?现在高校教的东西都不实用吗?

李博源:高校在设立大数据学科时,往往会沿用原有的教材,导致教学内容与最新技术脱节。此外,新兴技术的更新速度很快,高校的教学内容很难跟上。因此,高校需要不断改进教学内容,使其与最新技术保持一致。幸运的是,近年来,高校开始注重实践教学,结合具体的项目和行业专家进行教学。这是一个很好的趋势,可以帮助学生掌握最新技术。

周爱民:我坦承,我和《极客时间》中的很多老师做不好很基础的课。因为我已经忘记了当初自己如何从头开始学习计算机和编程了。高校可以教好基础知识,但在应用环境和具体开发工作方面不擅长。因此,毕业后参加培训班学习新技能和实战经验非常重要。即使大学成绩优异,毕业后直接进入头部公司,也需要接受三个月或半年的培训。这种培训与培训班性质相同,只是来源不同。培训班的教学和培养目标是对高校教育体系的补充。然而,目前有些培训班的教学方法和质量仍然不够高,急于求成。因此,我们需要持续改进培训方法和质量,以达到预期的培训效果。

章文嵩:美国的文理学院也是主要注重人文素养等基础教育,而编程等技术类课程更需要实践。无论是自己学习一门语言,还是用它来解决问题,都需要在实践中不断积累经验,才能更深入地理解。因此,在大学期间,应该积极参与课题研究和开源项目,抓住实践的机会,这样对于语言的学习就不成问题了。

霍太稳:我们这有个观众问题是这样的:“我来自传统行业,老板对大数据等 IT 项目持保留态度,认为这些项目成本高、见效慢,我如何说服老板投入资源进行大数据项目研发?”

章文嵩:这又回到刚才的问题,是否需要聘请 CTO,我们需要从企业的实际需求出发来分析。对于食品生产企业来说,你要说清楚利用大数据如何提升运营效率、提高决策水平、发现新商机等。具体来说,可以通过对数据的分析来优化生产流程,提高生产效率,降低成本等。在选择数据平台时,可以考虑使用第三方工具,无需自己开发。

李博源:数据系统和 IT 系统的最终目的都是提高企业的盈利效率。盈利效率可以分为内部效率和外部效率。内部效率是指企业内部的运营效率,包括生产效率、销售效率、管理效率等。外部效率是指企业与外部环境的互动效率,包括市场营销效率、客户服务效率等。数据系统和 IT 系统的设计和实施应该围绕这两个方面进行。

霍太稳:有个观众问题:“大龄程序员,目前还不是管理岗位,现在互联网发展速度这么快,我要何去何从?要出国吗?”

陶建辉:年龄不是问题。程序员的工作就是写代码,继续写下去就行了。我认为,程序员的工作很有魅力,程序员的工作很客观,输入什么输出什么,这都是明确的。这让程序员的工作具有很强的挑战性,也让程序员的成果可以被客观地评价。

周爱民:这个问题其实首先是一个喜好的问题。如果你对写程序没有兴趣,那就去开车或者做其他任何你喜欢的事情。年龄并不是问题,只要你喜欢写程序,就继续写下去。如果你不想从事管理工作,那就不要去做。国内也不会因为你年龄大了就强迫你继续写程序。年龄大了,你可以去尝试其他事情,甚至还可以回来继续写程序。

章文嵩:我去淘宝的时候已经 36 岁了,是不是一个很好的“案例”?

周爱民:我仍然在编程,从未停止。我们已经积累了丰富的经验,因此并不需要仅仅依靠编程来维持生活。但我想表达的是,35 岁的问题可能在你 25 岁或 30 岁时就已经存在了。你可能在 25 岁或 30 岁的时候就开始思考,到了 30 岁或 35 岁后是否还应该继续编程,以及如何继续编程。在这个过程中,关键在于确定自己的道路是否可行。只要你能编写优秀的代码,创造出出色的产品,就一定会有人需要你。

霍太稳:接下来是一个高中生的问题,他问:“现在学 Python,应用大型模型可以快速生成程序代码,那么对于高中生来说,到底应该培养什么样的思维?”

周爱民:程序员最常做的事情实际上不是写代码,而是改代码。大约有三分之二甚至四分之三的时间是用来改代码,而不是写代码。写代码的技能其实是最基本的,是可以被替代的。假设 AI 已经生成了代码,你怎么改呢?你需要先理解业务,理解已经写好的代码,理解所有的接口,这种能力是从写第一行代码开始培养的。AI 根本做不到这一点。因此,AI 可以替代你写代码,而后续改代码的工作,才是最有价值的工作,是程序员需要自己去做的,这些工作包括改代码、测试、编写测试代码等,这些是 AI 无法完成的。

程序员的基本功不仅仅是写代码,还包括以下几个方面:编程思维、逻辑能力、表达系统能力、组织系统能力、构建大型系统的能力以及与他人合作的能力。对初学者来说,学习代码语法固然重要,但并不是最重要的。初学者更应该花时间来培养编程思维、逻辑能力等方面的能力。只有这样,才能真正成为一个优秀的程序员。

章文嵩:对于高中生来说,学习 Python 语言并不仅仅是为了学习一门编程语言。重要的是,如果他能够通过 Python 语言解决现实世界中的一个问题,哪怕这个问题很小,都会给现实世界带来价值。这种实际解决问题的过程将给他带来心理上的成就感和获得感,这对于他持续学习并在这个领域继续努力非常关键。因为我们一生都需要不断学习,持续进步。关键是要在学习的过程中培养出对这个领域的浓厚兴趣,并且能够将自己的学习输入转化为有意义的输出。

李博源:针对刚才提到的高中生问题和 35 岁的职业危机问题,我想分享一项我去年进行的调研。这项调研涉及国人从毕业到就业再到持续发展的整个过程。我发现很少有人真正去给自己制定职业规划。自我职业规划是非常重要的,它需要结合个人的兴趣爱好、价值观、未来发展方向等因素,制定一个长达三到五年的计划,并且定期进行调整。然而,事实上,国人很少有人去做这样的规划。对于高中生来说,学习什么以及毕业后继续学习什么,我建议可以参考自己的职业规划来定。

章文嵩:编程语言和工具不断变化,但有些最基本的技能从未改变。比如,抽象能力和建模能力是永恒不变的。无论是用大模型还是汇编语言,你都需要解决问题。真正的教育应该解决的问题是如何培养这些基本能力,因为拥有这些能力,你就不会被淘汰。抽象能力意味着能够将物理世界的问题转化为类似数学和逻辑问题的形式,并将其描述出来,以便计算机解决。如果你无法做到这一点,即使是 ChatGPT 也无法帮你生成代码。

霍太稳:我们观众的问题都很直接,有位观众问:“请教几位专家,如何保持对编程的热爱?”

章文嵩:通过编程解决现实世界的问题会给你带来成就感,就像我做 LVS 项目时感受到的那样。这个项目被许多人使用,已经使用了 25 年以上,几乎全世界的公司都在使用它作为负载均衡的标配。尽管这是一个开源项目,没有金钱回报,但我觉得很满意。游戏之所以能吸引人,是因为游戏能够提供即时的反馈。人们在游戏中做出任何操作,都会立即得到游戏的反馈,这人感到兴奋和满足。同样,如果程序员编写的代码能够在现实世界中得到即时的反馈,并且为现实世界创造价值,那么这种反馈会比游戏的反馈更让人感到兴奋和满足。

陶建辉:我一辈子最自豪的是两个软件项目,它们都不是我现在写的。一个是我在 90 年代上学时写的“账务系统”,另一个是“LP 模天平”,后者是我为材料系高分子 LB 膜实验室制作的,这个项目至今仍在使用。

霍太稳:观众提问:“双非本科(非 985 和 211 院校)毕业工作从事 Java 开发 1 年,感觉每日都在做重复的工作,有什么提升的方法吗?”

章文嵩:既然是重复的工作,那就把重复的工作通过工具来自动化,让程序来完成。这样一来可以节省大量的时间和精力,并提高工作效率。

霍太稳:观众提问:“作为一名架构师,进入一个新的公司,如何快速地把技术和业务结合起来,产生业务价值或提出建设性的意见?”

陶建辉:在我的职业生涯中,如果我进入一家新的公司,无论是架构师还是程序员,我都会选择去公司最烂的地方。因为那里的问题最多,也最具挑战性。我希望能够通过自己的努力,解决这些问题,让公司变得更好。

周爱民:我认为这个话题涉及架构师在加入新公司后的两种不同风格。首先是一种直接上手的架构师,他们会快速介入公司现有的 IT 模块并解决特定的核心流程或产品问题。这种风格的架构师相对简单,因为他们很容易沉浸在具体任务中,并且通常无法调动太多资源,可能会被局限。另一种风格的架构师则需要得到公司高层的大力支持,这意味着老板必须愿意让他们去做一些貌似超出权限的事情,例如支持他们去探访与各个部门、了解不同系统模块,以便触及所有可能的问题和挑战。因为这种架构师是能够发现公司现有问题并从中找到解决方案的人。他们会从问题出发,制定解决方案,并规划战略部署,逐步推进和实施,而不是一开始就试图解决问题。

这类架构师的存在通常是因为公司遇到了重大问题或核心系统矛盾,他们是解决这些问题的关键。因此,我认为架构师的基本能力是定义问题,并在公司内部推动解决方案的实施。在我看来,往往一个公司需要一个架构师,是在他们并不真正地知道自己出了什么问题的时候,所以这也是架构师在加入公司后需要重点关注的方面。

章文嵩:在架构师加入新公司时,并不着急去定义问题。我建议首先要努力融入团队,了解当前团队正在解决的重要问题,以及为什么这些问题重要。然后,逐步提出一些新的想法,并尝试协助解决一些问题。我认为建立相互之间的信任是首要任务,因为一旦建立了信任,提出新想法并获得支持就会更容易。这个过程在开源社区中同样适用,就像在小规模的环境中建立声誉后再去影响更广泛的范围一样。所以,首先是要融入团队,建立信任,然后再努力获取团队和老板的支持。

霍太稳:我们回答最后一个观众问题:“技术人如何突破瓶颈?如何有效进行技术管理?”

章文嵩:我认为在技术管理方面,最重要的是赋能团队。比如,设定一个项目时,让团队自行承诺时间节点和整体规划。如果你对团队的承诺感到满意,那就没有必要去改变它。管理者的角色应该是让团队自主前进,除非团队偏离了方向,需要进行一些引导和启发。重要的是,要确保团队的理念是团队共同构建的,而不是管理者强加于他们的。我个人的感受是,通过共同创造的方式,将个人想法转化为团队共识,从而提高项目执行的效率和质量。

霍太稳:我认为对于许多从事技术工作的同行来说,过去的一年可能是相当具有挑战性的,无论是在管理岗位还是技术岗位上。最后我们为所有的技术从业者们送上新年的祝福和寄语作为今晚主题的结束吧。

周爱民:我就觉得最好的说法就是冬天会过去,春天会来。

李博源:过去,成为专家需要经过约 3000 小时的训练,但现在有了大模型的帮助,这个过程变得更加高效。我希望在新的一年里,大家都能成为资深专家!

章文嵩:我认为,AI 原生领域存在着大量的创业机会。尽管这些信息化和数字化仍处于早期阶段,但 AI 原生方面的创业机会却十分丰富。对于个人而言,持续保持好奇心,终身学习并构建自己的知识体系非常重要。利用 AI 工具提出问题,并结合自己的判断力,在许多方面做出独到的贡献,最终形成自己的核心竞争力。

陶建辉:在这个技术变革的时代,我们更需要像乔布斯所说的那样,保持“Stay hungry, stay foolish”的状态。

霍太稳:今天我最大的收获之一是关于大模型的讨论。当然,大模型也让许多人感到焦虑,正如之前提出的疑问一样。但我认同几位专家所说的,新技术总是不断涌现的,对于技术人员来说,我们已经习惯了这种变化。因此,我们无需过度焦虑,而是应该拥抱这些变化,学习必要的知识,提高自己的工作效率。

其次,尽管技术人员可能不太善于沟通,但在这个时代,技术的价值必须显性化。我们应该努力让自己创造价值得到认可,无论是向 CEO、领导还是经理都要清楚地表达自己的价值。我相信,一旦我们取得这样的进步,35 岁焦虑、40 岁焦虑都将不复存在。

2023 年已经过去了,2024 年对我们来说是一个新的开始。希望每个技术人员都能振作起来,让技术的价值更加突出。

今日荐文

库克吹捧的 Vision Pro,杀手级应用就这?开发者:我希望它一败涂地

史上AI含量最高春晚来了;奥特曼筹资7万亿美元重塑芯片行业;除夕夜网络支付每秒最高10.9万笔,创历史新高|AI周报

龙行龘龘,「AI 前线」给大家送福利啦~

大厂年终奖疯狂不再?打工人集体怀念过去:想念那个靠年终奖一夜暴富的时代

谷歌送出新年大礼!官宣发布 TensorFlow GNN 1.0:用于构建大规模图神经网络,可动态和交互采样


你也「在看」吗? 👇

继续滑动看下一个

代码人生攻略:程序员们如何为自己编织一份明朗未来?

向上滑动看下一个

您可能也对以下帖子感兴趣

文章有问题?点此查看未经处理的缓存