我能做软件工程师吗

我能做软件工程师吗
作者: 得到图书
出版社: 新星
原售价: 49.00
折扣价: 42.00
折扣购买: 我能做软件工程师吗
ISBN: 9787513352079

作者简介

韩磊: 增强现实领域专家,新媒体和社区运营专家,技术图书作、译者。2001年创办CoDelphi.com网站;2003年加入全球最大中文IT社群CSDN,历任网络总监、副总经理、总编辑等职。2010年加入广东21世纪传媒集团,历任信息中心CTO、新媒体事业部总经理等职。现任AR龙头企业亮风台公司产研副总裁。拥有美国Borland公司“Delphi产品专家”、微软公司“最有价值专家(MVP)”及“腾讯云最具价值专家”称号。合著作品有《网络媒体教程》,合译作品有《Beginning C# Objects:概念到代码》,译有《梦断代码》《C#编程风格》《代码整洁之道》《Unix传奇》《匠艺整洁之道》等。 郄小虎:腾讯公司副总裁。前谷歌全球高级技术总监、谷歌中国研究院副院长、小红书CTO、滴滴出行副总裁。主导设计的系统包括Google AdWords、滴滴出行交易平台等,曾两次获得谷歌创始人奖。 陈智峰:谷歌大脑首席工程师。曾参与开发谷歌搜索和邮件系统使用的大规模分布式存储系统;近年来参与设计并实现了被广泛应用的机器学习开源系统TensorFlow,以及谷歌的新一代机器翻译系统和语音识别系统。 鲁鹏俊:前谷歌主任架构师(因QueST 项目获谷歌创始人奖)。曾任百度高级总监、欢聚时代CTO、唯品会联席CTO。 编著者介绍 丁丛丛:得到图书专职作者。 靳冉:软件工程师。

内容简介

