和文科生聊了一小时编程,感受到AIGC时代,文科生更加不可或缺了。程序员、产品经理和设计师的相爱相杀还会继续。AI现在还不能取代程序员,更不能替换文科生的诗和远方。
3 月 07
AIGC AI与人类, AI代码规范, AI创业, AI创业者, AI协同工作, AI发展阶段, AI对工作影响, AI对教育的影响, AI对艺术的影响, AI开发工具, AI挑战, AI教育, AI时代, AI替代文科, AI未来展望, AI生成内容, AI生成小说, AI编程, AI编程预测, AI自动化, AI裁员, AI项目管理, DeepSeek, MidJourney, 交叉学习, 产品经理, 人工智能, 代码复用, 代码架构, 写作AI, 协作方式, 协作难题, 团队协作, 团队沟通, 安卓优化, 安卓手机开发, 屎山代码, 工作效率提升, 工程技术, 工程逻辑, 开发成本, 技术发展历史, 技术局限性, 技术工程本质, 技术感性, 技术效率, 技术迭代, 技术选型, 文理之争, 文理分工, 文科优势, 文科取消是否正确, 文科对科技的影响, 文科生, 文科生成就, 未来科技趋势, 未来职业, 环境适配, 程序员, 程序员和文科生的关系, 程序员和设计师的关系, 程序员幽默, 程序员思维, 程序员怨念, 程序员故事, 程序员经验, 程序员职业发展, 程序员误解, 端到端技术, 绘画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讨论群,也欢迎有兴趣、有能力的朋友加入我们的付费频道。再见。