读书笔记(四) Soft Skills: The software developer’s life manual

继续读书笔记,这一章是关于个人生产力(Productivity),作者分享了他对于如何提高效率的建议。
最开始作者强调了专著(Focus)的作用,认为专著是效率的”Magic pill”。这让我想起了在课程总结 – Learning How to Learn 中提到的Focus Mode,我在日常工作中是有非常明显的感触的。有时候专著的时候会忘记时间,不会去看别的无关网站,不会去玩手机,效率的确很高。而如果不在状态的时候,通常会看手机,查邮件,或者和别人聊几句,基本完成不了什么任务。Focus的确非常重要,但却不是非常容易的一件事情。
然后作者介绍了他个人的Productivity Plan,首先是有计划,包括季度计划,月计划,周计划,这里作者使用http://kanbanflow.com这一网站结合Pomodoro技术来管理每天的具体任务。同时作者通过集中处理邮件,关闭手机提醒,退出聊天程序等等方式来确保自己不被打扰。最后作者也提出要适当休假,所谓一张一弛文武之道吧。
接着作者展开介绍了Pomodoro这一技术,其实在Learning How to Learn课程也推荐了这一管理时间的方式。说起来非常简单,就是25分钟的集中精力加上5分钟的休息,在完成多个Pomodoro之后休息15分钟,但却也非常有效。首先会强制你思考如何分解工作,并评估需要多少个Pomodoro来完成,同时也比较清楚每天自己达致能够完成的数目,长期下来可以大大提高自己工作量估计的准确程度。这里作者提醒不要过于追求每天完成Pomodoro的数目,能够完成10个就是非常可以的数字了。在我过去几周的实践中,10的确不容易达到,毕竟精力集中本身不是一件非常容易的事情。
之后作者对周期重复性工作的建议是建立每周的配额(Quota), 比如每周写一篇博客,这里的周期可以是一周,也可以是一个月,这是一种把需要长期坚持的工作化为周期性的Routine,从而克服自己的惰性。
下面作者提到了责任心(Accountability),责任心是一种内在的动力去促使自己完成任务,另外一种做事的动力来自外部,比如惩罚和奖励。通常内在的动力远比外在的有效,所以让自己高效的重要前提是自己对自己负责,我想这和古人的“君子慎独”有类似之处,就是自己哪怕是在没有外在监督的情况下,仍然能够按照高标准去要求自己。
接着一节作者讨论了Multitasking这个话题。总的来说作者认为Multitasking在大多数情况下都是不好的,作者建议Batching,就是把类似或者重复的事情,比如回复邮件,放在一起在一个集中的时间集中处理。有少数情况下Multitasking可能有效,比如在写作时候听音乐,或者在跑步机上走路的时候看视频学习。我倒是的确在写代码时候听音乐,似乎人的大脑能够并行处理某些任务,比如音乐和思考,物理运动和学习等。
在讨论高效率的同时,作为人难免会感到倦怠(Burnout), 在是一种很自然的现象,而应对之道,在于首先要认识到Burnout不是终点,而是自我激励和兴趣会有个自然的下降过程,而最低点往往是倦怠发生的时候,就像是撞到了一堵墙,但如果坚持下来到达墙的另一面,那么兴趣激励和结果都会有质的飞跃。这个图片让我想起来在前两家公司入职的时候都看到的一个图片,就是Morale曲线会在3到6个月达到一个低谷,然后跨过去就也是质的飞跃。看来人的兴趣终有类似之处。

在讨论完Burnout之后,作者开始分析高效率的最大的敌人之一,就是浪费时间。这里有一个数字就是美国人平均每周在电视上花费的时间是34个小时。这是一个让人恨惊讶的数字,毕竟一周的工作时间也就只有40个小时,作者认为电视不仅是浪费时间,而且会影响人对问题的看法,让你失去对自己思想和行动的控制力。这个建议对我无效,因为我很多年不看电视了,除了回国在家的时候偶尔看看。电视之后就是社交网络,包括Facebook, Twitter等等,当然对于华人还有微信。这里作者的建议是使用Batching的技巧在集中的时间来上社交网络。之后还有就是不必要的会议,做饭,玩游戏和Coffee breaks,似乎现在的我都没有太在这些方面浪费时间。作者建议要纪录自己时间的使用情况看看到底自己的时候是否充分利用,如果没有那么是浪费在什么样的地方,再寻求应对之法。我想我可以在使用Pomodoro的同时,纪录下一些非工作活动的时间。

