职业游民Vol.2 | 世界是一个巨大的系统,而你不能保证它没有bug

最近,一个关于程序员写过的惊天bug盘点话题成为知乎热议。历史上,一个错误的代码,或带来30亿巨额亏损,或导致手术台上的6条人命无辜丧生,甚至差点毁灭世界。

这些程序员工作中出现的bug就仿佛灭霸的一个响指。

图片来源:电影《复仇者联盟3》截图

到底是什么让程序员成为如此具有杀伤力的武器?(划掉)

换一种说法,由于我们的现实世界越来越被编程化为一个按0和1的代码运行的信息系统。而这个线上世界的设计者——码农,如果工作稍有不慎,便会让整个虚拟大厦由于逻辑崩坏而轰然坍塌

这对我们现实世界来说,影响也是巨大无比的:

7.20郑州暴雨事件过去后,由于全城的电力、网络系统遭洪灾而瘫痪,郑州这座城市成了现代文明世界里的一个信息荒漠。共享单车开不了锁、移动支付无法使用,断开连接的整座城市连基本的交通、经济都几乎难以为继。

因此,在我们越发依赖互联网技术的今天,我们很难再去想象一个没有了程序员的世界。

也正因如此,有越来越多的年轻人扎堆学编程。可是,当第一代互联网人的财富神话已成为历史,大厂程序员要面对的“35岁危机”才是现实。

在未来,程序员高薪的光环还会持续下去吗?随着程序员的工作划分越来越细,从前端到后端,从算法到架构,甚至到一个小小的细格子,这是否意味着原有的程序员职业发展路径正在越走越窄?现在连AI也能写代码了,程序员会被取代吗?他们又将会以其他何种方式继续存在呢?

今天,我们也关注到除了互联网公司,还有许多第二产业的工厂需要借助互联网科技的力量来改变钢铁厂、矿山原始的作业方式,而这也许才是程序员们的全新机遇。

《职业游民》的第二期播客,我们将透过有着二十多年从业经验的程序员Winter的视角,来对程序员的这份职业一窥究竟,探讨程序员在未来将走向何处去,以及从事这份职业的人将如何才能走得更远的问题。

扫描下方二维码,即可收听“职业游民FREETE”播客,我们每期播客将固定在网易云音乐平台更新,欢迎大家收藏订阅。

时间轴

TIME LINE

06:00 我入行时,正好赶上了第一波互联网热潮

09:20 程序员的本质是什么?对程序员行业的硬核科普

17:34 千万别动程序员的代码,否则……

19:50 程序员的入行要求有哪些?

26:04 一个程序员能走得有多远,对业务的理解是非常重要的一部分

28:00 同一瓶可乐的条码,可能超过100个

29:44 世界是一个巨大的系统,而你不能保证它没有bug

35:12 产品经理,像社会学家一样思考?

39:16 为什么程序员能拿这么高的工资?

42:58 程序员在未来会被AI取代吗?

48:29 题外话:为什么程序员会秃头?

52:52 快问快答环节:一份带你快速了解程序员行业的普鲁斯特问卷

(以下内容约 18250 字,预计阅读需要35分钟)

力盈:欢迎来到职业游民第二期播客,我是力盈。

Leone:我是Leone。

力盈:这期我们要讲一个这几年非常热门,薪酬也非常高,也是大家热门选的一个职业,就是程序员这个职业。

程序员这个职业到底干什么?他们为什么能拿这么高的薪水?我想这是大家最关注的两个话题。所以这次我们请到了一个非常特殊的老朋友,他是在这一行从事了接近20年的一个资深人士。

Leone:是一个老码农。

力盈:我们欢迎Winter。

Winter:大家好,我是Winter,我已经码了20年的农了。

力盈:大家好我是Winter,我来自霓虹

Leone:Winter先简单跟大家介绍一下自己吧。

Winter:嗯OK,那个我简单介绍一下,我大概是从初中开始就接触编程。

Leone:这么早?

力盈:你上初中时是几几年?

Winter:我上初中时应该是在1994、1995年。

Leone:那时候的电脑应该都是986。

Winter:386,486。

Winter:今天在这里暴露年龄了。那时候的电脑运行得非常慢,所以那个时候的程序员对性能的要求是非常高的。一开始的时候就是,去学习那些算法等等,还有数据库也是在那个时候学习的。

所以基本上到了大学毕业,已经把现在所有会的东西都学得差不多了。你可以认为这十几年在工程方面可能会有比较大的变化,但是我觉得计算机的本质是没有发生任何天翻地覆的变化的。

Leone:但那个时候,其实我有一个蛮好奇的点。你要说现在的话,我们要接触一些跟编程相关的东西,大家肯定也接到过很多,比如python训练营之类的这些。

但你在那个年代,你自己是怎么去学习跟程序员、编程这些东西相关的知识,怎么获取到这些信息的?

Winter:从这一点上来说,我非常羡慕现在的程序员,他想学什么就可以学什么。对于我们那个时代的程序员来说,他可能面对的就是非常少的书本上的知识。

当时我遇到了一位好的老师,那个老师做这一行还是比较专业的。他当时是复旦大学的本科毕业生,所以他过来教高中生和初中生的时候,已经具备了一个比较坚实的基础。

在那个时候,我们应该说受到了比较良好的教育,这也算是一个机遇。

1.我入行时,正好赶上了第一波互联网热潮

Leone:后来你是怎么进入职业或者说选择了这个专业?

Winter:后来到了大学之后,实际上我并没有考上计算机系,因为那个时候计算机系的分数太高了。但是我在大学期间……

Leone:能对比一下吗?比如说它的分数,比如说北清这一类的高校,把它的分数跟其他专业做一下对比。你现在还有印象吗?

Winter:大概可能要高20到30分左右。

力盈:所以那个时候,程序员就已经是从精英中选拔精英的一个逻辑了。

Winter:对,在当时,做计算机的其实在整个行业里面,应该说他的薪资水平是非常高的,所以报考计算机的人非常多,它的分数是很高的。相比而言,现在其实并没有那么大的分数的差别。

当我读完本科之后,实际上我在做一个选择,我到底是沿着自己原来本科的专业继续工作,还是说放弃原来的专业选择计算机专业。最终我选择了后者,我选择了信息安全作为研究生阶段的学习方向,我当时以为这是一个计算机专业。

当我很开心地去上课的时候发现,这个专业和计算机的关联度非常的低,它基本上是一个数学的专业,好在自己对数学的兴趣还是比较浓厚的。所以当我读完研究生之后,后来直接选择了计算机专业,把程序员作为我的职业,一直到现在已经将近15年的时间了。

Leone:不用说那么明确的数字。

力盈:老是会暴露你的年龄。

Winter:没事,暴露就暴露。

力盈:暴露出来就是一条你我之间的鸿沟。

