2

2016 年终总结

 3 years ago
source link: https://www.zenlife.tk/2016.md
Go to the source link to view the article. You can view the picture content, updated content and better typesetting reading experience. If the link is broken, please click the button below to view the snapshot at that time.
neoserver,ios ssh client

2016 年终总结

2016-12-31

许多年后,坐在电影院里,我会回想起跟同事讨论《魔兽世界》拍电影的那个遥远的下午。记得当时开玩笑说,不知道要等到猴年马月才能上映。结果猴年马月还真的到了,不得不感慨时间过得是太快,一切恍如昨日。

今年发生的事情太多。年初换了一家公司,也不算年初,四月份吧。有时候会想,若是刚毕业的时候能进这样一家公司,该是多么的幸运。如果是在那个对一切都还充满好奇的年代,在合适的环境下成长,速度是怎样的惊人。其实可以用公式估算出来的:天份、付出、环境。对于天份我很有自信,而且一直也算很努力了。可惜来得已太晚,红颜弹指老,刹那芳华。

四月到七月间,经历了两个月多的远程工作。远程工作并不像想象中那样美好,所有事情被我搞的一团糟。工作变成了全部,每天大概只有吃饭过或去超市才会说几句话,然而工作却做的不怎么好,更加拼命去做,继续挤压生活。工作的任务,交流和沟通,生活节奏,压力控制,一切都一团糟。试想本以为自己来到天堂,宽松的工作氛围,远程工作这么高逼格,做最有技术含量的事情,并且代码还是开源的,用自己的双手改变世界,这不是曾经梦寐以求的么?结果发现自己没把事情做好。接着就迷茫了,甚至怀疑自己是否真的适合做程序员。这是一个从本质上的否定,非常可怕。被fire掉倒没什么,大不了换家公司,然而"不适合做程序员"这种自我否定,就严重了。一旦信念动摇了,曾经所有的骄傲、荣誉,所有的自尊乃至存在,全都只在一瞬间被摧毁。脆弱的,无法面对...

接着老妈自作主张就买房了,处于事业低迷乃至人生迷茫期,一下子措手不及,买房本来不应太冒失,投资也不是这样子干的。换作是以前,工作不爽可以换一家,或者干脆不想工作了,抽几个月出来思考下人生,也不是没干过。但是现在不一样了,还背着房贷呢。另一方面,这次跟从前不一样,从前知道自己想写代码,想有更好的技术成长。然而这次,成为更优秀的程序员的平台就摆在这里,却开始怀疑自己可能不适合做程序员。

后来就来北京了。从哪里跌倒从哪里爬起来,从哪里失去的从哪里找回,结束了远程,base到北京,换一个环境,开始全新的生活。我想,命运真是爱开玩笑呢,在北上广都待过了,本以为寓言的下一站应该是深圳,结果绕了一圈,却回到了原点。早知道这样,当初就不要离开这个讨厌的城市了。换城市跟换工作不一样,在一个城市待久些,都是熟悉的人,熟悉的事,城市的气味和环境里都会有感觉。我倒是工作没换,城市却换了。

来这边之后,新的生活,平平淡淡。更加孤独,也更加适应孤独了,或者是麻木吧。

比较有意思的,是去乌兰布统草原。头一次见识到了辽阔的草原,对北方的印象也有了改变。本以为北方是贫瘠的荒原,冰天雪地。原来这边也有肥沃的土地,有马和牛羊,天空可以很蓝很蓝,草和云朵出现在同一幅画卷里。

还有十一去骑行。一直就计划着远途的骑行,本来去年春节想骑行海南的,准备不够充分未能如愿。后来想,如果换工作的话,找下家前可以休息一阵,完成骑行。结果入职的仓促,又未抽出时间。一直拖到十一假期,总算是了了一桩心愿,不过已经到了北京,海南就太远了,选了周边的百里画廊。骑行的意义是什么呢?说不清楚,也许是寻找意义吧。人生就是一些经历,一场体验。

体验不一样的远程工作;体验梦幻般的在几个陌生的城市穿梭;体验买错火车票坐一整夜的囧态;体验生病时独自一人半夜去医院的凄凉;或者更简单地,尝到一杯好咖啡的开心,读完一本好书的感悟,都算。