接下来作者花费了两节讨论了规律(Routine)和习惯(Habit)的重要性。”We are what we repeatedly do. Excellence, then, is not an act, but a habit”. 所谓“思想决定行为,行为决定习惯,习惯决定性格,性格决定命运”。这里作者建议建立每天的具体的日程表,在同样的时间安排同样或者类似的任务,这也是战胜拖延的一种有效的方式。这里再次提到习惯,这和Learn how to learn的课程中提到的是一样的,习惯是由Cue, routine和reward组成的,认识到坏的习惯并下决心改变之,并养成良好的习惯,这是掌握自己人生的开始。

之后作者开始另外一个话题,就是任务分解的重要性,”When eating an elephant take one bite a time”. 任务过大是有害的,我们容易产生退却的心理,进而容易拖延。而分解问题首先是参考自己如何一步一步去完成这个任务的,然后按照每一步拆解,而复杂的问题通常都可以分解为更小的问题。这个是要看具体的任务的。
后面一章是关于努力工作的重要性。以前也经常听到”Work hard and work smart”。作者从内心深处认为努力工作是成功的必要条件,而仅仅”work smarter”是不够的也是不现实的。所谓“业精于勤荒于嬉,行成于思毁于随”大致是一个道理。
作为这一主题的最后一节是”Any action is better than no action”. 按照信达雅的翻译标准,我想就是”不怕慢就怕站” :)。其实行动的重要性,在古今中外都有论述。所谓行胜于言,Actions speak louder than words,自不用多言。
这一章节,我个人觉得是本书最有价值的部分,包括使用责任感作为内在的行动动力,努力工作,制定合理的计划,规律的生活节奏,合理分解任务,使用Pomodoro技术,改正不良习惯,避免无谓的时间浪费都是很好的建议。
最后,行动起来。

英国退欧

上个周五最大的新闻莫过于英国退出欧盟的公投,与市场预计相反,退欧派以52%对48%赢得了公投,于是金融市场出现大幅波动,英镑兑美元贬值10%还多,欧洲股市多数跌幅大于5%,美国股市也跌了4%,倒是中国股市跌幅不大,避险资产价格大幅上扬,比如黄金。
记得以前读过《非理性繁荣》一书,其中一个观点是很多市场得参与者并非绝对理性,人们的心理对于市场有着极大的影响。那么到底英国退出欧洲有多大的影响呢?
我所看到的大多数评论都是负面的,首先会对英国和欧盟的经济造成伤害,经济学上主流观点认为人才技术和资本的自由流动对于经济非常重要,而世界经济的一体化是主流。然后是政治上对于欧盟的负面影响,别的国家可能效仿举行公投推出导致欧盟解体。
只是如果影响是负面的,那么为何多数人还是选择退出呢?有一种观点是直投式民主是有缺陷的,多数人并不能够做出最优的决定。就观点本身我是同意的。但我想这里更多的原因是欧盟自身的缺陷和大众对于世界经济一体化的不同感受。第一欧盟自身有很大的问题,之前的希腊危机就是个很好的例子,富国借钱给穷国,勤劳的德国人们得借钱给懒散到家的希腊人,当然一方面也是人才资金也往有竞争力的国家跑。同时穆斯林移民问题强制分配,顺便带来的恐怖袭击问题,治安问题都很棘手。第二人们对于经济一体化的感受和经济学家所说的是很不一样的,普通人感受到更多的是产业外移,移民抢饭碗,更大的贫富差距,必然会选择用脚投票。
归根到底还是屁股决定脑袋,美国普朗克的崛起也是大众对所谓的政治正确的用脚投票,我虽然也是移民中的一份子,但我能理解他们的选择。
回到英国退欧这个话题,短期必然对英国和欧盟是两败俱伤,但长远来看离开一个僵化和效率低下的欧盟对英国未必是坏事,过几十年再来看吧。