Leone:其实你是从上学的时候开始,然后一直到现在都在这个行业里面,没换过,对吧?

Winter:对,可以这么讲。

力盈:你为什么那么小就会对计算机感兴趣?我很难想象,因为我小时候觉得,电脑就是用来玩儿的,长大了以后我也不知道编程是什么。

Winter:有可能在那个时候,我也觉得电脑很好玩,但是因为我打游戏打得太差了,老是打不赢人家,没办法,只能另辟蹊径。

Leone:但其实我在想,会不会有这么一个原因,因为你那么早去接触电脑的时候,因为当时都是dos系统,dos系统不像后来的Windows(它整个系统是有界面的,你操作起来比较便捷),所以说你肯定要知道里面的代码。

比如说我想要执行一个什么命令,需要怎么样去把这个东西打出来,而不是说像当后来我们开始学电脑的时候,全都是Windows,你去点就OK了,不用你去执行去了解这些东西具体应该怎么操作。

Winter:对,我觉得在那个时候可能有一个先发优势,毕竟很少的人学了计算机,然后当周围的朋友碰到计算机方面的问题的时候,他可能都会来求助我。

我本来和他们的水平差不了多少,但是在反复被求助的过程当中,我反复折腾,反复研究,可能在这个过程当中,反而自己的水平得到了一定提升。可以这么讲。

Leone:那其实从你入行的时候,可不可以说那时候正好是中国互联网兴起的阶段。

Winter:在我入行时,实际上正处于第一波互联网的热潮,应该说是在1999到2001之间有一波互联网的热潮。

那波热潮之前,其实我已经有了一些准备,但是那个时候,因为在大学也不能算是真的入行。在那段互联网刚刚开始,在中国大多数人接触互联网的时候,那段时间,也是我技术上升得最快的时间,应该是我和周围的人明显拉开差距的一段时间。因为有了互联网之后,我的学习方式、得到信息的方式变得更加广泛了。

原来我有一个问题积累在心里,可能要花上好几个月或者是好几年才能解决的问题,在互联网到来之后,可能一夜之间就解决了。

在那段时间,现在我们看到的一些互联网的元老级公司,也是在那个时候成立的,比如说像腾讯、搜狐、网易,它们一直生存到了今天,是第一波。

力盈:那时候的QQ好像还叫OICQ,页面也非常古老,但直到今天,那个界面其实没有发生特别多的变化。

Leone:对,我记得最早的时候,QQ还有一个网页版。它是一个特别大的聊天室,不需要有QQ号,因为太久远了,我记得好像是只要注册一下,你进去之后几百人都在那里面聊天。

我记得是这种,我不知道这是不是腾讯的,但是我记得好像也跟QQ有关系。

Winter:那个可能不是腾讯的。网上有很多这样的聊天室,像各大网站都会有聊天室,你进去就可以随便聊。QQ最早的时候是要注册一个QQ号的。最早的时候它叫OICQ,后来因为国外有一家叫ICQ的公司一直在和它打专利的这些官司,后来它被迫改名改成了QQ。

Leone:我觉得可以给大家推荐一下,如果大家有兴趣的话,可以去看看《腾讯传》那本书。虽然在某种意义上来说,它是一家企业的PR行为,但我觉得它记录了在3Q大战之前,整个腾讯如何起家、如何发展的一段经历。我当时看的时候觉得蛮有意思的。

Winter:对,QQ在有段时间是非常艰难的,以至于在注册QQ号的时候还得收钱,大概是在2004、2005年的时候(如果我没记错的话)。

在经过了那段艰难的时间之后,QQ就开始突飞猛进。因为它找到了另外一条路,就是做游戏。慢慢地,QQ在游戏市场的占有率越来越高,在游戏上面它收了越来越多的钱。至今,QQ仍然是一家以游戏作为主营收入的公司。

2.程序员的本质是什么?对程序员行业的硬核科普

力盈:就你的理解而言,程序员这个行业随着整个互联网大潮的起起落落,有什么变化吗?或者说这个行业的本质是什么?本质上是在码农?Farming Coding?

Winter:这个问题真的难倒我了,让我思考一下这个问题。程序员的本质是什么?

Leone:我一听本质这两个字,就觉得这个问题就不好回答。或者这么说,你觉得从你快要毕业的那个时候开始,第一波互联网浪潮兴起的时候,一直到现在这个阶段,程序员有变化吗?对程序员的要求,还有程序员本身的一些东西有变化吗?

Winter:从本质的角度来说,对程序员的要求一直没有太大的变化。当然,现在的程序员可能分成了很多个板块,比如说,程序员有后端、前端、运维,还有开发小程序或者APP的、AI工程师、大数据工程师。那么在早期的时候,程序员其实没有这么多的方向,每个程序员对项目当中的所有一切都要负责,他们从前端做到后端,这是理所应当的。

那么为什么会有这么多的分类?是因为大概在2009年左右,web端其实是发生了一些变化,慢慢地,前端的程序员和后端的程序员在那个时间点就开始分裂了。因为那个时候的程序员发现,前端程序员所做的事情,它的复杂度越来越高,原来这些工作可能都是后端的程序员来为他们完成的,现在后端程序员已经是筋疲力尽,已经无暇顾及前端的这些页面展示了。这条分界线一直保持到现在,程序员就天然地被分成了前端和后端。

然而我认为,这样的区分其实不得已而为之。我还是觉得前端和后端的程序员(我一直是这样想的),不应该有这么明显的分界,包括现在的大数据程序员、AI程序员,实际上这是整个行业的人为区分。有很多程序员把自己划了一个圈,画地为牢,我是做前端的,后端的逻辑我不用管,或者说我是做后端的,我对页面的展现毫无要求,毫不关心。

Leone:我觉得我们要稍微岔开一下话题,就是说可能有很多人不知道,比如说刚毕业的学生,或者对这个行业不了解的人,他分不清什么是前端,什么是后端,什么是算法,什么是架构师。这个可能要简单地跟大家讲一讲。

Winter:我讲一下每一个方向上,它们有什么差别。比如说前端,一般来说指的是比如说一个网页,或者一个APP,一个小程序,这个小程序它长什么样子,它和用户在交互的时候有些什么功能,这些都是由前端的工程师来完成的。你看到的漂亮的页面、酷炫的动画效果、漂亮的展现方式,都是由前端工程师来完成的。

那么后端的程序员主要是负责应用当中逻辑的部分。比如说在页面上有一个功能叫做上传我的照片,那么上传照片的按钮,还有上传照片之后,把这个照片显示在前端页面,这个是由前端工程师来完成的。后端工程师负责把照片数据存储到磁盘上,或者是把它的信息存储到数据库里。前端负责页面展现,后端负责应用的逻辑,这是前端和后端之间的分界线。

