和文科生聊了一小时编程,感受到AIGC时代,文科生更加不可或缺了。程序员、产品经理和设计师的相爱相杀还会继续。AI现在还不能取代程序员,更不能替换文科生的诗和远方。

和文科生聊了一小时编程,感受到AIGC时代,文科生更加不可或缺了。程序员、产品经理和设计师的相爱相杀还会继续。AI现在还不能取代程序员,更不能替换文科生的诗和远方。已关闭评论

和文科生聊了一个小时的编程,我真的感受到了学文科是一件很重要的事情。大家好,欢迎收听老范讲故事的YouTube频道。前几天去字节跳动参加他们的TRAE发布会,和两个文科生——准确地说应该是一个文科生、一个设计师——聊了一个小时如何用AI做编程。我作为一个老程序员来说呢,很多时候还是偏保守的。我觉得现在AI编程还有很多事情没有做的那么好,但是产品经理是个文科生,另外一个是设计师,他们都异常兴奋,觉得哎呀这个实在是好厉害,一下就可以解决我们的很多问题。

今天呢,跟大家稍微的回顾一下下,然后再说一下我的感受。首先我感受到了深深的怨念。什么是深深的怨念?这个产品经理就说了,说你们这些程序员是不是很讨厌产品经理,每次看着我都很不耐烦,老觉得我什么也不会,只会给你们找事情。然后我每次提什么要求,你们这些程序员都不愿意给我做,总是找各种各样的理由。设计师也是满满的怨念,说我明明都设计好了,你为什么做出来就跟我设计的不一样呢?你们这些程序员还不停的来找我,说我能不能做出来跟你这个稍微差一点点,你为什么底下要画根线,我这根线能不能不做上去,你为什么要把这个按钮设计成这个颜色这个形状,下面还要有一个圈,我能不能不做这个东西,因为每次做这个东西都很费劲。

原来我们在猎豹移动的时候干过一个什么事情。当时的猎豹浏览器也是很多栏嘛,当时的设计师要求当你点击了某一个栏位,光标要从原来正在活跃的这个栏位上飘过来。但是这个东西很难做,大家知道我们写程序的时候是面对Chrome的底层去写程序,那个玩意不是从头就是我们做的。所以当设计师提出要求来的时候,程序员就会去问他说,你一定要这个光标飘过来吗?我直接把这个变亮,把那个变灭不就完事了吗?不要有这个中间飘的过程行不行?设计师说不行,我设计要有这种一致性,我整个的设计风格是什么样的。他们就会有这样的矛盾。

其实我跟产品经理和设计师打交道的机会并不多。为什么呢?因为我那个时代,程序员就负责所有的事情。我写程序的时候都是九几年,到2000年前后我在写程序,我写了10年的程序。然后,程序员开始跟产品经理、跟设计师打交道,是在后面大量的web应用、大量的这种移动应用上来以后,才会有后边的这个故事。像我们以前就是自己做就完了。我们那个时候做的产品都很难用,你必须要经过认真的培训,才可以把它用起来,而且都奇丑无比。因为我们那个时候,就是自己写就可以了嘛。我记得当时我去考大学的时候,学计算机不可以色盲。后来我说为什么学计算机不能色盲,说色盲的人设计出来的界面会大红大紫,红绿色盲嘛,你看不到这个颜色吗。后来,我上班了以后,就碰到了一位色盲程序员,本科不是学计算机的,他学了其他专业的本科,然后出来以后转行做程序员了。他设计出来那个界面就大红大绿的。但是后来的话,程序员、设计师跟这些产品经理,就成了三个冤家,必须要凑在一起才能干活了。他们讲完了那个话以后,我说哎呀我感受到了你们的怨念,你们都想把我干掉,然后他们也在那乐。这个沟通、适配、迭代,这是我们当时写程序的时候,团队里边解决怨念的方法。实在不行就出去喝一顿大酒,这个事情解决了,继续往前走。但是有的时候呢还很麻烦,为什么?因为有的时候这个程序员是男的,这个设计师和产品经理是女的,那个女生她不愿意出去跟你喝一顿大酒。当然也有一些程序员呢,就跟产品经理或者设计师,喜结连理了,吵着吵着就变成欢喜冤家了吧。产品经理呢给我们还讲了一个故事,产品经理他自己开了一个AI编程的课程,他原来一点编程都不会,然后写了一本书叫《AI编程蓝皮书》,开着课程开始去教课去了。然后一位60多岁的创始人,跑来学编程了,他就问人家说,您都这么大岁数了,您来学编程,而且您原来创业这个项目,也不像是公司里没有程序员的样子呀。这个老的创始人就跟他说了,我们原来公司里也有程序员,有十来个程序员的。