说到书,论文和专业方面可能稍多一点,其它今年读得就太少了。《小王子》却是不得不推荐的一本。迷茫的时候,给了我不少启发。差点忘记了,住在自己内心的那个小王子。可是,又有多少大人懂呢?"如果不去遍历世界,我们就不知道什么是我们精神和情感的寄托,但我们一旦遍历了世界,却发现我们再也无法回到那美好的地方去了。当我们开始寻求,我们就已经失去,而我们不开始寻求,我们根本无法知道自己身边的一切是如此可贵"。

技术方面,得失就不好评判了。总体来说,成长环境在毕业后算是最好的,但是个人在具体的领域专注的还不够。之前远程的时候在底层做kv的团队,来北京之后调到了做上层SQL团队,人手忙的时候还抽过去帮忙弄周边工具。因此机缘巧合,算是在公司各个团队"轮岗"了一圈。也正是如此,从底层raft实现,MVCC,分布式事务,到上层的SQL解析,查询优化,ddl,乃至我们没有开源的分布式binlog(这个有空倒可以写篇博客),都有所涉及。回想起来,比较关键的就是好好读几篇论文。F1和spanner整个架构和设计相关的,事务模型要读几篇,虽然我们用了Percolator是中心化时序的方案,TrueTime以及混合逻辑时钟也是要了解的,一致性这块raft论文肯定要好好读,然后动态schema变更那篇也比较重要的。正如之前说的,今年读的"书"就少些,论文可能多一点。SQL优化的就是一个领域了,不是仅仅一篇论文足够的,还没有太涉足,正如编译器,分布式系统,PL都是各自的领域。一个问题是懂的太"多"了,精力有点分散。

一直想设计自己的语言,无意义地浪费了大量时间。今年发现ocaml之后,又研究了一阵子,接着发现了类型和一些好玩的feature,比如partial apply。于是觉得在我的语言里,都应该实现,便花了不少时间啃zinc虚拟机的论文,本来已经实现出来了,后面又设计加了不少东西,结果到最后还是全都砍掉了。之前想的太过简单了。很多东西考虑得不够清楚,像模块的设计之类。设计一门能用的语言,其实关键还是在于跟外部交互的机制,编程语言对效率的提升不在于是否是函数式,或者表达能力是否强大,提升效率的核心还是在库的丰富性。我发现过很多好玩的语言,比如shen语言的理念我是非常欣赏的:一个非常小的lisp的核,或者说一个扩展的lambda演算作为核心,在它之上提供了更友好的语法比较patten match,保留了sexp代码即数据,类型系统是外挂上去的,并且它的类型系统非常强大,并不是定死的规则,整个语言融合得非常优雅。美中不足的,语言能实用的关键还是库的丰富,跟外界的交互。于是我把目光放到了F#,F#可以调用到.NET平台,在这一点上就非常赞了,F#是门不错的语言,然而发现一门语言,跟自己设计一门语言,两者的乐趣是完全不可相提并论的。最终似乎没有什么是完美的,只能妥协,妥协了就再也不想折腾lisp相关的东西了。

这一年没有制定过计划,没有目标,谈不上完成或者失败。也许还活在去年的阴影里,把没做完的事情做一做,几乎是被外部事件推着走的。如果说特别大的问题,大概是抑郁比较严重了吧。快乐的反面并不是不快乐,而是失去活力,没有抑郁的人可能很难理解。我打个比方,如果有人问“你开心么?”,我会说不开心。但如果有人问,“那你痛苦什么”,我会说我没有呀。是不是很奇怪?是的,既没有开心,也没有不开心,而且几乎没什么事情能让我觉得开心或者不开心,这才是可怕的—-我大概知道自己抑郁得越发严重了,失去了喜、怒、哀、乐这些情感,也是失去对生命的活力。

当然,2016年已经过去了,我已经受够了这种状态。30岁之前,总该要搞点什么事情,不管是planA,还是planB。


About Joyk


Aggregate valuable and interesting links.
Joyk means Joy of geeK