AI的工程师可能大家比较好理解,当我需要一个AI算法,比如说我需要提取每个人的人脸特征,那这是AI工程师应该做的事情。

另外,大数据工程师,就是说,(需要处理的)数据量可能非常的大,像这些大厂,可能有万亿级的数据处理要求,那么他负责把这些数据放到大数据平台上面,放到数据库里面。那个数据库和我们平时后端人员使用的数据库是不同的,他们可能会用一些类似于像帕杜帕或者是Hbase这样一些容量非常大的数据库来存储这些信息。

另外,还有一块是IT的运维,像如一些基础设施,比如说网络上的路由器、交换机、服务器的机房,这些东西都是由运维工程师来解决的。

力盈:那架构师是什么?

Winter:架构师其实是没有特定要求的一个职位,但是通常来说,一个好的架构师是从后端成长起来的,因为后端它了解整个系统的脉络架构。他知道当我的系统变得非常复杂的时候,应该怎么样去调整我的架构,让整个系统运行得更好。而前端工程师往往缺乏这样的能力,所以我看到的可能90%到95%的架构师,都是后端工程师出身。

3. 千万不要动程序员的代码,否则……

Leone:其实分了这么多,坦率讲,我还是不太明白他们到底是干嘛的,因为毕竟我们不会写代码,但还是有很多人愿意进入到这个行业。你觉得如果要进入到这个行业,最基础的要求是什么?

Winter:我觉得第一个最基础的要求,应该是对这个事儿有兴趣。你们俩有兴趣吗?

Leone&力盈:没兴趣(异口同声)。

Winter:我见到的所有做得非常优秀的程序员,其实他最早的时候是对这个事儿有兴趣,所以他才会去钻研里面的技术。不管是做前端还是做后端,可能他在那个时候完全不知道自己应该做什么。他只是在网上随便搜了一下。这样的人通常会有一个目标,比如说我要做个小程序。

小程序这东西,前面的一层皮其实是前端;小程序要给人用,有人用了之后,我要把这些用户的信息记到数据库里面,这其实是后端。做完一个这样的小程序之后,实际上他对前端和后端就有了一个基本的了解,那么在这个基础之上,他不断地迭代,把这个东西越做越好,越做越大。

在这个过程当中,他对整个行业从头到尾都有了一个比较完整的了解。所以我见到的相对来说成长比较快、比较优秀的程序员,都是从这样的模式开始的。

具体要说别的要求的话,可能对数学方面有一些要求。这个并不是说我的高等数学,或者线性代数一定要学得多么好,而是他的思维当中逻辑性是比较强的。

因为计算机其实是很冷酷的,它不会因为你喜笑颜开,程序就跑得快一点;也不会因为你心情不好,程序就跑不出来。一旦你的思考逻辑当中出现了漏洞,它必然会崩溃。

面对机器其实是一件很无奈的事情。如果你没有很好的耐心,没有严密的逻辑思维,在面对机器的时候,你肯定会暴跳如雷,因为机器没有按照我的想法去做。

力盈:然后你们不知道bug在哪里。

Leone:这是不是程序员不愿意让别人动自己代码的原因?

Winter:程序员不愿意让别人动自己的代码……

Leone:有没有这样的?

Winter:程序员当然不愿意让别人动自己的代码。程序员的代码就像这个屋子里面放好的每一本书,他知道这本书放在这个地方,哪怕他放的位置不太对,但那是他自己放的,在下次要去找的时候,他可以找得到。就像你的屋子,可能不是百分百地整理得干干净净,非常完美,但是……

力盈:你知道每个东西的位置。

Winter:对,那你就可以在家里面待得很舒服。一旦有一个人来帮你重新整理了一下,把你所有的东西都分门别类地放好了,重新布置了你的书桌和床,你回家一看,虽然干干净净,但是那种心情会是什么样的。

力盈:我想问一个很小白的问题,到底什么是编程?我来描述一下,当时我作为一个中文系学生,在大学里第一次上编程课的时候,我是蒙圈的,我不知道这是在干什么。

老师告诉我这里有一套语言,我要按照语言的逻辑规则写一个东西。写出来之后,我要背诵其中一些关键的代码。而且你必须要这样背诵,必须要按这个逻辑来写这样一套东西。

我当时就非常地蒙圈,我可以去背这个东西,可是我写它干嘛?我为什么要用这样一套语言来创造这样一套规则,最后要跑出这样一个程序,这到底在干什么?这个是我花了很久才理解的一件事儿。

Leone:我再补充一个问题,你可以一起回答。程序员的英语是不是都很好?

力盈:对,当时我们很痛苦,为什么所有的代码都是用英文写的?那我如果英文不好,我就没有办法当程序员了吗?

Winter:程序员基本上只需要记忆不超过20个单词,就能把程序写完。

Leone:不是吧?

力盈:真的吗?

Leone:不超过20个?

Winter:对,因为在程序里面,一般关键字不会超过20到30个,可能有50个、60个,但是常用的绝对不会超过20个。

力盈:所有的编程语言?

Winter:所有的编程语言。

力盈:真的?刷新了世界观。

4.程序员的入行要求有哪些?

Leone:对于一个刚毕业的学生,如果他想进入一家公司当程序员的话,他需要具备什么样的条件?他应该有什么样的基础,才能进入到这家公司?我直白一点问,如果你招一个入门级的程序员,会是什么要求?

Winter:首先,他要有一些基础的编程知识,这个语言可能是不限的,但是在算法方面他必须入门。他知道这个问题给他之后,他怎么去思考,这个是一个方面的考量。第二个方面,如果他的编程能力不是那么强的话,我会考量他一些和逻辑相关的问题,如果他逻辑也不行的话,那就考量他一些和业务有关的问题。

总之一个人要有自己的长处,要么你的编程能力比较好,要么你的基础比较好,学习能力比较强,要么你在业务方面有一些亮点。

力盈:什么叫业务上的亮点?

Winter:其实,有很多程序员是从其他专业转行来的,这样的程序员,可能在程序这方面并不是那么强,因为他可能才学了半年或者一年就跑来面试了。我遇到过这样的人,在面试的过程中,如果给他一张卷子做笔试的话,他是比较吃亏的。但是,他可能在另外一些方面,比如说专业方面有一些独到之处,这些独到之处其实可以让他在程序员这个行业里面,做得比那些从计算机系毕业的人好得多。

Leone:我觉得有点抽象,能举一个稍微实际点的例子吗?

Winter:比如说我要做一套地理信息系统,如果这个人之前接触过地理信息的话,他在这方面的理解,就会比其他的程序员深刻得多。他可能知道中国的坐标系和全球的GPS坐标系是不一样的,中国有一个火星坐标系。那他在做坐标的转换的时候,他在做地球和平面的转换的时候,普通的程序员可能已经蒙圈了,对他来说就非常简单。