但是呢,我老信不过他们。每次向他们提点要求呢,他们就是:“哎呀,这个干不了,那个干不了,这个只能做成这样了,那个只能做成这样了,这个必须要一个月才能做完,那个还得再干俩月。”我老信不过他们,干脆我自己学一下,他们以后就不能再糊弄我了。

这就像什么呢?叫“非我族类,其心必异”。就像我们面对那些医生、律师、会计师那样,也是这么想的:“总有刁民想害朕,你们是不是都想坑我?”所以这位60多岁的老创始人,就跑去学编程去了。反正一个敢教,一个就真敢学。两人都不会编程,一个是产品经理,一个是从来没有学过编程的创始人,也是个团队的创始人嘛。两个人就开始学起来了。

我觉得等这位老创始人学成回去以后,估计会上演很多的狗血剧情。回头我再去问问他,这个老创始人学完了以后,他有没有做回访。但是我能够想象的出来,这种事情一定会鸡飞狗跳的。

那么,程序员到底在想什么?咱们来解答一下那位老创始人的疑问。你们来去跟程序员沟通,说:“把这个给我做一下,做不了;给我那个做一下,能不能打个折扣,稍微调整一下,找一个我熟悉的方式来做;你这个地方帮我改个小错误,就这么简单的一个错误给我改一下,这得改俩月,这可费劲了。”到底是发生了什么?

程序员思考的问题里头,完成功能只是很小很小的一部分。那你说你们做程序员的,你不给把功能完成了,你们都在想什么呢?第一个很简单的问题,技术选型。你要让我完成这个功能,我到底是用什么东西来去完成呢?你让我去炒个菜,那你说我是出去买个预制菜回来炒一下呢,还是说从现在开始耕地种粮食呢?程序员经常会想这样的问题。

而且有的时候为了做出最符合自己要求的这个功能来,他们真的会耕地种粮食,就是会从很根本的地方开始去做,而不是说用人家已经做的差不多了一半的东西,用现成的东西直接拼。这个用现成东西拼就是预制菜嘛。所以程序员经常会很纠结,到底选哪个呢?其实通常是选他自己熟的那个。然后程序员会想下一个问题是什么?代码复用。

我写完了这段代码了。我下次是不是还能再把它用上?或者我以前写的哪个代码好像跟这差不多,我怎么能把它用上?我为了让这个代码下次还可以用,我就要给这段代码里头写很多你当前这个功能所不需要的代码进去。为什么呢?因为我首先要写个注释吧,我要告诉他,我这个东西前面干什么了,后边干什么了,这个下回还能怎么用。然后还要写很复杂的这个架构吧,因为你想一段代码,比如说有1,000行,那我不能说我把这1,000行都用上,我要把它分好架构。而这个是50行,那个是30行,1,500行里头分成50行一段,30行一段。有人说你这不对,一开始说1,000行,怎么变1,500行了?因为凑这些架构又多出500行来。你说我只管把所有事都干完了,可能1,000行干完了,然后你说我为了有所有的这些架构,架构还很清晰,那我又多出500行来。那我下一次说,我用到这个里头的200行,我下次再用到另外那20行,他是这样来去规划的,叫代码复用。

然后还要思考什么?怎么进行效率提升?并行处理呗,哪两个事情之间不影响,让他们并行起来,这也是需要去思考的。还有一个很麻烦的是什么呢?环境适配。这个是什么东西?我这个程序能在PC上跑,能在网页上跑,能在安卓手机上跑,能在苹果手机上跑,或者我还有一部分是要到亚马逊云上去跑,或者到阿里云上去跑。那每一个系统后边都有一大堆的规范文档在那儿,那我要想适配他们,这个也很麻烦。还要避免各种各样的极端情况,什么极端情况?同时有30个人用这个事没问题,可以跑,同时有1,000个人用,程序崩了,这个也是需要在写程序的时候思考的问题。

而且写程序的人有的时候叫什么呢?叫江湖越老胆子越小。为什么?就各种坑都踩过了嘛,等下次再走的时候说,你怎么用这样奇怪的一个姿势在这儿走路?你不知道那里有坑,他是这样的一个发展过程。所以这就是导致为什么说这些文科生,这些设计师,这些产品经理,这些创始人。

