小小的人生,拐了个小弯

(这篇日记写于2月10号下午,我会设置延期发布以照顾朋友们的感受)

明天就是我32岁的生日。今天中午,我把要离职的消息告诉了我的老板。

跳槽对很多人来说或许根本算不上什么,甚至根本不值得去写个博客纪念一下。或许发个微信就够了。呵呵。很遗憾,我不是这种人。我其实是个很懒的人,懒得去改变,只要当前的情况不是那么的糟糕。我在大学毕业后选择了现在这家公司,一干就是将近7年。中间公司经历了被卖又被卖,但我还是坚持在自己的位置上没有变化。因为我觉得这个环境还不错,工作也不错,薪水也可以。人懒,懒的去寻求新的变化。

直到最近的一次并购,让我对公司的发展失去了信心。即使在这种情况下,要不是我的前老板找到我,邀请我去他新的公司,我可能还是会在现在的位置上等到公司或倒闭或再次被卖。我觉得跳槽是一个很大的事情。它大到能成为你人生的一个转折点。它意味着环境的改变。包括一起共事的人,做的事,呆的地方。其中每一件都是需要很大力气才能去适应的。而找一个新的公司,又有着巨大的风险。从外表看光鲜靓丽的公司内部可能是一团乱泥。所以对于一个熟悉了的环境,一般不怎么想去改变它。尤其是在有了一群朋友之后。

我自己并不畏惧新的事物,新的环境。甚至我还觉得我适应新环境的能力要高于一般的人。在当前这个情况下,换个环境成了我唯一的选择。而我自己也将去适应好它。并在它那里走的更高。

往回看着近7年的工作时光,从一个初出茅庐的毛小子,到现在可以熟练管控一个软件项目的开展。自己学到了很多,成长了很多。其中离不开的是来自数不清的人的数不清的帮助。每个人,近到自己的老板,远到美国的同事,都或多或少的提供了各种及其有用的帮助。没有他们,我也不可能拥有现在的这些能力。

人有时候需要逼一下自己。当然,自己很难给自己这种压力。但环境可以。当有这种压力时,要把它看成一种机会,一种让自己成长的机会,不要轻易放弃。新工作对我的要求更高,对我的挑战更大。但我觉得我能行,而且可以做的比它要求的更好。就是那句话:海阔凭鱼跃,天高任鸟飞。

现在听着那些为大学毕业所写的歌,觉得还挺应景的。我就像是从另外一所大学毕了业。学到了知识,结交了朋友。

2014年是一个新的开始,也希望是一个更成功的开始。

Robots with soul!

Cannot wait to share this amazing TED talk, Robots with “soul”. So many interesting robots there and I do want one robot desk lamp.

Get an unique ID for your iOS application

While we were working on an iOS project, the backend service required some kind of device unique ID be uploaded in some special cases. Getting / Generating some sort of unique ID isn’t something difficult. But on iOS platform, it becomes a little “different”. It’s simply because you have more than one option to do it and some of them was allowed but recently got deprecated by Apple.

We made some investigation months ago and recently I found a great article in which all possible options have been listed and explained in detail. Basically, you could choose from “CFUUID”, “NSUUID”, “Advertiser Identifier”, “Identifier for Vendor”, “UDID” and “OpenUDID”. Since it’s already the iOS7 world, you might want to just use “NSUUID” for generating new UUID on every call, or “Advertiser Identifier” and “Identifier for Vendor” for identifying the device.

I suggest you take a look at that article (it’s not very long), try the demo app it provides if you need an unique ID in your iOS application.

职业发展之路

刚才在InfoQ上读到一篇《程序人生的四个象限和两条主线》,文章道出了程序猿苦逼的职业发展之路。读了之后,颇有感悟。

程序猿是个新兴的物种。估摸着从第一个程序猿到现在也就百来年(伴随着第一台计算机的出现而出现)。而“真正”意义上的程序猿,估计也就20来年。别看这种物种到世界上的时间不长,但对人类社会发展的作用确是巨大的。这其中当然有主流的正面作用,也有非主流的负面作用。