还有一个例子,有很多学经济学、金融学的学生转行做了计算机,他对金融学的理解远远深于计算机系本科出身的人的理解。他在算钱方面特别厉害,比如说有一些利息的计算、PB的计算、等额本金、等额等息、等本等息,这些东西如果和计算机系的人讲,我可能要费很多的口舌,但是对金融学的人来说,这是他们每天都在接触的,所以在写这些算法的时候,他会如鱼得水。

Leone:那我再问一个更简单直接的问题,刚刚你提到,他要有算法或者编程的基础,什么样的才算有基础?这个东西你讲给外行人听的话,大家不知道你在说什么。比如我解释文字工作的要求,我说你要写东西,你要有什么样的基础,大家一听全都能懂。但是如果不了解这个行业的人,他很难理解什么样的算是有基础的。

Leone:咳出一口老血。

Winter:真的咳出一口老血,又陷入了循环的解释。我认为这个基础是这样的,我会评估他学习的时间和到达的程度,以此来判断他是不是适合做这一行。

比如说有的人工作两到三年,那么我觉得他就应该有工作两到三年的人的平均水平。如果学了半年,但是他学会了一些东西,能够超越同等水平的人,我觉得他就是一个不错的人。所以这个基础的要求是比较动态的。

但有一个最低最低的基础。我举个例子,假设我出一道题,有一大堆数,我要求你找出两个数,这两个数的和它等于另外一个数据。像给到这样一道题的时候,他不一定要能够做出来,但是他要有思路,他怎么去思考的,这个其实是像在编程当中最基础的、类似于循环应用的问题。像这样的东西,我觉得是对于算法最基础的要求。

还有一部分是对于计算机的内部结构有大致的了解。比如说我们敲了一个域名到浏览器里面,那么之后,每一步发生了什么?

我对于不同工作年限的人的要求是不一样的。对于半年的人,他可能说浏览器解析成了一个地址。OK,学习了半年的人能够达到这个水平,我觉得已经可以了。

但是如果是工作了三年或者五年的,我可能会问更深的问题,直到把他们问趴下为止。最低的要求还是看他的工作经历,所以还是很抽象。

5. 一个程序员能走得有多远,对业务的理解是非常重要的一部分

力盈:我刚刚想问的是另一个方向的问题。说到业务的时候,你举了很多金融的例子,举了很多跨专业的例子。其实我觉得coding和对计算机的理解是一个基础的东西,但是你要去用程序处理实际的问题,你要跟实际的社会发生联系,所以在业务上,你需要知道一些跨专业跨行业的知识,这会给你做这个东西的逻辑树立一个很好的方向。

因为我想到你给我转发的一个短视频,就是说客户根据自己的需求画了一个东西,在接到客户需求的A1,又根据客户的需求画了一个东西,最后程序员根据A1消化的东西之后,又画出一个东西。

结果我们发现,三个东西相差是非常远的,这可能就是从需求到转化、到程序员最后去coding的过程中,原来的东西变成了差得很远的另一个东西。

Winter:对,这是一个非常大的鸿沟。在我的理解看来,一个程序员能走得有多远,对业务的理解是非常重要的一部分。一个好的程序员能够洞察业务,能够知道客户在想什么,能够帮客户去解决问题。这其实是有前提的,话这么讲很简单,但是真的要帮客户解决问题的时候,如果你没有客户专业,客户根本不会理你,他必须对客户的行业有更加深刻的理解,才能够为客户提出解决方案。

通常来讲,一个程序员不是只为一个客户服务的,他会为很多个客户服务。

我举个例子,在快消品这样的行业,它面对的是中国所有的零售业,像我们门口的7-11或者喜士多这样的一些小店。那么他写的程序其实是涵盖了所有的可能性的,他对这个行业了解得越多,他写出来的程序的适用性就更强。

Winter:我再举一个例子,我问你一个问题,世界上存在相同的条码吗?

Leone:应该不存在吧。

Winter:实际上如果按照这个逻辑去设计系统的话,到了一定程度会大翻车,因为世界上存在相同的条码,而且是合法的。

Leone:那怎么去确定这个东西?

Winter:把这个问题交给程序员吧!你可以发现,在超市里发现相同条码的时候,这些系统会弹出多个商品,让你来选择到底是哪个。虽然这种事情出现的概率非常小,但是一旦你在程序当中做出了假设,可能是灾难性的,改动量会非常的大。因为你之前假设世界上的每一样商品都被编好码了,而且这些编码是不重复的。我再问一个问题,一个商品可以有多个条码吗?

Leone:那应该是可以的。

Winter:对,你知道一瓶可口可乐有多少个条码吗?可能超过100个。

Leone:为什么?因为在每个地区,在广州、上海或者是北京,它卖的可口可乐瓶子看上去一模一样,但是它们的条码是不一样的。

力盈:为什么厂商要设计不一样的条码?

Winter:因为厂商为了避免各个地区串货,它可能会设计不同的条码。

Leone:有一个大前提我没弄清楚,比如说同样是在楼下7-11买的可乐,它的那批货里面所有的条码都是一样的吗?

Winter:不能保证。但我觉得一箱可乐里面的条码应该是一样的。

Leone:我一直以为一听可乐就是一个条码。

力盈:独特的条码。

Leone:对,它就像身份证号码一样。我的理解是这样的。

力盈:我觉得程序员好难啊,还要理解这个问题。

Winter:如果这样去理解这个世界的话,你会发现这个程序员根本走不远,很快就会被公司开除了。

力盈:好的,我们俩已经被开除了程序员的资格。

Winter:那个条码是这样的。我再解释一下,这个条码的前两位是分配给国家的,比如说69是分配给中国的,中间有几位是分配给省的,后面几位是分配给厂商的,还有后面几位是分配给厂商自由编码的。有一些厂商它编码比较规范,不会重复,但是有一些厂商的编码用完了之后,它会循环使用,这是合法的。这并不是说我违反了国家的法律,这是允许的。

6. 世界是一个巨大的系统,而你不能保证它没有bug

力盈:我感觉这个世界其实就是它有很多东西虽然是按秩序在建造,但是建造着建造着就会出现很多bug。当它在被系统化、被线上化之后,程序员就是要把它再重新地逻辑化一遍。

Winter:对,实际上这样的bug可能只有1%,但是程序员可能有99%的时间是在填坑,所谓填坑就是填这样的坑。

力盈:填这样一个在现实世界中的bug.

Winter:就刚才条码的话题,我还可以继续说下去。比如说你看的条码都是13位或者14位的条码,你看到过长达20位的条码吗?没有。刚才Leone说每一个商品都有一个不同的条码,这种情况存在吗?

力盈:存在吗?

Winter:存在。

力盈:真的吗?