觉得程序员那么不可理喻的一个原因,而且程序员想的刚才所有这些东西,其实都是可能在写程序的过程中很小的一部分。那你说剩下的时间你们都干嘛去了?这个程序员的工资不低,你们都天天在这摸鱼吗?不是,当然摸鱼肯定也要摸了。这个程序员真正用很多的时间去思考的东西,叫团队协作。这什么意思?我写完代码下一个人要改,下一个人可能还是我。那你说你这怎么又绕回来?明日之我不是今日之我,他是这样的一个过程。像我们经常写着写着程序说:“哎呀,这个程序是我三年前写的,当时到底怎么想的?”

我记得原来有一个故事,大夫写字不都写的特别潦草吗?有一次写了个药方子,到那个药房去抓药去了,实在认不出来是什么字了,然后就回去找这大夫,说:“大夫,您这字到底写的什么呀?”这大夫看了半天,然后一拍桌子:“何不早问?你早干嘛去了?现在你问我,我也想不起来了。”

所以呢,我们要做很多很多的事情是为协作的,即使是自己跟自己协作,也是需要写很多的代码,写很多的注释,做很多的加工设计。所以软件的本质是工程,不是软件本身。真正实现功能的部分只占很少很少很少的一部分,软件里面绝大部分的内容都是防止程序员迷路的。我们在这里钉个小牌牌,说:“你再往前走三步有一个坑。”这个是真正软件工程里边去做的。而且你钉完小牌牌以后,还要写某年某月某日,谁谁谁在这里钉的小牌牌。

所以呢,这就是屎山代码,什么意思?就是一大坨代码谁也不敢动。因为我们刚才讲复用嘛,你复用了以后,就会有这个代码依赖的关系,这个代码要依赖那个代码。那么你在这个东西想要再去调整,再去修改,就会变得非常非常难,叫牵一发动全身。你修改掉一个bug以后,可能带来10个bug。然后为了避免这个东西,我们还要有一堆人再去思考,再去研究。还有很多人硕士、博士学位,出来学什么软件工程学,人家学的不是说我要去实现什么功能,就是我们学习如何在可以接受的成本范围内,组织很多的人进行分工。

把一个巨大的软件工程完成掉,这也是一门专门的学问。那么,非程序员到底是怎么看程序员的呢?其实就像我们去看老中医。这些非程序员不愿意为功能之外的事情进行沟通。你说找个程序员来给我做个功能吧,这个程序员再去跟他讲效率,再去跟他讲兼容性,再去跟他讲,说你到底是要在安卓手机上用,还是要在苹果手机上用的时候,文科生、产品经理、设计师就会觉得很烦,而说这个就这么简单的一个事情,怎么搞不定呢?

我举一个最简单的案例。你比如说设计师设计了一个小动画,程序员就去问了,说你要安卓手机用还是苹果手机用。这个设计师说,你就都实现了不就完了吗?然后这个程序员就哭了。为啥呀?因为苹果手机好实现,你可能一句话把这事搞定了。安卓手机呢,可能就费劲,你可能需要写很多很多的代码才可以实现。而且你一旦要求安卓手机实践的话,他还要问你说,你这个到底是在2,000块钱以上的安卓手机上实现呢,还是4,000块钱以上的安卓手机上实现呢,还是要求1,000块钱以下的安卓手机也能实现呢?

很多人觉得这不是问题,没做过程序员的人完全无法想象这个。为什么?我告诉你,安卓手机算力是有限的。很多这种前端界面上的事情,到这个很便宜的安卓手机上是渲染不出来的,或者渲染出来会很难看,会有这样的问题。所以你作为设计师来说,你给我作出来不就完了吗?程序员说,您上下嘴一碰说出来了,但是到我这可费劲了。所以这个会有很多的沟通、交流上的一些障碍。

除了不愿意为了功能之外的事情进行沟通之外呢,这些非程序员还有一个问题是什么?他们不愿意为了功能之外的事情支付成本。比如说创始人来了说程序员,你给我去做一个什么什么功能。咱们依然是上面这个事情,你如果只做苹果的,很快就可以做完了。你要求把安卓的也做了,而且要求1,000块钱以下的安卓手机也能跑,那你要花很多的时间,甚至花很多的钱,那个程序员工资会上升的。

