癸巳年上半年总结

How Time Flies!

标题中年份用的是农历,春节后回杭州,元宵后办理完交接离开同花顺,到二月廿八入职TX,从那时算起到今天亦有半年多了。

关于健康

先从李开复罹癌说起(希望他可以康复),不管名气再大,总归是人,自然规律,生老病死无法逃避。不过李的生病,又掀起了一股,IT从业者是癌症高发人群的讨论,一些网站还列出了预防癌症的n条方法。李的生病对我的触动也很大,因为媒体上曝光李的压力很大,经常凌晨2、3点睡觉,而我最近睡的也比较晚差多不也1点半左右。无法好好休息,确实是对健康的透支,李是台湾省人,又有在国外生活经历,经济条件又好,想必规律性的深度体检是有的,所以可以及早发现。而我们大多数人,可能小病就是扛着,每年一次的体检也是马马虎虎,也没有什么健康意识。从今往后睡眠一定要保证,自己力争12点半之前入睡。说句题外话,如今中国近万人确诊癌症,而李不过是其中之一,如果李不是名人,又有谁重视,印象中李的出名是因其反复跳槽被媒体炒作,估计也是他为后来搞风投作势,话说微软与李同一级别的华人并不少,乃至现在有个叫做陆奇的华人,现在被国外媒体认定为鲍尔默接班人之一,级别在李之上多矣,为何李如此出名?

工作的事

这一段时间确实工作时间很长,8月份休息了三天,9月份的周六目前也都在加班。至于加班的原因,我个人概括的如下:

  1. 产品设计需求不明确,不细化,变更频仍
  2. 上一条导致,我们无法预估时间,但产品发布的时间是死的,往往也不够
  3. 开发时间少,且团队代码不够规范,所以代码质量低下,bug很多

话说入职TX后,最不适应的就是,产品设计不够详细,纰漏多,文档少,变化快。团队也发现了这个问题,也在慢慢改,不过自己也接受并努力去习惯这种节奏。有时,一个很大的需求只有短短几句话,确实会让人升起一股卷铺盖走人的冲动,但现实是残酷的,无法逃避的,就像《麦田的守望者》的主人公一样,逃避不了的,自己也要力争达到《麦》中那句名言:一个成熟男人的标志是他愿意为一项事业卑微地活着。所以如果是产品设计问题,要沟通,引导他们完成设计。

目前团队的项目是,Android手机PC端(windows)的管理软件。自己刚进入时,主要做一些辅助项目的开发,比如守护进程和第三方合作插件。自己在开发这些软件的时候,感觉在Windows系统编程方面经验太少,多亏我的导师给我指出了一些方向、技术点和强大的stackoverflow.com,才是我顺利完成了工作,这部分不熟悉的内容主要包括:win7下进程Token、各种内核对象、管道的使用等等。

目前团队使用的开发环境主要是VS2010,这还算对我胃口的,因为支持C++11,要说这半年自己技术上的进步,只能说是C++11常用用法的熟练使用,因为lambda的方便性,感觉STL中的算法焕发了第二春,现在我已经很少用for循环了 可惜vs2010不支持ranged for loop。

融入团队

融入团队,目的是为了更好的合作,终极目的是为了创造更好的产品。

要融入的内容包括:

  1. 和大部分人建立融洽的关系
  2. 熟悉团队的开发流程、规范、潜规则
  3. 影响团队,改造团队的坏习惯,促进团队良性发展

以上三点,是难度递增的。第一是“和大部分人建立融洽的关系”。人分三种:第一种人是,热心的帮助你,主动跟你建立融洽关系;第二种人是, 你需要感化,帮助他,影响他从而建立融洽关系; 第三人是:价值观、习惯与自己差异较大,且对人有成见,此种很难建立融洽关系的。

一般前两种占据90%以上,第三种很少,很圆滑会来事的人可以去攻克第三种,像我这种木讷的人,就懒得管第三种了,平时保持距离,但切记不要影响工作,切记融入团队的终极目标是创造好的产品。