Winter:可能你没有意识到。你去商店里面买了一个胡萝卜,买完胡萝卜之后,你会去称重机上称一下,它会打一个条码给你。那个条码是独一无二的,因为那个里面包含了商品的信息,还包含了你的价格信息和你的重要信息,所以那个条码是唯一的条码。

力盈:所以程序员也要把这种情况计算在内。

Winter:对,所有做零售行业的程序员是非常痛苦的,因为世界上有很多种称重的条码,他要去做各种各样的兼容。

力盈:我们这是个劝退节目,听完以后大家不会投零售行业的程序员的。

Leone:我现在理解了你刚才为什么说程序员要有耐心。

Winter:对,因为很多人都会说程序员这事儿非常简单,这么干就可以了。但是当程序员真的扎到现实生活中去的时候,就会发现这事儿比预想的复杂得多,而大多数人都是不知道的,你也懒得跟他们解释。因为有时间解释,你还不如把代码给我写好了。

我还可以举很多例子,比如说我们的交通卡充值是一套非常复杂的系统,大家难以想象。交通卡不就是一张IC卡或者NFC卡,它们应该是通用的。大家每天都在使用,好像也没什么问题。

但是如果我告诉你,每个城市的IC卡、NFC卡,它的制式都是不一样的,全国可能有好几百个城市。当我们打开支付宝或者微信的时候,你会发现好像每个城市都开通了,它不断地在开通新的城市,有新的城市的公交卡可以使用。

对你来说,你觉得这是一件很自然的事情,但是在背后,程序员付出的努力是非常可怕的。因为他要和每个城市的IC卡系统进行对接。大家回想一下,你是在什么时候第一次使用公交卡的?是不是在90年代的时候就有了公交卡这个系统?这个系统在90年代就已经写了,写这个东西的人可能已经早已经退休了

在这个过程当中,每个城市都发行过各种各样的公交卡,你可以看到有些卡是蓝色的,有些卡是红色的,有些卡是紫色的。这些卡和卡之间都是不一样的,平均每个城市大概有20种不同的卡片,这20种卡片程序员都要做不同的兼容。

7. 产品经理,像社会学家一样思考?

Leone:既然你提到了程序员应该去了解业务,包括他所服务的客户到底是什么样的,或者说大一点,市场大概是什么样的,他要了解这些。

但是,现在据我们了解,很多这样的事情,包括提什么样的需求是产品经理做的,以至于程序员和产品经理有的时候就水火不容,撕逼是很正常的事儿。也有表情包,比如说烧死产品经理。

我曾经就问我朋友,他也承认程序员有这样的需求,然后我说你们为什么不会在谈需求的时候带着程序员一起去。他当时给我的回答很惊讶,他说我为什么要做这件事情,没有必要,他只要去满足我的需求,完成公司交给他的任务就可以了。

Winter:这个是因为产品经理和程序员之间的角色的分裂,这个事儿大概也是在2008年之后才发生的。在这之前,其实没有产品经理这样的一个职位。

力盈:我以前不知道产品经理是干什么的。

Winter:所有的对需求的分析、架构的设计、前后端的开发,程序员从头到尾都是自己完成的。

但是后来慢慢发现,有一部分程序员,他在编程方面可能不是那么感兴趣,但是他偏向对业务感兴趣,这样的程序员很多都转行做了产品经理。有一些程序员发现,他对后端的一些逻辑并不感兴趣,但是他对花哨的界面非常感兴趣,这样的程序员转行去了前端。在这个行业里面,这两个职位大多数都是从后端的程序员分离出来的。

Leone:是不是也可以说有一个鄙视链,如果从技术的角度来讲鄙视链的话,相对来讲,后端的技术更好一些,前端对于技术要求没有那么深,对于产品经理的话,你可能了解一些东西就OK了。因为我朋友当时跟我说,产品经理入门的门槛很低,各个专业都有。

Winter:产品经理其实不需要懂太多的程序。虽然一开始的时候,很多产品经理是后端程序员出身的,但是慢慢地,他们脱离了程序员。有很多人说这里面有鄙视链,但是我自己不这么认为。

因为有一段时间,我是带产品团队的,我仔细地想了一下这个问题。因为产品经理每天都在和用户打交道的,所以他的思维方式和程序员慢慢地会有一些差别。他更多地会从需求的角度出发,判断做这件事情是不是值得,或者说我的产品对不对。

在一定程度上,这种思考实际上不比程序员的逻辑思考或者是代码的思考所要求的能力弱,甚至在有一些场景里面,产品经理的好坏决定了这个产品到底是不是能够成功,因为在程序员的水平差不多的情况下面,决定一个项目成败的实际上是产品经理。

如果说产品经理对于需求的把控,对于行业的认知没有到一定高度的话,那么程序员开发出来的产品就是一坨废物。如果说一个产品经理(像张小龙这样),站在了所有人思维的高处,那么它开发出来的产品就会赢得大众的喜爱。

力盈:你让我觉得产品经理是一个社会学家。

Winter:对,所以你说,产品经理对技术有多高的要求?不见得。也许一个刚刚毕业的人,他有一些想法,他就可以去做产品经理。其实对产品经理的要求是非常高的,一方面他们要对社会和市场有充分的认识;第二个要把这些认识表达在自己的产品里。

如果是一些专业的To B的产品,他们对行业的要求其实更高。比如说类似于金融行业,或者说企业应用的行业,要求其实是挺高的。

力盈:我会很好奇,按照你的逻辑来理解,是不是工作早于2008年的程序员,他们对整个行业的理解会更深刻一些?因为他们其实是被迫要做全才,他们没有进入到这个细分,他被迫要有从前端到后端、到产品、到对人性需求的理解,需要有这一条龙的东西。

但如果到今天,你进入程序员这个行业,你还没有来得及被踢进社会这潭水,去做一个全通的了解的时候,你就已经被划到了后端或者前端,或者你就只做产品的这个小小的细格子。对于程序员来说,这会不会让他们的路越走越窄?

Winter:这种情况还是比较普遍的,但是我也看到过很多特例。在程序员当中,有很多对产品非常了解的人,所以结论性的东西很难说。因为现在新一代的程序员或者产品经理,他们看到的东西更多,他们的成长过程伴随着这些互联网产品的成熟,他们是这样一路走过来的,所以他对产品的理解,特别是C端产品的理解通常还是比较深刻的。

当然,对于To B端的产品,我接触过的很多产品经理是完全不了解的。还有很多产品经理,他们在整个行业里的用处或者价值不那么高,比如说To B的一些SaaS系统,它的产品经理,其实更多的时候我见到的,并不是初出茅庐的毕业生,而是行业专家。他可能在这个行业里面已经经营了大概五年或者十年,他对这个行业非常了解,这样的人他更适合来担任产品经理。

8.为什么程序员能拿高薪?

