问小白 wenxiaobai
资讯
历史
科技
环境与自然
成长
游戏
财经
文学与艺术
美食
健康
家居
文化
情感
汽车
三农
军事
旅行
运动
教育
生活
星座命理

用AI提高工程师的生产力,初阶、资深与独立开发者的三种不同做法

创作时间:
作者:
@小白创作中心

用AI提高工程师的生产力,初阶、资深与独立开发者的三种不同做法

引用
1
来源
1.
https://tw.alphacamp.co/blog/three-ways-to-use-ai-to-enhance-the-productivity-of-a-engineer

如果你是软件工程师,相信应该使用过GitHub Copilot等AI辅助开发工具,或是要求ChatGPT生成过程代码。许多目标明确、不需要复杂思考的的代码,很适合交由AI生成,不仅省时也省下精力。

由于我是iOS与前端工程师,近期很常要AI生成“动画”——动画的代码简单、目标也明确,但是参数很多,每次都要重新查一次。以前时程紧迫时,常常直接省略动画,或改用最简单的淡入淡出;但现在有了AI,可以快速生成基本且合用的动画,我只需要微调参数即可。这让产品体验与完成度提升了一个档次。

当然,工程师的工作并不仅止于“生产代码”,在写代码以外,AI也能协助不同层面的工作。对于“工程师如何运用AI提高生产力”,本文将按照工程师的职涯与类型,分别讨论初阶工程师、资深工程师与独立开发者可以怎么运用AI增强自己的表现。

初阶工程师:与AI共学

有个流传起码十年的老笑话是:工程师每天的工作,就只是去Google现成的解法,然后复制贴上StackOverflow;如今,这个笑话可能会被改成“复制贴上ChatGPT生成的结果”。


Stack Overflow甚至把这个笑话“具现化”成一个真的产品。(图片来原:Stack Overflow)

初阶工程师的工作,大多是完成指定的明确任务,并从中学习技术与协作能力。ChatGPT问世后,许多讨论围绕在“初阶工程师是否会被AI取代”。然而我认为空,AI目前对于初阶工程师来说,更重要的是多了共学的伙伴,而得以加快学习速度。

为了成长,初阶工程师不能只满足于完成任务,更要寻求从任务中,尽可能学到更多。关于如何透过AI加速学习,我有三个想法:

不要停留在“复制贴上”

过往初阶工程师很依赖Google搜寻或是在StackOverflow找答案,如今多了一条“问AI”的管道。AI的优势在于,可以不断生成代码,并且详细解释不同的写法,因而省去了许多搜寻的时间。

但是,正如同从StackOverflow复制贴上代码永远不是学习的好方法,从ChatGPT复制贴上代码,也不会让人自动变成更好的工程师。不论过去与现在,学习路经在本质土并没有不同:遇到问题、寻找解法、尝试错误、彻底理解。学习的最好办法,是多花一些时间,搞清楚为什么代码能动;甚至“故意试试看别种写法”,不论是写错或意外发现另一种思路,都有助于理解背后的原理与逻辑。

与AI讨论:这是最好的写法吗?

学习写代码时,应该不断反问:这是最好的写法吗?不要假设AI写出来的就是完美解,就如同我们不该假设StackOverflow上网友的写法是最佳解。

如果把AI视为共学伙伴,可以直接问它为什么这段代码正确(或错误)。例如,可以直接说明“我正在学习怎么写代码,还有没有其他种写法?”“每种解法的优劣势在哪里?”并从中学理解不同写法间的差异。

AI的表现反映使用者的能力

值得一提的是,AI的产出品质,实际上与使用者的能力相关。当使用者自己懂得越多,就越能引导AI生成正确的代码。

举个例子,由于我相当熟悉iOS与前端开发,有时候当我要求AI生成时,会直接指定我认为最合适的API、function或程序逻辑。而如果没指定,AI通常无法第一次就写出最好的解法,或是因为缺乏脉络而写出错误的代码。

这也是另一个不该直接假定AI写出完美解的好理由——作为初阶工程师,很可能根本不知道该怎样问问题,才能得到真正的答案。更好的做法是自行研究后,将找到的资料放入prompt内,将AI视为讨论对象而非解答机器。

资深工程师:专注力重新分配

对于资深工程师而言,撰写代码已经不是主要的工作。在AI减轻了部分写代码的工作量后,资深工程师可以将更多精力,投入于架构、技术选用、产品与使用者等具有更大综效事顶上。AI对于资深工程师带来的生产力提升,不只是“节省了一些时间”,而是透过专注力的重新分配,释出更多潜在价值。

而这也是Sam Altman在Bill Gates的Podcast上提到的:“如果让工程师的效率变成三倍,这不只是让他们可以做三倍的事,而是让他们可以用更高的抽象层次做事,使用更多的脑力。就像从打孔卡到高阶程序语言,不只是写程序快一点,而是可以做出性质上截然不同的全新事物。”

知名电子报《The Pragmatic Engineer》在2023年有一篇文章《Measuring developer productivity? A response to McKinsey》,作者Gergely Orosz和Kent Beck讨论应该怎样衡量工程师的生产力。他们建构了一个模型,将生产力分为“努力(Effort)”→“产出(Output)”→“成果(Outcome)”→“影响(Impact)”。愈后面的生产力,愈难设立指标追踪,但是和团队或公司的目标愈一致。


这是参考原文重绘的版本。

当AI愈来愈擅于生产代码,单纯的“努力”或“产出”已经不足以用来判别工程师的生产力。资深工程师,得以将更多心力放在产出“成果”与“影响”,在更高层面帮助团队。

独立开发者:成为全能个体

AI或许对于独立开发者、小团队内的工程师,有最大的加成。过往需要跨部门合作的任务,现在有许多都可以由单人完成,如:内部工具的UI设计、图片生成、翻译等。单一个人的覆盖范围扩大,对于新创或独立开发者而言是显著的生产力提升。

随着AI能力不断扩大,未来包含语音、音乐、UI设计,都可能直接交由AI。届时,我们或许将能看到Sam Altman预测的“价值10亿美元的一人公司”——借助AI的能力,只靠著创办人一个人,便做到10亿美元的市值。

AI最适合“有品味,但缺乏技术的人”。对于能分出图片的美丑,但自身没有绘图能力的人,可以利用AI反复生成,再从中间挑选出品质够好的图片,作为人力不足时的替代方案。AI翻译也因为可以考量情境与脉络,得以加速国际市场的推展,在商业层面帮助独立开发者与新创团队的成长。

当然也不只是工程师,才有机会享受AI的加成。PM、UI设计师、营销……不同职务的人,只要能定义出自己想做的产品,并且学会基本阅读与修改代码的技能,并可能与AI一起开发产品。

AI并非取代,而是增强

相较于“AI将取代什么工作”,我更常将AI视为可以大幅提升能力的工具,如同耕耘机之于农业、广播之于音乐产业。即使在可预见的未来,将会出现足以自行完成任务的软件工程师agent,我也不认为工程师会因此被取代。届时的“工程思维”将会与现在相当不同,工程师与PM的界线将进一步模糊,如何与AI协作并产生影响力。

况且,人类很擅长“发明工作”。一旦每个人的生产力提升,我们将开始着手解决那些原先被视作“不可能”的问题。相较于担忧现在的工作被AI解决完,我更期待能够解决那些从来未曾想象过的问题。

© 2023 北京元石科技有限公司 ◎ 京公网安备 11010802042949号