读书笔记(三) Soft Skills: The software developer’s life manual

“Education is what remains after one has forgotten what one has learned in school”

— Albert Einstein

继续读书笔记Soft Skills: The software developer’s life manual,第三章是关于学习的,作者开始引用了爱因斯坦的话。我的理解是教育的最重要目的不是知识本身,而是学习的态度和做人的方法。
作者一开始强调了学以致用,和学习中实际动手的重要性,他认为最有效的学习方法就是”Jump right and start doing”. 然后作者介绍了他自己的十步学习法,其中第一到第六步是准备阶段,而第七到第十步是具体的迭代学习阶段。

  1. “Get the big picture”, 通过初步的研究了解这个领域的大致内容,有个粗浅的认识。
  2. “Determine scope”, 学习需要有具体的目标,过于宽泛的目标通常都会导致失败。
  3. “Define success”, 有一个明确的可衡量的成功标准
  4. “Find resource”. 寻找靠谱的资料,包括通过Amazon寻找相关的图书并阅读评价,通过Google寻找相关的博客,Youtube视频等等
  5. “Create a learning plan”. 目标总是要化作为具体的行动才能成功。制定一个清晰的可执行的计划非常重要,可以参考图书的目录,或者看看别人的建议等等
  6. “Filter resources”. 时间有效,那么要把时间花费在好的资源上,那么筛选的工作必不可少。
  7. “Learning enough for get started”.  作者建议只要学到足够”Play around”的知识就应该去动手实践。
  8. “Play around”,这一步是具体去尝试自己学习到的知识,以摄影为例,这一步可能是探索你的相机,对照学到的各种设置。
  9. “Learning enough to do something useful”,这一步非常重要,是能够利用学习到的知识去做一些有用的事情,并和第三部的标准比较。
  10. “Teach”,作者认为去教别人是自己最好的学习方式,可以是写BLOG, 录制Youtube视频,演讲,回答在线问题等等

作者在介绍完他的十步学习法之后,提到这这是一个参考的过程,重要的不是步骤本身,而是背后的思想,就是一个适合自己的持之以恒的学习系统。
后面的几节讨论了如何寻找Mentor和成为别的Mentor, 并再次强调Teach别人在学习中的重要性。学习之后重要的事情是经常寻找自己知识的欠缺之处,比如注意日常工作中自己最耗时的部分,自己经常重复的部分,自己还没有完全立即的东西,或者是面试中没有能够很好回答的问题,都是寻找自己知识欠缺点的实用方法,找到之后在利用自己的学习系统去弥补。
其实关于学习,古人就有很多不错的论断,比如论语中关于学习的态度,“知之者不如好之者,好之者不如乐之者”,“默而识之,学而不厌”,“知之为知之,不知为不知,是知也”。关于学习的方法“温故而知新,可以为师矣”,“学而不思则罔,思而不学则殆”则是学思结合,勇于实践。学习的目的“诵《诗》三百,授之以政,不达;使于四方,不能专对;虽多,亦奚以为”则是强调学以致用。
所谓“活到老,学到老”,勉之!

微软收购LinkedIn