Leone:在外界看来,程序员其实是一个高薪的职业,经常能看到哪个大厂招程序员,薪资大概有多少。比如说前这段时间,我看到知乎上面一直在讨论,就说美团今年(2020年)招新人程序员,应届毕业生能拿到35万+年薪。然后很多老员工就抱怨不公平。

以前也有过一个段子,一个小伙子长得其貌不扬,问他是干嘛的,他说他是程序员,丈母娘立刻就答应了,好吧,然后直接把女儿嫁给你,户口本拿出来了。其实整个这个行业的收入大概在一个什么样的水平?

Winter:整个行业的收入可能没有像知乎上面说的那么高,但是总的来说,和其他行业相比可能还是比较高的。刚刚毕业的学生普遍能够拿到10K左右的,在大城市,这是不奇怪的。而且还有一点,在一年或者两年之后,他就能拿到20K到30K。只要他能够在某一个领域有所成就,拿到高薪其实是不难的。

刚才说到的薪资倒挂的问题在每个公司都会发生,包括我自己以前在的公司,这种现象非常严重。这是因为整个行业的薪资水准在不断提高的过程当中,为了能够招到更好的人,就必须提高薪水的标准。

但是对于老员工来说,这是不公平的。所以我过去做过一些事儿,比如说我每年都会对老员工进行一次普遍的调薪,以避免有一天他们相互之间,私下里对薪资这件事儿进行讨论的时候,大家感到不公平。只要一个团队里面的人感到不公平,这个团队最终肯定是要崩盘的。

所以我想,薪资倒挂的这种现象不会长期地存在。作为HR或者团队的负责人,据我的了解,其实每隔一段时间都会对他们的薪资水平进行重新评估,因为每个人都会遇到同样的问题。

力盈:我想问一个很听起来很蠢的问题,为什么程序员可以拿这么高工资?

Leone:对,为什么可以拿这么高的工资,为什么我们就不可以?为什么我们同样是码农,你们是码代码,我们是码字,为什么我们码字的薪资就这么低?

Winter:这个问题让我很尴尬,可能有一个原因是因为你码的字老板能看懂,而我码的代码老板看不明白。

力盈:你是在怂恿我们要写老板看不明白的文字。

Leone:那你就被开除了。

力盈:哈哈对!

Winter:所以非常不幸的是,你会发现有一些技术出身的老板,在那些公司里面,他们的技术也不差,但是在那些公司,码农的薪资水平相对来说要低一点。这是因为对于老板来说,他知道你是怎么回事,你的神秘感没那么强。

而对于不懂技术的老板,特别是金融行业或者是快消品行业的老板,他觉得写代码是一件非常厉害的事情,程序员写的代码他什么都看不懂,自然薪水就高了。我觉得这个因素其实是存在的。

因为我之前接触过一个老板,他自己就是码农,他会写代码,而且代码写得很好。虽然他现在已经不会写了,但是基本的理解还在那儿,不要紧。所以他公司里的员工,薪资水平只有外面互联网公司的2/3,但工作强度是一样的。

力盈:我们在劝告大家,不要找一个老板是技术出身的公司去当程序员。

Leone:怪不得马云经常强调自己不懂技术。

9.程序员在未来会被AI取代吗?

力盈:我想问一个残酷的问题,你觉得在未来,程序员这个职业的市场需求会缩小,甚至是被取代吗?

Leone:这个问题其实我也想问。因为之前我在跟朋友交流的时候,他说自己很有危机感,说现在AI可以写代码,而且以后AI肯定是越来越智能的。他们有的时候会打一个不恰当的比方,说现在的程序员就跟以前的那些工人是没有任何区别的,到以后全都是可以被机器替代的。我遇到的朋友,他的这种危机感特别强。你觉得是这样吗?

Winter :我觉得在一定程度上,现在程序员的数量确实是有一点多了,因为我看了一眼APP Store上面,这么多的应用,实际上根本没有人访问。也就是说,很多程序员写出来的程序没有人在用,这对于社会来说是一个巨大的浪费。

这个浪费你平时是看不到的,就像企业生产出来的东西卖不掉,那是明明白白的浪费。但是程序员过剩这种浪费,实际上是比那种工业生产的浪费更加严重。我确实觉得,可能很多程序员在做的事情是没有意义的。

力盈:为什么是更严重的浪费?

Winter :因为他们比工业生产更贵,程序员的人力成本是非常贵的。这确实是个残酷的现实。

但是我也不担心程序员没有出路,因为从历史的角度来看,你是没有办法阻挡历史进程的。当你发现这个行业过剩了,或者说有泡沫产生的时候,它一定会有另外一条出路,让人去做更加有智慧的事情,而不是在简单重复的工作当中浪费自己的生命。

其实现在我们程序员所用的这些开发工具,和多年前相比,已经更加聪明,更加智能了,程序员要写的东西也变少了。相同的功能,他们可能原来要写两天,现在可能一天就能完成了。生产效率的提高会让程序员更加轻松,也就是说,其实不需要那么多程序员。但是你会发现,好的程序员还是非常难求的。

所以我给大家的建议是,如果真的觉得自己非常有兴趣,那就加入程序员的行业。说得俗一点,从赚钱的角度来说,这个行业的薪资水平是比较高的,而且相对来说,我不认为程序员是一个那么容易替代的行业。

刚才你说到AI可以写程序,但是我觉得,按现在AI的水平,大多数的代码它还是写不来的。我上次看到了AI写程序的一段视频,它能够完成前端页面一些简单程序的编写,但是后端的程序它肯定是写不了的。可以预见的未来,我们的AI,应该还达不到能够替代程序员的水平。可能在未来的20年到30年,还是需要程序员用现在的方式或者类似现在的方式,一行一行地把代码给敲出来。

Leone:感觉程序员好枯燥。

力盈:但是我其实听你说完,我会觉得未来对程序员的要求会不会更有创造力,因为现在你可能做得还是很枯燥的工作。但是越往后面,AI能做的越多,对你的创造力要求和创造性思考可能多。

Winter :不光是创造力的要求,可能是对程序员综合能力的要求更高了。因为我们之所以有码农这个词,是因为很多人在工作当中,他写的代码非常简单,所以被叫做码农。因为业务逻辑一旦定下来之后,剩下的就是把它们实现。实现无非就是很多在程序员里面有一个叫做CRUD-BOY,是做增删改查的。

除了这四件事情之外,程序员其他事儿什么都不用干,他只要负责把业务逻辑实现就可以了。所以很多人会认为程序员的工作简单、枯燥、重复,很容易被AI替代。

如果现在的程序员还是用这样的方式去工作的话,确实未来有可能被替代。但是如果说程序员的思考更加深刻,他就不会用这样的方式去做事,他还有更好的方式去做,这样就不会被替代。

