本期对话嘉宾:@张京
访谈编辑:芒果果
本想学医的张京误打误撞进入清华大学学了计算机,又机缘巧合的赶上了信息技术「腾飞」的那几年,他的「前半生」似乎就是一个教科书般的模板。
从小就是「别人家」孩子的张京顺利考入了清华,在行业风口找到了体面的工作,一切都那么顺利。但生活却不总是尽如人意,37 岁时张京被裁员了,经过很长一段时间才调整好心态,但从那以后他似乎开启了人生下半场的大门,变得更加坦然了。
如今已过不惑之年的张京对于当初的选择只淡淡的说了一句:“没什么后悔的。”
内容提要:
1.行业中有经验的工程师越来越多,而程序语言对于从业人员的约束越来越少,编程本身带来的乐趣越来越多。
2.编程会改变一个人的思维习惯,如果想要改变世界,先要从改变自身做起,编程培养的就是这样的思维方式。
3.要有意识:这是我的代码,我要对此负责。
学计算机是水到渠成
Q:什么时候开始接触编程的,契机是什么?
我运气略好,初中就开始接触编程了,那时候我们用的还是一款叫作Laser310的机器,在上面写Basic。
Q:计算机是你最初的梦想吗?
其实我小时候的梦想是当个化学家,高考报志愿的时候第一次填的是想报北医,想当医生,开刀动手术,后来班主任说你这个成绩完全可以考清华啊,为什么要报北医?我看了看清华的科系都是工科的啊,什么机械电力的我都不感兴趣,只有一个计算机,可能和我初中时摸过的有关,我知道这东西可以用来玩游戏,就这么着稀里糊涂地上了计算机系。正好赶上了信息技术的红利期吧,没什么后悔的。不过想想,其实如果当初选择了学医,可能也不错哦。
Q:如果可以重新选择是否还会选择这个职业
如果可以重新选择,大概率还是会选择目前这个职业,比较宅,又总能接触到新技术,这两点比较符合我的性格。唯一的期望是希望自己年轻时可以更努力一些,钻研技术更深入一些,如果 vue 是我写的就好了,哈哈。
Q:您说如果 vue 是您写的就好了,那么这方面您做过哪些尝试吗?
我觉得编程从本质上来讲是一种写作,没有哪个程序员不希望自己写作的作品能够得到更多人的认可,所以开源社区为广大程序员提供了这样的一种可以使你的作品广为人知的机会。
如果你真的想写一个框架的话,网上有很多这样的教程,从 0 到 1,从 hello world 开始写作自己的第一个框架,学习 AST 树,学习编译原理,假以时日,逐渐就会变成一套符合你认知的全新的框架,在这个过程中你会学到很多东西。但是光把框架写出来是不够的,如果想让它流行的话,还需要有社区建设,市场推广等等非技术要素,而我的时间经常不够,所以常常是拿起来又放下,最后时间长了就束之高阁了。等以后有时间吧,再自己从头认真地写点东西,可能是组件,可能是框架,不为了流行,只是为了提高和挑战一下自己。
工作就是随遇而安
Q:选择目前就职公司的原因?
没有什么特别的原因吧,只是一份技术岗的工作而已,我始终把自己定位为一个普通的程序员,经历的年头长一些,略有些经验,喜欢钻研解决大家搞不定的问题,这么些年一直是这么过来的。
Q:目前主要使用的编程语言是?最近有没有尝试新的编程语言?
目前主要使用的编程语言是Javascript和Python,偶尔也会用Go和Java。最近不怎么尝试新的编程语言,我个人感觉语言这条路大约在十年前就已经走到头了,万变不离其宗,不论什么语言无非都是 if/for 这种结构,也并没什么不好,够用就行了。
Q:目前为止最满意的开发项目是什么?
最满意的项目已经下线了,那是 2000 年的时候用 Java 写的一个网页游戏,名字叫做“战神”,是一个策略型游戏,玩家选择自己国家的发展路径,生产粮食,炼铁,兵器什么的,通过打仗掠夺土地,有点类似于文明的文字版吧,不过简单的多。大概只用了一个月时间就完成了主干的开发,后面两个月改改bug就上线了,结果一下子注册了一百多万用户,同时在线的有一万多人,服务器只有两台,也没有集群的概念,很快就抗不住了,但是光有用户没用,广告收入上不来,买不起服务器,那时候也没有阿里云之类的,只能就这么凑合着,玩家来了一批又走了一批,耗了两年多吧,最后就关停了。
那时候公司在一个酒吧的楼上,每天下午五点多的时候楼底下就开始有客人了,有时候我们会下去买点啤酒喝喝,喝完了再上楼去写代码或者开会,基本上就是在这种状态下完成的开发,虽然好像加班的时间挺多,但挺快乐的。
Q:掌握哪些语言?有哪些学习工具?
我从业比较早吧,很多语言都狗熊掰棒子,当时用的时候熟悉,后来逐渐扔掉了。我用过的语言包括:汇编、C、C++、C#、VB、Perl、Java、PHP、Javascript、Python、go 等等,我觉得最有用的学习工具就是:英语。不管什么语言,直接动手写 hello 就是最快的方法,遇到问题用 google 搜索 stackoverflow 总能在第一时间找到答案,所以不管别人如何说,作为软件工程师,第一应该学好的就是英语。只有学好英语,你才能在技术的海洋里无障碍地遨游。
Q:有什么个人的特别的工作习惯么?
特别的工作习惯大约就是代码洁癖吧,不论是谁的代码,不论是我写的还是别人写的,拿到手的第一件事是先按照代码规范给它格式化掉,必须弄成完全一致的格式,哪怕花再多的代价也要先弄整齐了,然后才能思考,否则看着就别扭,脑子完全不能动了呢。
人会在某个的时刻「长大」
Q:进入这个行业已经多少个年头了?您觉得行业发生了哪些变化?
基本上从毕业之后就从没离开过这个行业,算起来到现在有25年多了。我能切身感受到的变化是在这个行业中有经验的工程师越来越多,而程序语言对于从业人员的约束越来越少,编程本身带来的乐趣越来越多。我记得刚参加工作的时候,老专家老前辈非常少非常难得,基本上公司里全都是20岁出头的毛头小伙子,那时候正是中国IT产业高速发展的时期,机会太多而人才太少,那时候也是年轻人的我最大的苦恼是出了问题没有人能帮你,互联网上的技术论坛也远没有现在这样发达,出了问题只能自己一个人琢磨,前路完全是未知的,也不知道做法到底对不对。
现在的技术信息比以前要多很多,一方面大家寻找问题的答案不再像以前那么困难,另一方面如果出问题,也有更多的经验丰富的专家可以帮助大家。编程语言方面的进化是大量简洁语言变得越来越流行,不管是JS还是Python以及Go都有这个趋势,追求的方向是:不管什么类型,变量抓起来就能用,不要跟我谈类型,别讲什么private/public,听不懂也不想听,Go甚至已经简化到你连import都不用写了,随便抓起个第三方函数来就用,它会自动给你补足头部的import库。在这样一片完全自由完全随意的世界里,编程不再是一件苦恼的工作,而是充满乐趣的探索,所以我觉得现在的年轻人生活在一个非常幸福的年代,对大家的要求就是一定要大胆大胆再大胆,只要你敢想,没有什么是做不到的。
Q:从业至今经历过什么难忘的事情吗?内心发生了什么变化?
2009年的时候我被裁员了,那一年我37岁。那时候还没有现在这样人人都知道的程序员35岁危机,现在回想起来,我是真真正正地体验过了,所以作为过来人可以给年青人讲讲。
我觉得裁员对人心理上最大的打击是否定你的价值,尽管那并不是你的错,但你总是会不由自主地去和别人比较:为什么被裁的是我,为什么不是他?是不是我哪里做的不好?是不是我选错了道路?其实什么都不是,只是因为2008年美国次级贷危机影响了全球经济而已,就像今年的新冠疫情影响了就业一样。
我清楚地记得签完离职补偿书出来的那天是三月的一个晴天,我走出公司大门,突然觉得心里空空的一片,不知道该到哪里去,工作十五年了,从来都是我辞公司的职,除了请假以外没有一天是在工作的日子一个人走在大街上无所事事,感觉自己就像一个旷课的小学生一样。一开始的时候还很自信,觉得凭着自己的学历,经验,很快就能找到工作,但是随着面试一次次碰壁,自我价值一天天被否定,我觉得这可能是最难过的心理关。
一开始的时候你会想,怎么着我也得找个和原来工资差不多的吧,过不了多久,你就开始降低标准,但你降低标准之后依然找不到工作,这时候你开始恐慌,直到最后基本彻底放弃希望,开始认清现实:高薪的职位本来就少,经济危机下机会就更少,不可能轮得到你;你说你退而求其次,我就当个普通职员,挣个普通工资不行吗?不行,因为如果要挣普通工资的话,社会上比你年轻的人有的是,普通岗位是留给年轻人的,任你经验,任你努力,都是没有用的,你发现你处在一个尴尬的境地,并且这种状态可能要持续很久,不知道有多久。
最后的转变是在你心态彻底发生转变之后才来的,当你可以坦然接受一切,不再和自己较劲之后,不只是薪资职位高低,而是坦然接受一切,不论有没有工作你都能接受,哪怕一个人流浪街头,你都只是努力地无怨无悔地生活,这时候人生的下半场才真正开始。
Q:这份职业收入如何?有什么理财窍门?
收入主要就是靠工薪吧,钱不要乱花,业余时间学习学习如何理财,努力使自己的年化收益率达到10%左右是比较适合程序员的,本身你从事这个职业就是图稳,如果不是的话,直接去创业不是更合适,所以不要去追求过高的收益,风险不适合工程师。
Q:生活中有什么爱好?如何缓解工作压力?
小爱好看电影,大爱好旅游吧。每周看几部电影可以适度舒缓压力,每年和家人一起旅个游基本就满血复活了(不过今年可能够呛了,暑假准备呆在家里刷剧吧)。
与思否的故事
Q:您都玩过哪些社区?
我一直比较喜欢回答问题,最早时是在一个叫experts-exchange的网站上回答问题,攒了不少积分,后来这网站出于营利目的开始收费,我就不怎么上去了。后来就在stackoverflow上混,常想着中国怎么就没有一个这样的技术问答网站呢,后来就发现了segmentfault,先开始是回答问题,后来觉得思否这个markdown编辑器不错,就开始用这个来写文章,到现在还是养成了用思否写文章的习惯,用其它的所有的markdown都不好使,就思否这个好用,特别是这个从剪贴板粘贴图片的功能非常实用,不论是自己建站还是用别人家的都没有思否这个好用,需要任意图片,只要截屏粘贴就够了,非常便捷。
Q:您是如何与思否相遇的呢?
我特意查了一下,我在思否社区回答的第一个问题是在2015年2月春节前的一天,具体原因想不起来了,可能是在网上搜索答案时发现思否社区的吧。当时也正好是在一个职业的转换期,所以开始在思否上记录平时工作中遇到的以及解决过的技术问题,因为有些技术问题解决步骤较多,如果不及时记录,时间长了就会忘记,同时这种记录对于有类似问题的同行也会有所帮助,于是就开始经常逛思否了。我觉得思否对我最大的吸引力是交互,有问有答,它不像其他论坛类的社区,以博客为主,底下一堆人点赞或者评论,我觉得思否最大的价值是以问题为中心,有人遇到了技术上难以解决的问题,来这里求帮助,同时回答问题的人可能恰好也遇到过或者解决过类似问题,或者虽然没有遇到过这个问题,但是在解决问题的过程中自己也学到不少东西,技术工作的实质就是不断解决各种问题,所以这种以问题为中心的技术社区是比较适合技术人群的。
Q:对思否有什么建议?
建议的话,我觉得付费问答这块的逻辑可能与我们理解的不太一样,应该是提问者发出悬赏,回答者揭榜的方式,如果这样的话可能热度会更高一些,也不一定是物质奖励,或者以声望值悬赏也是可以的。另外还应该提倡鼓励大家对问题和答案养成顺手点赞的习惯,有时候看到一个答案或者问题中的代码对你有帮助,教你学到了一些东西,随手就应该点一下赞,这样会更多地鼓励大家积极提问和积极回答。
对程初学者和怀抱梦想对年轻人提些建议吧
Q:越来越多的年轻人进入这个行业,您觉得会带来什么改变?行业又该做出什么改变呢?
有一个说法是:编程会改变一个人的思维习惯。我觉得这不是一件坏事。无论程序如何多样,最基本的要求是你必须要讲逻辑。所以越来越多的年轻人加入这个行业,哪怕只是呆一两年最后又离开,但这个过程对你思维方式的塑造是永久的,它会使我们整个国家的年轻一代越来越理性,能够更加客观公正地看待这个世界。如果程序出了问题,是程序的错还是你的错?通常来讲,肯定是你的错,所以你在看待这个世界的时候也会不由自主地代入这样的逻辑,如果想要改变世界,先要从改变自身做起,编程培养的就是这样的思维方式。
但这并不是说未来我们只能适应这个行业的各种明规则潜规则而不能改造它,恰恰相反,行业是由一个一个血肉鲜活的个人组成的,不存在脱离了人的行业,所以我们在从业过程中所做的任何贡献,或者哪怕是从业这件事本身其实就已经在改变这个行业,包括 35 岁歧视,包括 996,如果你相信它,愿意遵守它,那最终你就将成为它其中的一分子,但如果你不相信,并且用脚投票去反对它,那它最终就无法成为规则。行业塑造我们,而我们也在改变行业,历史就是在这样的双向碰撞中滚滚向前的。
Q:从您这 25 年的经验中,可以总结一些给年轻人的忠告吗?
我觉得这是一个很好的职业,希望你能够像我一样或者比我还甚地热爱这个职业,唯其热爱,才能狂热,这是一个永远有未知数永远值得攀登的行业,它不只是通讯,它的本质是人类如何思考,代码反映的是人的思想,正如作家虽然死了,但是他的思想留在书中,我们的思想留在了自己写下的一行行代码当中,所以从落笔的第一刻起,要有意识:这是我的代码,我要对此负责。
我有酒你有故事么?
欢迎有兴趣参与访谈的小伙伴踊跃报名,《思否有约》将把你与编程有关的故事记录下来。
报名邮箱:mango@sifou.com
**粗体** _斜体_ [链接](http://example.com) `代码` - 列表 > 引用
。你还可以使用@
来通知其他用户。