第一点,自己目前完成度一般,有客观的原因,比如很长一段时间都是做独立项目,且团队活动很少。主观上,做程序员久了,感觉交际能力下降,在同花顺时,总能结合场景说一些灵机一闪的幽默言语,所以同事间相当融洽。目前工作之间的交流还算融洽,但相信这一点随着时间的推移会越来越好的。

第二点是,熟悉团队的开发流程,规范,潜规则。目前的开发流程可以归结为:快速迭代,持续优化。所以编码时的质量是不高的,比如前几天与一同事一块儿开发一个需求,看他写的类中有大量的public函数,但这些函数外面并不会调用,还有一些很该写成const的函数没写,提醒他,他答曰:迭代太快,一开始考虑不全。其实这些是团队的开发习惯,编码规范问题,大家都这样,所以一直糊里糊涂的写着。代码是用TFS管理的,会建立一些分支,这些都熟悉了。代码上的潜规则也会有一些,都是出了问题后,才发现并修补掉的,比如看起来八杆子打不着的函数有依赖关系等等,这个只能遇到一个记录一个。

第三点是,影响团队,去陋改良。这一点,自己是很热心的,比如,会和大家分享一些C++的编码规范技巧等等,推广一下Python,推进一些高级工具的使用等等。效果有一些,但一个团队的习惯,是一个复杂的历史问题,有其合理的地方,平时只会在小的地方改良,或者经历惨痛的教训后,才会主动改革。

梦想实现财务自由

前一段时间,确实很累,让我梦想有一天可以实现财务自由,可以做一个自由职业者。于是做了一个尝试,做了两个Niche站,一个中文一个英文,目前还没有收入,现在的心态是,不求收益,但至少我体验了一把建站的思路。建这种站,是一个持久的活动,但假使这两个站有收益,也是杯水车薪,但不排除有经验后,自己可以做出相对成功的niche站。

niche站看来短期内,不是实现自己财务自由的途径。

自己两年来定投了两支基金,其中一直亏损严重,但上周业绩比较漂亮,每天能给我带来3、5百的收益,假如一直这样多好。现实是残酷的,现实是没有假如的。定投基金的心态一定要是:不贪不惧,争取跑过余额宝就可以了。

实现财务自由之路还需继续探索了,有理想是不可耻的,但切记不可在公司上班期间,利用工作资源时间践行自己的理想,自己与公司是有契约的,要有契约精神。

技术路上的进退

技术路上的进步,说起来还是C++了,进步的程度,只能说是更娴熟了(C++谁人敢说精通呢?)。具体而言,主要是C++11的熟练使用,STL的熟练使用。据我观察与阅读其他人代码,可以基本推断自己C++水平是相对较好的。比如C++11语法只有1个人在用,在数十万的代码中搜索不到几个STL中的常用算法函数(for_each、remove_if等),代码中也有很多明显的违反《effictive C++》的内容。但圈子小,并不是每个人都C++感兴趣,国外一些C++牛人的博客上介绍的主题,自己闻所未闻,C++14/C++1y, C++还有很多可以探索的领域。但不知自己在C++上的投入是不是不归路,今年换工作的面试中,就遇到好多人的诘问:C++有什么好学的?C++学那么好有什么用?

但除了C++,自己又找不到特别感兴趣的方向。今天看《高效能程序员的修炼》,里面提到不要为了学习而学习,不要学习以后可能会用到的东西,要学自己感兴趣的东西。这些观点,放到我身上就是矛盾的,我感兴趣的是C++,但有些东西以后并不一定能够用得到。

其他技术上的进步,主要是一些零碎的技术知识。最近一年,在也没学过大块新的知识了。近来也断续听到这种说法,读书成瘾,为学而学。感觉自己以前有这种倾向,感觉自己像知识的冰箱,存储了好多原料,却不会用这些做出一桌丰盛的菜来。