说的有点抽象,其实就是说我可能有一段业务逻辑,人家告诉你ABCD,你就按流水线上的工人那么写的话,这样的工作确实是比较容易被替代。但是换一种思维,用一些比如说像设计模式去重构你的代码的时候,你会发现你做的事情是有价值的。

10.题外话:为什么程序员会秃头?

Leone:说句题外话,秃头的事儿其实是可以聊一聊的。因为说实话,以前好像没有那么多人掉头发,那么秃头的原因到底是什么?

Winter :秃头的原因应该还是和内分泌有关,因为我们之前也是做医美这个行业的。因为我们自己有一些同事看到了一些成功案例,在此之前,大家都不相信秃头能治好,觉得秃头去植发都是骗子,但是后来真的有人跑去植发了。

植发的结果我现在也不好说,因为需要长期的观察,但至少在当时是成功了,他的头发长出来了好多,整个的手术过程我就不细说了,他可能不痛苦,但是那个场面可能比较惊悚,不过确实有效。秃头和长期的内分泌失调可能有些关系,精神压力大、熬夜再加上一些遗传的因素,可能综合在一起,导致了程序员群体脱发的比例要比其他行业的人明显多一些。

Leone:看来你的夜熬的还是不够多,你的头发还这么多。

Winter :那是因为我写的可能是因为我写代码还写得不够多,如果再多写几年代码,或许我脑袋上的头发只剩现在的一半。

力盈:可能是因为思考代码的时候容易焦虑,分泌一种……

Winter :思考代码的时候,你明显可以感到自己在分泌一种物质,人(会)分泌一种让自己冷静不要暴躁的物质。因为对面的玩意儿你再怎么骂它,它不会哭也不会生气,它只会给你报个错,所以你做的唯有冷静。

所以大多数的程序员看到非常糟糕的结果的时候,他们还是非常淡定。系统崩溃了,心静如水,做到这一点,他才能够去很好地去处理问题。如果说,系统崩溃了,领导暴跳如雷,他的内心也暴跳如雷的话,我估计这个事儿肯定会错上加错。因为我碰到过这样的情况。

当时碰到的情况是,全国所有的节点全部瘫掉了,这个事情我在职业生涯中碰到过一次,那个事情是上了银保监会的新闻的,也遭到了批评。因为当时我是在一家保险公司,它意味着保险公司那一天所有的出险业务全部没办法开展。比如说人家的车子坏在了路上,打保险公司电话是打不通的。比如说人伤了,或者说出了一些意外,是没有办法联系到保险公司的,所以这个事故是非常严重的。

那天,处理这个事情的程序员被所有的领导围攻着,总公司最大的CEO就站在他那个房间里面,可想而知他的压力有多大,但他最终还是成功地处理了这个灾难。

这个灾难发生了两次,一次是因为程序的问题,另一次是因为基础设施的问题。因为上海某一个区域(哪个区就不说了)的电力供应出现了问题,导致机房断电,全部计算机无法工作。

Leone:说明它容灾做得不好。

Winter :对。当时国家对这些金融机构还没有容灾这方面的要求。是在出了很多事儿之后才发现,我们的信息系统如果没有容灾,是非常可怕的一件事情。从那个时候开始,国家加强了IT基础设施的建设。

11. 快问快答环节:一份带你快速了解程序员行业的普鲁斯特问卷

力盈:我可以进入最后的问卷环节吗?你还有什么问题要问吗?

Leone:最后一个问题,根据你多年的职业生涯来看,你觉得程序员好找另一半吗?

Winter :程序员还是比较容易找到另一半的。

力盈:你刚刚在说他们的脾气有多好的时候,我觉得程序员还是挺适合当另一半的。

Winter :应该说大多数的程序员脾气还算可以,而且工作时间特别长,所以他不会去管另一半在干什么。另外,大多数程序员没有什么不良的嗜好,因为工作完之后他已经精疲力尽了,不太可能有不良的嗜好。

力盈:这是一则程序员征婚广告。

Winter :然后赚钱赚的还多,可能死得还早。

力盈:我问你一个最大的问题,如果再让你选一次行业,你还会当程序员吗?

Winter :会。

力盈:为什么?

Winter :因为我从小开始,就决定了我要做这个行业,一直没有改变过。

力盈:你是少有的那种非常小就坚定地选好了行业的人。

Winter :对,虽然在读书的时候没能够读到这个专业,但是在那个时候,我的内心是坚定的。

力盈:你认为干这一行最大的幸福是什么

Winter :最大的幸福是有成就感,就是说能够看到自己的作品有很多人在使用。最多的时候,我写的程序有大概有十几万个门店在使用,其实这种成就感还是很强的。

力盈:(这个职业荣誉感)还是要和社会发生联系。那你干这行最大的恐惧是什么?

Winter :断电。断电是我们最大的灾难,因为在我的记忆里面出的最大的事故就是断电,当然现在,可能因为我们用了一些云服务的厂商,断电这样的事情不太可能发生了。但是在这之前,我们最大的恐惧就是对基础设施的恐惧,比如说断电了、漏水了、发生了基础设施的故障,有人把线路剪断了(发生过这样的事儿)。这个是最大的恐惧,因为在这个时候,你是非常无助的。

再多说两句,有一次,物业通知我们断电要断1个小时,1小时之后它就会恢复,结果当时断了将近8个小时。当时我们UPS的设计容量大概是8个小时,但非常不幸的是,因为UPS已经好几年了,所以它并没有撑到8个小时,可能在6个多小时的时候就失去了电力。那一刻是让人最崩溃的时刻,因为我已经没有办法连接到我的服务器了,而我的服务器在2000公里以外。

力盈:在干这一行时,你最痛恨自己的哪一种特质?强迫症?没有。

Winter :不痛恨。

力盈:那在这一行里,你最痛恨其他人的什么特质?

Winter :这个问题很简单,“明天应该就可以上线”。因为大多数人,就像我之前举的那两个例子一样,他们会把问题考虑得过于简单,他们用自己生活的经验去代替严密的逻辑,对专业人士进行挑战。

很多时候,为什么会有产品经理这么一个角色,其实他就是拦住用户端那些不合理的需求,我觉得这是这个职位出现的最重要原因。就是很多需求被提出来之后,当事人一拍脑袋,第二天又变了。产品经理的角色保证了这些需求都是经过思考的(至少经过了初步的过滤)。

Leone:因为用户需求有的是,很多人提出来的都是伪需求,对吗?

Winter :90%的需求都是伪需求。比如说我们现在很多都是做SaaS行业的,可能会面对全国几千、几万家的用户,这些用户每天都会提出无数的需求,他会在某个点上让你加工。那么这个时候,产品经理就要纵观全局,看一看这个功能是不是大家的共性,还是说用户有其他的痛点。用户提出的是A,其实他要的并不是A,完全可以有一个更加好的解决方案。