能够解决这样问题的程序员是很贵的。这种事情我们原来是真的发生过的。原来跟大家吹过牛,我们以前投资的Musically,他最早就只做了苹果的版本,安卓版本他没做。等到做安卓版本的时候,发现他做不出来了。为什么?他们做的大量功能,在苹果手机上一句话就搞定了,因为iOS系统其实是相当完善的。安卓系统呢?你说为什么不做那么完善呢?这个谷歌就笨吗?谷歌也不笨。他之所以不做那么完善的原因,是因为他没有办法控制硬件。他把这个功能都做的很完善了以后,你到不同的这个硬件厂商上,三星的、HTC的、华为的、小米的手机上,它不一定都跑得起来。所以呢,它就很多的功能它不能做,它一定要让手机厂商去把它完善出来。所以当时他们就搞不定了,说Musically这个软件要到安卓手机上实现,实现不了了。那怎么办呢?找我们说你作为投资人,微暴移动你投了我们了,这事你得搞定。那没办法,那上边我们就派了大量的程序员,坐到他们的办公室里来,我们替你搞定,每一个功能都可以实现出来。但这个就是成本。你要碰到这种不是那么明白的人去搞这个事情,这就费劲了。你像刚才我们讲的,60多岁的老创始人,找了一个不会编程的产品经理,学了半天AI编程以后,那回去不炒成一锅酱糊才怪嘞。最后一个问题是什么呢?就是这些非程序员,他们往往是以结果论成败的。很多东西在表面上他是看不到的。就像刚才我们讲的,你同样的功能,你在安卓手机上实现出来,可能还没有苹果手机上实现出来好看,但是呢,费老鼻子劲了。对于不懂程序的这些文科生或者设计师来说,你们这些苹果程序员好厉害,你们这些安卓程序员很笨。原因其实很简单,苹果自己做的好,安卓自己本身底层比较烂,那也没办法,他就会有这样的片面的认知在里头。而且后台的程序他看不到,他们就说前台的这帮人,你们这个功能一个一个实现的很好,后端的人你们程序怎么又蹦了。他只永远只看到这一个,因为后台嘛,只有这一个结果。

崩了,没崩。崩了,没崩。没有别的了。讲到这了,很多人会觉得,我是不是要为程序员叫屈?但是看看前面我的标题是什么?是我觉得学文科是很重要的。文科生非常非常重要。为什么我跟他们聊完了以后,他们对程序员有这么大的怨念,我反而会得出结论说文科很重要的?其实这就是设身处地的思考。

我用Midjourney画图,画了自己也很开心。画完了以后,我觉得我的情绪会得到了抒发,这个非常棒。我用DeepSeek写小说,写出来的东西呢,我看着也挺开心的。这一段看着不错,那段看着也不错。但是我在那天听完了他们讲之后,我突然意识到了一个问题是什么?我是没有能力将很多的画,按照统一的风格,或者说呢叫做一致性,把这些一致性的画,拼凑成一个完整的绘本呢。我也没有能力把这个几十万字、几百万字拼凑在一起,成为一本小说了。

像这个DeepSeek也好,或者各种的写小说的这个AI也好,你命令下去以后,大概就给你写1,000字出来。你要想让他写2,000字都很费劲。而且你命令他写2,000字的话,后面的1,000字的质量就会明显的下降。所以千万不要试图让AI一次性给你输出很长的内容。很多人说DeepSearch这样的东西,不是一次出来很多的东西吗?对,他那个东西不是一次出来,他也是拼成小段,一段一段出来的。所以呢,我是没有能力拼出小说来的。

而且呢,我也没有办法去判定一幅画,或者1,000字、1,000字的这种文字片段,到底好还是不好。术业有专攻。我上了四年大学,几十年的工作训练,掌握了非常多的技巧。那么我就可以去跟这些文科生去讲,跟这些设计师去讲,说:“哎,为什么你这东西能做?为什么不能做?你如果一定想做,到底需要支付多少成本?”这个事情我能跟他讲清楚。而且哪个东西会更好一些,更坏一些,这个事情我也可以给他讲清楚。

文科生、艺术生其实同样是这样。他们也是上了大学,也是经过十几年、几十年的工作训练。而且文科生跟艺术生……

他们所掌握的技巧是更难进行衡量、量化和迭代的。像我们其实一直在研究工程的问题,我们做的所有结果都是可以量化、可以进行迭代的。他们那些东西很多是感性的东西,比我们这个还费劲。所以在这样的一个情况下,我觉得他们更加重要一些。

