[思考]写码十年
昨日杭州,晴空飘雪,似四月柳絮纷飞,春洒大地。翻看去年的寄语:“2020年,我将迎面所有的挫折和挑战,不畏惧,不退缩。2021年,尚且码字行文,畅谈光阴和故事。”,心思翻涌,感慨良多。过去一年,面临了许多挫折和挑战,没有畏惧,有过退缩。不管怎样,此刻仍旧能够行文畅聊,任光阴和故事慢慢展开。
今日杭州,阳光普照,万里无云。2021年,来了。
按照惯例,每年一篇年终的自我总结。从《二零一九,GO!》到《写在回家之前-研一下半学期总结》,再到《聊聊二零一七半年纪事》,《写在2016年最后一天》,今年迎来一篇颇具纪念意义的文章《写码十年》。
从2011年读本科的时候,正式开始写码,至2021年,即将开始写码的第十年。整个历程分为两段:开发和算法。从2011年到2016年,从C到C++,再到O2O鼎盛时期写Android/Java,该阶段以在创业经历中写PHP结束。开发和算法的过度期间又短暂的写过一段PHP和Java。一个老程序员经常用编程语言的使用经历来划分自己的职业生涯,这里也不能免俗。从2016年至今,是算法阶段。该阶段又可以分为数据挖掘时期,计算机视觉时期和自然语言处理时期。编程语言以C++和Python为主,但是该阶段的划分按照前辈的经验,多不是以编程语言作为划分依据。数据挖掘时期主要以做各个平台的比赛为主,在算法竞赛兴起的阶段,几乎清一色的数据挖掘类比赛,以表格数据分析为主要特色(在此之前,我们谈到的算法竞赛主要指ACM之类的传统编程竞赛)。中期转向计算机视觉研究,以在京东无界零售实验室实习作为结束标志,主要以研究目标检测为主。后期至今,一直从事自然语言处理方向的工作。
至今,仍旧能从写码中找到快乐,也是难能可贵吧。
在去年的总结中,开篇写道:“今年整体上更多的是对技术的理解。”,在寄语中写道:“专注于技术但不唯技术。”。作为对比,今年可以在开篇骄傲且自信的写道:在跟进技术的同时,今年整体上开始对业务有感觉,有认识(或者一定程度上的深刻认识)。个人为这种感觉和认识的获取,支付了高昂的学费。
#### 技术篇
2020年每个工作都会用技术博客的方式作为输出形式,全年共计27篇博客,低于去年的48篇。分为三类:去年没有完成的技术总结和思考,智能客服/问答系统相关,知识图谱相关。第一类主要讨论OOD问题,Continual Learning问题,FSL/ZSL,OIE等相对较前沿的NLP问题,以及基于前期工作积累的思考包括样本构造偏置,MRC等问题。第二类主要包括对问答系统相关的思考,涉及答案推荐,问答匹配,对话系统和产品等。第三类包括知识图谱构建和应用,基于非结构化数据的图谱构建和基于结构化数据的图谱构建。在应用层上的工作,由于还没有形成系统的思考,尚在进行中。截止目前,基本实现基于真实业务场景和数据对NLP体系中的大多数重要课题都算有所涉猎,但是深度尚且不够。做宽做深,需要在接下来的工作中持续投入和输出。
相比去年,今年的技术博客中,有更多的文章被更多的较大的NLP公众号文章转载讨论。Github中今年没有贡献有价值的工作,但是已经有的项目star/fork数在持续增加。唯一保持更新的是NLP论文阅读简要了。一直在思考这个repo和NLP比赛复盘repo是否能够产品化?从社区反馈来看,证明这样的工作是有一定价值的。下图分别给出2019年和2020年的贡献记录:
在阅读内容上,上半年还是以各个方向的顶会文章为主。下半年除了继续关注顶会工作,重点放在了工业界的方案和某个方向的专著上。典型的几乎读完了datafuntalk的所有工业界分享的工作,另外美团技术中心的工作和丁香园的知乎文章更是一篇不能漏。相关的书主要包括知识图谱和问答系统方向上的。
#### 业务篇
从一个技术驱动的团队,到一个业务驱动的团队,就像两个极端,经历了严重的水土不服和巨大的摩擦力,为此也付出了高昂的学费。面对这种硬着陆方式,自己也选择了一种比较激进的方式来缓解。现在看来,自己放大了当时面临的问题,随之带来的是认识的升级。后来又经历了一些比较荒谬的事情,不过现在重新看业务问题,又有了新的认识,而这种认识和感受,相信会在未来的某个时间点产生价值。
为了更好的了解业务,需要了解产品和运营。受益于和母校设计学院的千丝万缕的联系和沟通,自己很早就已经有产品意识,但是对运营的理解尚浅。如果你现在觉得运营就是“打杂”的,可能需要校准一下自己的认识。为此,读了人人都是产品经理网站上核心板块的几乎所有文章。对于一个新手而言,该网站的文章排版和内容,的确非常的友好。读了张亮的《从零开始做运营》的上下两册,该书对于新手建立一个知识体系也非常的有帮助。郝志中的《用户力:需求驱动的产品,运营和商业模式》也是非常的有帮助,此外,很早之前读过《淘宝技术这十年》,今年读了《淘宝十年产品事》,上半年读了俞军的《产品方法论》,《聊天机器人:对话式体验产品设计》等产品相关的内容。
除此之外,也见证过业务线的生死存亡历程,这才是最优秀的教材。
基于技术和业务篇两部分,形成的一些基本认识如下(这些都有可能是错的!):
- 技术和业务都很重要。
先把业务做好,再把技术做深,业务是生存线,技术是生活线。对于一个创业公司而言,尤其如此。当你只想做技术的时候,多数创业团队估计很难满足,选团队很重要。在技术和业务之间平衡,是自己需要持续思考和优化的地方。更关键的是要思考在一个组织架构中,技术和业务的边界在哪里?这里没有答案。百丽鞋业的老板二代在一个访谈节目中提到:百丽需要的也是在技术和业务中做桥梁的那波人。技术干技术的,业务干业务的,互相不理解,都嗝屁。
- NLP技术门槛在不断的降低。只盯着技术,会很幸福,但也有可能会很难。
很多人发现实际业务线中似乎对技术的要求并不深,多数业务对算法优化的周期并不宽容。“面试造火箭,工作扭螺丝”在部分团队真实存在。这势必要求扩展自己的视野和能力边界。分享Hulu的诸葛越的一个观点:”大家可以思考这样一个问题,工作经验分别为1年、5年、10年的三个工程师在解决同一个问题时的差别是什么呢?结果可能都一样,那就是问题都被解决了,但真正的差别在于大家看问题的角度和维度不一样。作为工作经验久的工程师,你看到的不应该仅仅是问题的表面,更要看到问题的前因后果,以及其他与此相关的事情。为什么会这样呢?因为通过多年的工作积累,资深的工程师已经有了解决问题的框架,可以把问题放在框架下拆解分析,最后找到解决问题的方法。随着工作年限的增加,大家一定要总结并提炼出与工龄相匹配的方法论,否则你是无法对“后浪”形成竞争优势。形成了自己的方法论后,不仅可以更高效的应对老问题,还能从容的面对新问题。为什么会呢?因为老问题可以直接套用现有解决方案,效率肯定提高;面对新问题时,将问题放在现有的方法论下进行拆解,很快也会找到方案。你一定要知道,随着职级增加的不仅是收入,还有需要处理问题的数量。如果没有积累,你在应付激增的问题时会显得很吃力。”,本质上,要求的是解决问题的能力。问题不只包含技术问题,就要求不只要技术能力OK,还要其他的很多能力。
这里给出两个事实:(1)我们一直缺乏优秀的人工智能产品经理(2)硅谷很多产品是技术多年之后转的产品,产品不是一个从零开始的分工
- 不要给自己设边界,这也关乎适应性问题。
原话是我第一任Leader给我讲的,当时我不理解,现在理解了。第二任Leader讲了“君子不器”的观点,但是并没有详细阐述他理解的“君子不器”,我理解的含义之一是边界设定的问题。在一件事情上研究的很深,逐渐会形成一个舒适圈,这个舒适圈会以各种粒度的形态存在。跳出去一定会不舒服,但是真正突破了,就会发现自己的认知又提升了一层,可能性又多了很多。
- 优秀算法工程师的标准校准
事实意义上的知识体系宽深都满足,有点扯淡。知识基本盘能够覆盖当下以及不远的未来可能会出现的问题,针对特定问题和技术,有WHAT/WHY/HOW的思考和认识,不迷恋SOTA和Fancy,提升问题和技术的适配度。能理解复现新工作,也能写规则,洗数据,解Badcase。(这些均是基于所接触业务和人的一些观察得到,也是自己对自己在未来一段时间的基本要求。当然,有同学可以选择一路SOTA,可以选择一路Github拉代码,可以选择不用一毛钱的算法,都可。)
- 提升对结果输出的重视比重
纳米酱提过一个问题:“有个问题,如果在公司,做题家希望改造算法解决业务问题,或者用最新的方法解决业务问题。但是领导考虑到成本和时间,不允许你这么做,请问做题家要如何怼回去?反过来,如果做题家看了传播焦虑的帖子,担心竞争力下降,不论做啥业务,一定要采取高大上和最新论文前沿,作为领导,应该如何约束这种风险高的行为。”
有个问答是:“作为领导,可以抓两个实习生来研究算法,不要让正式员工干这种高风险的事,让便宜的实习生干,实在不行还能水两篇顶会。”
本质上,还是一个技术和业务平衡的问题。在不同的时期,不同的人有不同的诉求。好的Team,会隔离营造一个技术和业务的边界,但是难度很高。只做技术,不care业务,人家不是傻(重视过程和技术输出)。反之,技术啥的不重要,还是业务重要,人家同样有自己的理由和存在的意义(重视结果和业务输出)。两类同学都接触过,也都证明了两种路线的现实意义。在一个组织架构中,对结果的定义是啥是很重要。业务输出?产品维稳?技术输出?从这个角度来看,自己的诉求和组织对于结果输出的匹配度是需要小心思考的,平衡是一种需要不断习得的艺术。
#### 生活篇
这一年虽然经历了不少狗血SB的事情,但是也一年比一年更加清醒,能够关注到更多的东西,能够慢慢知道什么是值得珍惜和谅解的。
有段时间能够静下心来思考活着的意义,去了很多地方玩儿,爬了不少山,读了不少书,看了不少论文。
吹了不少NB,画了不少图,写了不少Bug,吃了不少灰。
这一年,是全球在疫情背景下,不幸的一年。但是,这一年,家人安好。这一年,王姑娘第一次做人家女朋友。这一年,没有任何感觉的成为了新杭州人。这一年,在家人朋友的帮助下,有了属于自己的窝。这一年,三两好友依然在,并且友情更加醇厚。这一年,自己真的又成长了很多。
希望在新的一年,疫情早日结束,还我喜乐人间。常与同好争天下,不共SB论短长。希望我爱的人和爱我的人,都好好的。(年轻的时候,总觉得这些祝福的语言都是客套话,现在等到自己能够一个字一个字的打出来,却才知情真意切,估计是老了吧。)
最后,祝大家牛年,NB哄哄。(别走!不给自己立个Flag吗?立啥啊,头铁,干就完了。溜了溜了)