上个周末科技界最大的新闻显然是微软以262亿美元收购LinkedIn,大概每股溢价50%,考虑到之前LinkedIn跌掉了一半,所以收购的时机倒也不错。网上各种评论都有,看好的不看好的,大都是从业务的互补性方面分析。我倒不太善于从这个角度分析,我只是想起了当年微软收购Skype的往事,从一个小兵的角度。
时间真是飞快,那是五年前的事情了。大概是在2011年5月份的时候微软宣布以85亿美元的价格收购Skype, 而这个时候的我在微软北京正在决定来美国。当时有两个选择,一个是来这边的Lync组,一个是去Exchange组,最终我选择了Lync,于是便有了后面的故事。
九月份的时候来了美国,这个时候Lync当前版本的开发已经进入尾声,多数时间大家都在Fix Bug。几个月后被通知Lync和Skype要合并冻结招聘,然后便是一轮又一轮的Re-org,开始的时候的头是Skype合并Lync, 于是便有总部搬去伦敦,领导层从上往下开始换,很多人纷纷离开Lync组,多数去了Bing和Windows Phone组,我们搬去了Open space, 开始学习Scrum,提出了一个所谓的”North Star”的方向,我完全不懂。这个时候Live Messenger组也被包括了进来,简单粗暴地直接把用户导入Skype,甚至连分组的功能都没有,于是看到了所谓的Skype用户的伪增长。这样断断续续一年多的时间,完全没有像样的release, 而Skype也把精力耗费在给没有人用的Windows Phone开发应用上了。然后之前Lync的老大回来了,带回了一堆人,于是又是一轮从上而下的Re-org,直到2013年底的时候才慢慢返回正轨,2014年的时候我离开了Lync组。
在这个过程中,我所看到的,一是管理层根本就没有前瞻性,根本没有想好Skype到底能给公司带来什么,Lync,Skype和Live Messenger到底如何协调。第二执行效率低下,也许是所谓的政治,但是两年时候没有实质性的新功能,这在别的互联网公司是不可想象的。第三是所谓的自欺欺人,Skype和Live Messenger合并带来的虚假用户增长,以及不及时承认Windows Phone平台的失败都是最好的例子。
这么多年的结果呢?我想便是Live Messenger自己死掉,Skype半死不活,而Lync不过是改名了Skype For Business,也许仅此而已。财报上也看不出任何积极的影响。
如果微软还是以前的微软,我想这次收购不会有更好的结果,这是两家文化完全不同的公司,而微软在互联网上做的并不好,LinkedIn似乎也失去了方向。当然世界是在变化的,现在微软的CEO也不是之前的鲍尔默了,但是公司的文化却不是轻易能够改变的。

读书笔记(二) Soft Skills: The software developer’s life manual

继续读书笔记,这次的主题是”Market Yourself”,所谓酒香也怕巷子深。
首先作者强调了向市场推销自己的重要性,很多优秀的程序员会在职业发展的某个阶段达到某个高度然后遇到瓶颈,作者说的是十年左右,作为已经工作九年的我颇有压力。在达到这个阶段之后,善于推销自己则是让自己与众不同的一个有效方式。然后作者介绍了一些主要的向市场推销自己的方式,包括写博客,录制教育视频,在杂志发表文章,写书,参加会议等等。
然后作者介绍了品牌由四个方面组成,包括” Message”, “Visual”, “Consistence”和”Repeated exposure”, 不知道该怎么翻译才好,信息,标示,品质和持续展示?作者建议应该就自己的专长来建议自己的个人品牌。坦白说这一节我不知道是否必要或者对我适用。
下面一节作者展开介绍了如何创建一个成功的技术博客。建立博客可以选择免费的比如wordpress.org, 收费的,或者是虚拟主机,这里作者强烈建议用一个自己的域名,这样的好处是如果以后迁移了博客,那么搜索引擎的结果不会丢失。然后成功的关键是持之以恒坚持和提供有价值的内容,为了推广自己的博客,可以经常去评论别人的类似网站并留下自己的链接,还有在现在的时代当然离不开在社交网络上分享。至于写作的主题,可以自己维护一个列表,每次突然有想法的时候就记下来,这样积累下来就不会发现无米下锅的窘境。这里我的建议是多读书,这个写个读书笔记也是一篇呢,呵呵。
之后作者专门用了一节来强调帮助别人,给予别人是帮助自己的非常有效的途径,”If you help enough people get what they want, you will get what you want”,这不禁让我想起来论语中的”夫仁者,己欲立而立人,己欲达而达人”,很多道理还是有普适性的。
接着作者叙述了如何更有效的利用社交网络,第一位还是如何给别人带来价值,然后是保持Active,比如每周都有更新。
下一节作者讨论了公开演讲,这是是增加自己影响力的非常有效的途径。不过呢,现实是很多人都很害怕公开演讲,据说投票比死亡还让人害怕。我也很不适应去做公开演讲,但似乎现在比以前脸皮要厚了些,没有那么排斥了。作者的建议是多做练习,可以对着镜子里面的自己开始,对着家人朋友,然后是组里面的,练习越多就越熟练,就适应了。这个我应该去开始尝试。
然后是写书和写文章,这个我倒是还没有考虑,还是一步一步来,先多写写技术博客,提高自己的写作能力先。
最后作者提到了一个重要的态度问题,那就是”Don’t be afraid of to look like an idiot”,用勇于面对和承认自己的无知。很多时候不敢去尝试的原因就是怕别人觉得自己像个白痴,而实际上很多技能都是练出来的,所谓万事开头难,而开始的不适应感是非常正常的,坚持住那么好的开端就是成功的一半。还有就是要”take small steps”, 所谓”Think big, start small”, 老子道德经中“合抱之木,生于毫末;九层之台,起于累土; 千里之行,始于足下”也有类似的意思吧。
勉之!