所以现在很多人说,我们是不是应该把文科的取消掉,应该让更多的人去学理工科。这个事是错的。AI距离替代程序员目前还非常遥远,当然它在快速的向这个方向走。但是AI距离替代文科生和艺术生,应该更远。

很多人说不对,AIGC它生成内容了,它能生成图片、能够生成视频、能够生成音乐、能够生成文字了。但是这个东西距离诗和远方还非常非常遥远。就像文科生写程序一样,他们写出来的就是一坨坨屎。这个真的不是说看不起他们,因为AI现在所生成出来的这些代码片段,就像我们生成的图片或者写出来的文章是一样的,是没法拼凑在一起了。拼出屎山这件事本身是很难的,不是说你可以把一堆屎搁在一块,就是一堆屎山的。最后一大堆碎片,你可能连拼都拼不起来。

像我们写程序也是有风格化的,也是有一些代码编程规范的。现在AI生成的代码,它会在不同的文件里边生成不同规范、不同风格的代码。这种东西是拼不到一块的。还有就是我们没有办法去判断这些图片跟文字的好坏,这个时候还是需要这些文科生、需要这些艺术生,他们才可以去判断。

那么为什么大家都觉得可以取代对方呢?这个还是评判的标准不一样。我觉得我画的Midjourney很漂亮,让我的情感得到了抒发,让我的情绪得到了满足。我觉得我写的小说也挺好,这就是程序员在评判文科生跟艺术生的成就。而那边呢,产品经理教人写程序,大家都觉得挺好。这就是文科生跟艺术生觉得他们懂编程了。

其实是一样的,就是我们拿出来的这些画,我们拿出来这些文字,让文科生看了以后,让艺术生看了以后觉得很可笑。就跟他们拿出来的代码让我们看了,也觉得很可笑是一样的。

但是现在,8岁小女孩写游戏这样的故事,他很有传播性。大家对于AI也抱有了远远超越其能力的这种预期。AI创业者呢,其实也不愿意出来纠正这种误解。他希望说:“你们先误解着,我那头没准加加班赶赶工,这个AI就赶上来了呢。等你发现这个东西有问题之前,我就把功能做出来了。”这个是很多程序员喜欢干的事。所以这就是大家现在都觉得可以替换别人,各个公司都在这疯狂裁员,就是这样的一个原因。

Deepseek今年其实已经造成了大量的裁员。那么,应该如何面对未来呢?肯定还是要交叉学习对方的技巧。因为现在有了AICC以后,工作效率提升了,有了一些空闲的时间,多去学一些交叉的学科。但是与此同时,一定要心怀敬畏,千万不要上来说:“我懂了,你们都靠边站。”这个是要翻车的,是要出问题的。

而且,我们要准备迎接更加奇轨的未来,就是端道端。刚才我还在讲我们在吵架,文科生、理科生、美术生,三个人坐在这在吵架呢。等到最后端到端的时候,就连吵架的机会都没有了。到那个时候,就是上帝说要有光,于是就有了光。可能我们就真的不知道该去搞什么了。

那么,应该如何去迎接端道端这个过程呢?其实就像自动驾驶一样,先是给你一些提醒,最基础的是:“哎,前面有车了,我给你警告一下。”然后呢说:“我可以帮你去开一点,但是你的手要放在方向盘上。”再然后呢是说:“唉,手可以不用放在方向盘上了,但你人得坐着得看着,随时准备接管。”最后呢,是说:“人不用在这呆着了。”到最后一步就叫端到端了。这个也是一个一步一步往前走的过程。

端到端之后的话,我觉得我们可能应该学习日本人造汽车的方法。他们始终会保持一条纯手工的生产线,就是其他的都是用机器来生产,用流水线。绝大部分汽车也都是在流水线上做出来的。但是呢,始终有一条线是用纯手工生产。最后,他要确保生产线上下来的汽车跟纯手工组装的汽车品质完全相同。这可能是我们未来面对端到端的时候所必须去采取的一些措施。否则的话,万一出了一些问题。

因为一旦端到端了以后,出了问题你是一点办法都没有。你都不知道中间是发生了什么。这可能就是我们的未来。在未来的话,文科生、设计师都很重要,程序员也很重要。谁都不应该失去工作。好,这个故事今天就讲到这里。请帮忙点赞、点小铃铛,参加Discord讨论群,也欢迎有兴趣、有能力的朋友加入我们的付费频道。再见。

Comments are closed.