力盈:干这行程度最浅的痛苦是什么?秃头还是熬夜?

Winter:熬夜,我觉得还是熬夜。因为有的时候,在你最不想让它崩溃的时候,它崩溃了。

Leone:她说的是程度最浅的痛苦。

Winter:这就是比较浅的痛苦:熬夜。这是生理上的痛苦。

Leone:那最深的痛苦呢?停电?

力盈:不可控,完全不可控。

Winter:最深的痛苦其实是这样的,其实程序员是一个比较悲剧的行业,因为很多时候,程序员不想面对需要面对的东西,但是又没有办法。

在这个行业里面特别地明显。因为很多东西程序员其实自己是有想法的,但是到了他这一步,木已成舟,他自己知道自己干的事情毫无价值,但是还在继续干着。这是我和很多程序员聊天程序员最大的痛苦和困惑。

作为一个打工人,这样的困惑大家都存在,但是程序员存在的特别厉害,因为人家一个小小的决定,会改变他手头所有的工作。对于其他的行业的人来说,可能还好,比如说有一个新的东西出来了,他可能不用花太大的代价就能把这个事儿给干了。虽然他干的事儿可能也是没有意义,但是对他来说没那么伤心,因为他付出的成本没那么大。

但是对于程序员来说,可能一点点小的改变,就需要他完全铲掉重来,或者说破坏了他原来脑子里面的完整世界。就像搭好的一座塔,有人抽掉了塔最下面的一个杯子,在他内心的那幢大厦轰然倒塌,所以对他来说是非常痛苦的。

Leone:我的天,真的是。我觉得要做程序员的话,一定要抗压能力非常强。

Winter:哪怕他是一个小小的需求的改变,都可能发生这个事儿。他也能意识到,这个事儿本来是可以避免的,但只是因为人家觉得这事很简单,你不就是把杯子换一个吗?那你去换吧。这个决策不在他手里。

力盈:我们本来是一个科普这个行业的节目,结果变成了一个劝退节目。

Winter:但是不要慌,我觉得现在程序员也不至于这么惨。

Leone:我觉得还是要有一个happy ending,你觉得做程序员最大的幸福来源于哪儿?除了你刚才说的很多人都在用,因为你也说了,其实有很多APP做完之后也没有人用。你觉得于自己而言,最大的动力在哪儿?

Winter:刚才说的已经是最大的动力来源了。

Leone:就是别人用是吗?

Winter:对,但是做程序员还有一个好的地方,就是做程序员能够看到这个世界上并不为人知的那一面。比如说在做不同行业的项目的时候,你会和不同的人去打交道,你会发现这个世界上,人和人之间的差异,大于物种和物种之间的差异。每一个行业都有自己行业的特点,都是非常有趣的,哪怕是表面上看起来最枯燥的一些行业,也是非常有意思的。

所以很多程序员在不做程序员之后,他挑了某一个他曾经自己待过的行业,所以他的选择是很多的。我看到过的程序员,有去做供应链的、做电商的、做金融的、保险的、或者是成为了一个段子手的……甚至有人打算开一家店;还有人打算去说相声。

我碰到过有位程序员,他打算改行去说相声,那是非常有意思的一件事情。当然编辑也是一个和很多人接触的行业,但是更多的行业,可能相对来说,它就比较垂直,没有机会去接触到那么多面和那么多的人。

力盈:听你说完,我会觉得程序员跟我们第一期聊的媒体人真的很像,都是一种底层行业,都要跟各个行业发生接触,都是一种底层技能,可能在未来也会有被取代的风险。

Winter:在未来,可能很多人掌握了编程的知识之后,自己也能写一些简单的程序。我想,随着时代的发展,编程会慢慢地变成人的一项基本技能。就像现在从小学开始,已经有编程的课程,不像我们以前,只有一小部分人才去参加这种课程。现在,编程课程属于广泛的教育,这些基础教育会给未来的人打下很好的编程基础,所以它会变成每个人都掌握的一种技能。

Leone:最后一个问题,你以一个过来人的身份给大家一些建议和意见,对于想进入这个行业,正在这个行业工作的人,有哪些事情是他们需要注意的?请给出三点建议。

Winter:第一,对于没有进入这个行业、还在学校的人来说,要珍惜学校的这段时间。因为这段时间一去不复返,有一些学习门槛很高的东西可以在学校完成;但是你一旦工作了,就再也没有机会了。

第二,对于已经进入这个行业的人来说,要重视业务。因为在一段时间里面,比如说工作了一到三年的人,他更关心的可能是技术,但是当技术达到一定程度之后,业务决定了你到底能走多远飞多高。

所有能够做到架构师,CTO或者是更高层的人,他一定是对某一方面有着深刻的理解。比如说想自己创业,但是对业务这一块不了解,那也是走不远的。

第三,对于想往纯技术方向去发展的人,可能要注意的是要学好数学。因为你可能和算法,包括底层知识打交道。我指的是软件方面的,硬件我可能不是非常懂。特别是在软件这方面,如果在基础的数学这一块没有扎实的功底,那些大厂的算法岗或者是AI岗是和他无缘的。

Leone:大家如果要是有更多的关于程序员的疑问,或者说是想要了解什么的话,也可以留言,这期的职业游民到这里就结束了。谢谢大家,拜拜。

力盈:下一期我们会讨论更有趣的职业和话题,欢迎大家留言分享你们最想了解的职业是什么。好,就到这里结束了,拜拜。

头图来自:电影《银翼杀手:2022黑暗浩劫》截图

(本文未经造就授权,禁止转载。)

参考资料:

豆瓣 |《腾讯传》图书资料

https://book.douban.com/subject/26929955/

量子位 | 盘点程序员写过的惊天Bug:亏损30亿、致6人死亡,甚至差点毁灭世界

https://mp.weixin.qq.com/s/pzQCcPc5ZDzK76R10wvM1w

故事硬核 | 灾后郑州:当一座都市忽然失去了互联网

https://mp.weixin.qq.com/s/ZE2cOdHTi-Kn0N04FMOcMw

甲子光年 | 年轻人逃离的工厂,正在被博士们看中

https://mp.weixin.qq.com/s/RrfR33RjARqKszp3wYsIQA

编辑&版面 | 余冰妤

文字整理 | 魏婉莹 余冰妤

音频剪辑 | 唐盼盼

设计 | Billy

互动话题:感谢你的在看、转发、评论,下一期播客,我们邀请到科幻作家聊了聊后人类的话题,也揭秘了科幻作家这份工作的另一面,敬请期待~

每周评论区,被zan最多的评论者,将获得造就送出的书籍一本。本期推送的赠书书目为《猫、爱因斯坦和密码学》,它由神们自己著、由北京联合出版公司于2020年出版。

欢迎扫描下方二维码,勾搭小编
(0)

相关推荐