人工智能时代,软件工程师会被替代吗? ·韩磊 2023年3月以来,以ChatGPT为代表的人工智能技术飞速发展,不断进化出新的“超能力”,比如通过回答人的问题撰写学术论文、列出采访提纲、输出需求文档、编写程序代码,等等。甚至有人说,人类正在迎来“百年未有之大变局”“第四次工业革命”。而且ChatGPT还在进化中,每回答一次人类的问题,它的能力就会变得更强一点。各行各业的人不得不开始思考:我的工作会被AI(人工智能)替代吗? 在我看来,一方面,大家的担忧很有道理。因为包括软件工程师在内,现代社会相当多涉及创意、创作性质的职业都会受到人工智能的挑战。另一方面,我觉得大家也不必太过担心。因为如果我们从历史的视角来看就会知道,所有新技术,都是为了让人们更高效地生产某种东西。 新技术不光淘汰了旧岗位,也创造了新岗位。比如,19世纪我们有了织布机,原来很多用手工织布的工人被淘汰,但更多使用机器织布的岗位诞生了。同样的道理,我觉得以ChatGPT为代表的人工智能给人类带来了更多参与创作的可能性。 为什么这么说?以前,很多创作工作,你不掌握基本技能就无法参与。拿画画来说,一个不会素描的人,你让他创作一幅打动人心的素描作品,这不太可能。尽管这个人极具艺术思维,头脑中也有相当绚丽的想象,他还是没办法将其转化为美术作品。但是现在,借助AI,他可以跳过基础技能的训练,让人工智能代为作画。实际上,作画所需的很多基础技能,比如使用笔刷的能力,除了少部分大师,大部分人都是机械式的操作。当这样的操作不再是门槛,很多天才就不会被挡在门外。 音乐领域也是如此。我听说有很棒的流行音乐作曲家根本不识谱,但他会把头脑里涌现出来的旋律哼唱出来,请别人记谱。现在有了AI,他不需要找任何人,AI可以连编曲一起帮他做完。 其实软件行业也一样。现在我们在应用商店下载的App,有很多是为了实现某个简单功能,比如翻译、剪辑视频等。这些功能很多人都想到了,但是由于没有编程能力,他们写不出代码、做不出程序。而有了像ChatGPT这样的工具,普通人也可以让AI生成代码。这样一来,大量的想法就会变成代码工具,变成生产力。基于这样的思路,我相信未来会是一个人类创作能力大爆发的时代。 但它也带来了负面问题。一批只提供简单功能的产品(或公司),以及一批只把目光聚焦于实现简单功能的软件工程师会面临巨大挑战。因为他们仰赖的底层技术已经不再是门槛。 先从产品的角度来看。很多做单一功能应用的公司正在面临挑战。比如有一类叫IFTTT(If This Then That)的服务,可以串联各个网站。具体来说,假设你在微博发了一个帖子,用IFTTT服务就可以复制帖子内容,同步发送到Twitter(推特)。提供这种服务的公司应该很郁闷,因为未来普通人只要用自然语言把这样的需求告诉ChatGPT,就可以获得代码。再比如有一类做知识图谱的公司,为客户提供基于知识库的梳理和检索服务,这样的产品也会受到挑战。因为目前已经出现了ChatPDF这样的产品——你只要把PDF扔进去,AI就会替你总结,告诉你这个PDF讲的是什么。以后极有可能出现这样的服务——你问一个问题,AI从特定资料里找出,甚至组合出最合适的答案。还比如,视频剪辑类产品也面临挑战。过去我们使用视频剪辑工具,还需要进行有一定难度的操作。但目前已经有人做出工具——你只需要用语言描述,它就可以生成并剪辑视频,短视频、长视频都能做。所以,除非是非常高级的剪辑师,视频剪辑的门槛已经不复存在。 我还看到Unreal(一家做游戏引擎的公司)的一个视频。它可以用手机拍摄人的面部,生成非常逼真的3D表情模型。这是什么概念?既然面部表情可以生成,未来如果加上人的动作、背景、环境,是不是意味着我只要有好创意,创作出好剧本,就可以在家里用AI制作一部电影? 当然,不止上面列举的产品类型,社会上很多其他商业模式或服务模式都会受到AI的挑战。不过,既有生产方式遭遇挑战,并不代表生产产品或提供服务的公司一定会倒闭。这些公司也可以拥抱新时代,利用新技术提供更好的产品或服务。 看完了产品角度,我们切换到人的角度,看看软件工程师会受到什么影响。在我看来,那些只把目光聚焦于实现简单功能、机械性地写基础代码的软件工程师会面临巨大挑战。实际上,过去软件工程师一天的工作里,有相当一部分是机械性地写基础代码——复制工具库或网站上的代码片段,进行组合,加上自己的一部分能力,得到最终代码。像这样的工作以后没必要每个人再干一遍——极有可能AI会帮你实现。最近我试用了一个AI代码生成工具,发现当我把问题描述清楚以后,它生成的代码还是比较漂亮的。 既然写简单、基础代码的能力已经不再是软件工程师的门槛,那么门槛是什么呢?为了探索可能的答案,我们来看看目前AI还不能做什么。 第一,目前AI还不能一步到位地根据任意自然语言指令生成完美代码。虽然前面提到,普通人也有机会使用ChatGPT编程,但对大多数人来说,这件事仍然存在不小的挑战。例如,假设要做一个类似IFTTT的服务,软件工程师大概率比没有技术基础的人做得更快,因为他们指令下得更准。未来有竞争力的软件工程师,一定是可以用准确的指令和人工智能对话的人。 如何成为这样的人?关于这个问题,我看过一位叫倪爽的交互设计师发的帖子,很受启发。他把交互设计师分成了几个不同级别: 最差级别:可以做设计,但没什么想法,靠拼拼凑凑完成。 中间级别:有一定经验,知道怎么设计,但不明白为什么这样设计。 最优级别:既知道怎么设计,也知道为什么这样设计。 其中最优级别,也就是能说清楚“为什么”的交互设计师,不会被人工智能取代。 软件工程师也一样。若要向人工智能下达更准确的指令,软件工程师必须知道“为什么”。这就要求你对用户需求,以及软件工程、软件技术的底层思维有相当程度的了解。 第二,目前AI仍然无法自主处理复杂的问题集。换句话说,目前AI比较擅长回答“相对独立的问题”;面对“复杂的问题集”,它的回答会相对模糊。打个比方,我们向AI提问100个相对独立的问题,它可以逐个回答,但如果要求它把100个问题组合成比较有机的系统,目前还很难实现。这时候就需要软件工程师把复杂的问题集抽象、拆解为一个个功能模块,这叫架构工作。 架构工作目前还不太能被AI取代,这是因为它涉及具体问题领域里的相关经验和知识。假设你要架构一个有超大访问量的网站服务系统,尽管ChatGPT会给你操作步骤,但由于你面对的问题,或者你的环境不太一样——有的环境是潮涌式访问,有的环境是长期的高访问量等——判断和选择的工作还是要你自己来做。也就是说,未来有竞争力的软件工程师需要具备优秀的架构和决策能力。 第三,目前AI无法生成以前不存在,或者无法用以前的手段组合而成的代码。举个例子,信息流这种展现形式目前已经不稀奇了,大家在短视频等平台上常常看到。但我们不妨想一想,第一次出现信息流概念的时候,你让谁去做?你让AI做,它也很难实现,因为它没有任何数据可以复用。 这件事对软件工程师的启示在于,一方面,我们要不断在实践中发现新问题,提出新想法。另一方面,我们要学会把AI作为伙伴,使用它、优化它、挖掘它的种种可能性。由于软件工程师本身从事跟计算机相关的工作,因此拥有得天独厚的条件与人工智能互动,来提出新想法、实现新连接、发现新机会。 如果说软件工程师以前是用手工纺织,那么现在我们面对的是水力驱动的纺织机,甚至电力驱动的纺织机。未来已来,所有软件工程师都得学会使用新一代的“纺织机”。 专业:这本书是由韩磊、郄小虎、陈智峰、鲁鹏俊这4位业内知名高手联合打造的,他们长年坚守在软件工程行业的一线。 真实:这本书还反馈了行业的真实现状,不美化,不忽悠,让你清楚地知道将要面对的风险,甚至还会适时地“劝退”。 全面:不用再去网上搜集七零八碎、参差不齐的行业知识了。一本书帮你搞定对软件工程师的系统认识。