人生忽如寄

周末的时候听说之前一个同事的爱人去世了,年仅33岁,癌症。几年前刚来微软美国的时候,我在31号楼上班,同事和他爱人也在附近上班,还经常能够碰到。那个时候周五晚上还经常一起玩三国杀。后来我去了6号楼,Bellevue直到西雅图来上班,大家联系也就越来越少了,但无论如何也想不到,再次听到居然是这个消息,不禁感慨人世无常,真是嗟命何辜,独遭斯疾。
随着自己年岁渐长,慢慢也经历了一些事情,但是往往给自己冲击最大的还是同龄人的去世。虽然口头上说是奔四的人了,但还总是觉得有很多的时间。我倒现在还清楚地记得大一的暑假,一天晚上从学生宿舍9号楼去8号楼超市买东西的时候,迎头碰到班长,他告诉我了我们班的一位女生因为车祸去世了,一车子的人只有她出事了,记得当时总觉得这不可能是现实,但的确班上从此就少了一位同学,我至今还记得她的一口东北普通话。
后来慢慢经历更多,先是大二的时候外婆过世,老妈不想耽误我的学业,在出殡那天才打电话告诉我,我完全没有想到大一寒假那次见到外婆居然是最后一面。我的爷爷外公都是在我父母小时后就过世了,而我的奶奶也是在我姐出生之前就过世了。想起来当年没有回去总是人生的憾事之一。
大学的时候偶尔也读读诗经和古诗十九首,记得其中有很多对于生死的感慨,印象很深的有“人生忽如寄,寿无金石固”,“人生天地间,忽如远行客”,“人生寄一世,奄忽若飙尘”,“人生非金石,岂能长寿考”等等。有些则是要及时享乐“不如饮美酒,被服纨与素”,有的则是“何不策高足,先据要路津”。只是年轻的时候读来总还是没有内心对时间紧迫的共鸣。
后来毕业工作了,先是我的二伯父癌症过世,去世前对我爸说不要太苦了自己,不值得,我的二伯是个很能干的人,和二伯母种了十几亩的田,整天忙碌不休息。再是2014年的时候大伯父癌症去世,我那年回去的时候大伯已经卧床不起了,算是见了最后一面,大伯父一生精明,养育了四个儿子和两个女儿,去世时候重孙子都好几岁了,儿女满堂人生无憾。之后就是大概一个月前大伯母过世,这个有些突然,年初回去参加我姐婚礼的时候大伯母还精神矍铄,没有想到那居然也是最后一面。
人生真的很短暂,我想我应该更加努力去实现自己的价值,也应该尽量多回去几次看望父母,多陪陪家人,多出去转转增加人生的阅历。最后还是以《普贤菩萨警众偈》作结。

如河驶流,往而不返,人命如是,逝者不还。
是日已过,命随减,如少水鱼,斯有何乐!
当勤精进,如救头燃,但念无常,慎勿放逸!

读书笔记(一): Soft Skills: The software developer’s life manual