程序猿也想提升自己,好吧,至少大部分是这么想的。提升的一种方式(或者是结果)就是升职加薪。加薪是刚需。在这么个每年CPI动不动就6%、7%上升的国度,不加薪,或者加薪幅度小于CPI涨幅,就等于给自己判死刑。另外,薪水的多少(一方面)也是自己能力和身价的体现。至少它可以成为同学聚会时吹牛的底气。倒不是说你需要告诉老同学你的年薪是多少多少万。你只需要在别人谈论豪车名表的时候轻描淡写的嗯一下,说:这个我看过,觉得外观不好看(或者设计不合理),就没买。

职位的变化(确切的说是上升)也是一种自我价值的体现。人嘛,就是在不断的追求自我价值的提升中,一步步走向生命的终点的。追求更高的职位,一方面它往往伴随着薪水的上升。另一方面,它也意味这工作内容的变化。程序猿,一般都是搞技术出身。在大学里学个C,或者C++,或者.NET,再或者网络相关的东西。毕业后去一个公司当软件工程师,领个几千块的月薪。过了几年,技术见长了,人脉见长了,待人接物的能力也见长了。这时候,就像高三选专业一样,需要给自己定一个所谓的职业发展规划了。掂量掂量自己,觉得是技术发展的更好呢,还是与人沟通发展的更好。这里千万别误解啊,我不是说技术做不好的人适合做管理。就好像很多高三的文科同学,都是因为觉得理科太难才选文科的。这种思维方式错的可是很离谱的。

走管理路线需要很强的与人沟通、协调的能力。同时,需要比较强的技术背景。你可以不是团队中最最强大的,但一定不能是最最弱小的。程序猿的世界很单纯,以技服人。别人不会单单因为你会耍几下嘴皮子而服你。你至少要做到在和团队沟通技术问题时别搞的像个棒槌一样。所以说,如果你发现自己的技术做的还不错(10个人里能排进前4),同时在沟通协调方面又高人一等。这时候可以考虑是不是要进军管理路线。否则的话,还是老老实实搞技术吧。

中国很多人觉得搞技术是个青春饭。一过30就开始走下坡,过了35简直就算完了。我想这之中的绝大部分原因和很多中国公司的技术发展路线不完善有关。做技术的同学看不到技术路线上的提升空间,往往也就萌生了改行做管理的邪恶想法。以前看到过一篇文章,提到了怎么设置技术路线的发展等级。除了普通的“软件工程师”,“高级软件工程师”之外,还可以设置各种“专家”来帮助员工朝着特定技术方向发展。比如一个高级软件工程师,如果他在数据库方面很牛,可以提升为“数据库专家”,再后面可以是“高级数据库专家”,“架构师”等职位。这也是鼓励员工朝着特定方向去发展。让其在广度和深度上同时得到提升。一个公司CTO必须只能有一个,但“专家”的数量可没有什么限制。开拓更多的职位上升空间,打破那层玻璃天花板,才能让有能力的员工安心做技术。

好的公司,必定会在员工的职业发展之路上给出明确的方向并提供必要的帮助和空间。但公司的组织架构是摆死的。一个萝卜一个坑。很少见有公司为了员工发展而“创造”职位的(尤其是管理职位)。一般都是看机遇。有新的业务要开拓,或者有新的团队要组建,这些都是机遇。但机遇又是可遇不可求的。没赶上好时候,不说明你的能力有问题,只是运气不好罢了。这时候,如果耐得住寂寞,可以慢慢的等待下一次机遇。或者另谋高就,看看外面的机遇。外面的世界很美好,千万别做井底蛙。

TED Talk: The happy secret to better work

看了一半突然发现这个演讲者就是哈佛幸福课里的一个讲师。演讲非常幽默。