上次提到了最近在看的Soft Skills: The software developer’s life manual这本书,感觉都还是非常不错和实用的建议,在有些地方还颇有共鸣。这本书共分为七个主题,每个主题大概10个章节,介绍了作为一个高效程序员的方方面面,这不是技术手册,是生活指南。今天来复习一下第一个主题关于职业发展 (Career)的一些建议。
第一个建议是要有自己思考,而不是简单去重复大多数人的选择。这里作者提到用不同的思维来看待自己的职业,那就试Business Mindset, 不是把自己看作一个普通的为公司服务拿工资的职员,而是把自己的职业发展看成为一个自己的Business, 工作是自己给别的公司提供的服务,而工资则是别的公司为自己的服务而支付的费用。这样职业的发展就是经营自己的Business, 进而去思考如何使自己的服务更有竞争力和建立关于自己服务的口碑。
第二个关于职业发展的建议,是建立明确的目标,并且细化到每个月,每周和每天的小目标,同时要记录实现的过程,反思和提高。
第三个建议是处理与人的关系。程序员这门职业绝对不是仅仅和电脑打交道写程序,实际上这门职业和大多数别的职业无异,是和人打交道,无论是客户需求的理解,团队的合作,开会,检查代码等等。所以学习和人打交道是非常关键的,这里作者推荐了那本著名的How to win friends and influence people书,这本书倒就是在我的书架上,需要仔细阅读并运用到实际中去。在这里作者提到了和人打交道的几个重要的方面,一是记住每个人都有被感觉到重要的需求,二是Never criticize, 指责是毫无用处的,在管理的实践中对正面行为的奖励比队负面行为的惩罚通常都更为有效。三是多换位思考,从对方的角度去理解问题,最后是避免争执,大部分不同的看法是不值得花费时间去争执的。
第四个是关于面试作者提出了不同于传统的建议,包括建立自己的口碑(Market yourself),比如写技术博客,而如果面试官读过你的博客,那么面试就会简单很多,然后是拓展自己的交际圈,主动去认识自己心仪公司的职员,这样得到Referal也会对面试有帮助。还有就是关于简历,作者建议雇佣专业人士去改进自己的简历,我倒不是非常认同。
第五个是理解提作为程序员的一些不同选择,雇员,咨询和创业,和它们各自的优点和缺点。接着作者比较了不同规模公司的优缺点,之后提到是专业化(Speciality)的重要性,这是让你和别人不同的重要的地方。
第六个是关于在公司晋升。建议包括积极Take responsibility, 包括注意被忽视的项目,帮助新同事ramp up, 把流程用文档纪录下来并保持更新等等。然后是Visibility, 包括纪录每天的活动给manager发Weekly report, 给组里面做Presentation,在会议中积极发言等等。接着是持续学习,不仅仅是学习关于软件的开发,还应该学习领导力,管理和商业相关的领域,并通过分享你学到的东西来提高自己的影响力。还有就是成为Problem Solvers,如果你能解决别人不能解决的问题,那么你就会成为公司中最有价值的人。最后是关于政治(Politics), 作者认为和别的比起来,这是最不重要的,仅仅通过此而得到的晋升是不牢固的,作者也提到政治是不可避免的,你至少应该知道在发生什么,什么样的人你应该避免接触,什么样的人你应该永远不打交道。
第七个是关于”Being a professional”,Professional有很多品质,包括有基本的原则,专注于做正确的事情,勇于承认自己的错误和无知,可靠,有责任感。成为一个Professional的关键在于形成良好的习惯,坚持做正确的事情,在必要的时候勇于说不,持续地寻找改进工作和自我的空间,永不止步。
接着的几个章节是关于辞职和开始为自己工作。包括做好经济上的准备,如何寻找目标客户,startup公司的大致发展轨迹。
最后作者强调了两个关键的态度,一个是”Fake it till you make it”, 这并不是去说谎和假装自己知道并不熟悉的领域和知识,而是一种面对问题的态度,一种发自内心的自信会让你更好地去面对困难的问题,或者更快地称为自己想成为的人。另一个是避免对技术的偏执(“Religious”),,这个其实很常见,比如网上常见的”Vi vs Emacs”, “C# vs Java”, “Windows vs Linux”等等,其实所有的技术都是好的,能解决问题的就是好的,而对于技术的偏执会限制自己的事业,所谓百害而无一利。
从自己的角度总结一下这个章节,那就是首先要不同的思维来看待自己的职业,明确自己的职业目标并落实到每个月每周每天的实际行动中,在日常工作中形成专业的态度,坚持学习,不断提高自我,特别是注意提高与人相处的技巧,避免无谓的争执,永远相信自己”Fake it till you make it”。经常反思自己的进度,持续改进。勉之!