分享

程序员:浮躁世界,我思考(2)

 行者120 2013-08-01

程序员:浮躁世界,我思考(2)

2013-08-01 10:03 佚名 http:// 我要评论(0) 字号:T | T
一键收藏,随时查看,分享好友!

我职业生涯起始的公司是神州数码网络公司(DCN)。如果将google或者twitter定义为『优秀』公司,那么,DCN显然处在平庸公司的行 列。好在DCN继承了老联想的底子,还有一批有理想的做系统的牛人。Z君就是这样一个人。

AD:2013云计算架构师峰会超低价抢票中

拥抱开源和自由软件,拥抱社区。

大学期间,我曾经是一个坚定的微软主义者:凡是微软推出的,我都拥护;凡是微软反对的,我都反对。直到毕业时,我还天真的认为C#就是我们这代程序 员的终极武器。S君及时把我从这种盲从中拉了出来,让我看到了一个不一样的世界。现在棱镜门事件的热度在渐渐褪去,但是,它让人们开始意识到 Richard Stallman的思想的重要性:开源软件关乎着人类的自由。遗憾的是(也许我不该这么评价),我的两任雇主,对开源软件的贡献要远小于其索取。

PHP和Python对于我所做的开发任务似乎毫无帮助,学习它们地目的是为了了解更广阔的世界,了解为什么最流行的软件会被用这样的语言开发出 来。为了更好的实践我的所学,我用PHP和Python做了一个工具:开发人员可以通过一个PHP撰写的web页面提交一项测试任务,后台的python 脚本拿到这个任务后会拉下指定版本的代码,编译,并将编译好的image传到直连的交换机上,然后开始运行测试团队提供的regression脚本。我的 工具带来的效率的提升引起了老板的重视,我被批准使用一台PC和两台交换机,组成一个完整的环境,供开发团队践行CI(Continuous Integration)。

在这个过程中,我发现了第三个答案:

能够通过自身所掌握的技术,不断提高自己和团队的效率。

容我再解释两句。一个真正的程序员,在那些每天重复低效的干活方式展现在你面前时,很难抑制住利用自己的技能做点什么改变现状的心情。工作中(当然 生活中也是),这样的低效比比皆是。比如说从X系统中定期导出一些数据到excel中做报表,比如说一级一级收集weekly report进行工作汇总。

这种低效在我工作过的第二家公司,Juniper,也广泛存在。

回顾我目前的整个职业履历,我在DCN工作了两年零两个月,在Juniper China R&D(CNRD)工作了五年半,在途客圈作为创始人和CTO工作了两年,然后回到Juniper CNRD工作至今。所以,作为雇员,我总共就工作过两家公司,因此,是否每家软件公司都存在类似的低效,我不得而知。但我觉得,工作中的低效场景无处不 在,问题在于有没有被发现,发现后值不值得为此做点什么。

4. (四)

冰球场上的对抗结束了,小家伙们离场休息去了。我松开手上的童车腕带,把脑袋凑过去,轻唤小宝的名字。小宝显然还全神贯注于冰场,被我这突然的举动 吓了一跳。当她惶恐地转过头来看到是我,便放下心来,微微笑了笑,又回过头去欣赏冰场上的运动。循着她的目光,我看到冰场上一个也就六七岁大的小女孩一个 人在认真地练习花滑。她的动作如此纯熟,姿态那么优美,让你几乎忘了她的年龄。我想,她大概这么练了有很长一段时间了吧。

看到这里我不禁想起在Juniper曾经跟Y君讨论过我们招人的准则。我不解为何我们不给年轻员工,甚至应届毕业生一些机会。Y君认为我们需要的是 专家,而某个领域的专家,根据研究,需要经过10000个小时的培养。我算了一下,假使每周四十个小时,一年五十周扑在某个或者某些特定的领域,那么,五 年的时间就可以造就一个专家。这也是为何很多公司对于senior的职位,都要求至少五至七年的相关工作经验。但现实是,在面试中,很多五年,甚至十年工 作经验的人都未必对得起自己逝去的年华。我曾经遇见过一个工作了8年之久的程序员,在提供了vim,gcc等编辑编译环境的情况下,连一个非常简单的链表 操作的程序都无法正确完成。这是怎么回事?

我查了查"10,000 hour rule"的原文,是这么说的 —— "it takes approximately 10000 hours of deliberate practice to master a skill"。

问题出在了"deliberate practice"上。

何谓"deliberate practice"?钢琴考级有九个等级,每个等级都有要求的技法和曲谱。这是一系列刻意设计的练习,每一个级别都比上一个难度大一些,但经过努力还是可 以掌握的。当你对车尔尼驾轻就熟后,可以尝试一点巴赫,也许也可以是贝多芬,但绝不能倒着来,也不能跳着来。跳着来意味着你当前的水平和期望的结果之间的 鸿沟太大,也许已经超过了单凭努力就可以到达的境地。

可惜软件行业鲜有这样的"deliberate practice",学校和培训机构也没有类似的体系。所以这个社会能够批量造就钢琴9级获得者,却无法批量培养出合格的程序员。很多拥有五年工作经验的 人,折合成有效的经验,也许就只剩一年,剩下的四年只不过在重复自己第一年的收获。这就好比一个人掌握了车尔尼《钢琴简易练习曲》后,还在刻苦反复练习相 同的内容,即使练到脱离曲谱信手拈来,又有何用?

想想我们的境地,挺悲惨的。没有合适的导师指引方向,没有成型的体系来培养专家。但是我们还得不断地学习,不断地更新知识。对于那些还尚未『开窍』的程序员来说,职业生涯就像《富爸爸穷爸爸》所谓的老鼠赛跑,在蹉跎中耗尽光阴。

所以自我救赎的最好方法就是不断地给自己增加挑战,让自己脱离舒适区域。具体方法是:用那些刚好超过自己能力的任务挑战自己,build(尝试) - measure(分析) - learn(学习总结)。然后不断重复。这是lean startup一书中建议的精益创业模式,同样也适用于这个场合。

不要去看那些多少小时或者多少天就能掌握XYZ的书。生命苦短,多读读大师的著作和文章,他们能让你跨越到新的台阶;多写代码,多写能让你有征服感的代码。

这就是我找寻到的第四个答案:

不断跳出舒适区,有目的地挑战自己。

让我倍感欣慰的是,在Juniper的这五年半时间里,公司提供了各种机会让我在三个不同的team里学习和掌握data plane,kernel,以及application。托L君rellocate到US的福,我还有机会lead一支团队,来践行我在 leadership上所学的理论知识。

冰场里依旧人声鼎沸。怕寒气把小宝冻着,我不敢在此过度停留,我把车推着往里靠了靠,坐在一张椅子上稍稍休息。小宝举着双手似乎在抗议,但当她发现从她坐着的角度依旧能看到冰场的一角时,就渐渐安静下来,双手自然搭在童车的护栏上。

说来好笑,就在我离开Juniper的前夕,L君主持了一场小规模的英文演讲训练,以此来提高manager们用英文当众发言的能力。我的主题就 是"Move yourself out of comfort zone"。后来偶然的机会,我遇到了同样也离开Juniper的L君,他说他那时就感到我要离开。我问为什么。『因为CNRD对你而言已经成为一个 confort zone,你只需不犯错误,静静等待,就能一点点向上爬,而这又和你的性格,尤其是你的演讲传达出来的感觉不同。』L君回答道。

想想也真是。我的性格里流淌着不安分的血液,它源自我的父亲。一九九三年,父亲只身前往海南和广东,像那个时代的所有朝气蓬勃的年轻人一样,希望能 够在改革开放的最前沿,寻找工作机会,潇洒走一回。和其他人不同的是,父亲当时已接近不惑之年,有家有口,还捧着医生这样一个金饭碗。如今我已过而立,晋 升为爷爷的父亲年逾古稀,在这个本该安享天年的时刻,仍然奋斗在第一线,业余时间还以编者的身份出了个人的第一部书,同时正在紧张地编撰第二部。父亲就是 我的榜样,能够全面超越他是我的一大理想(当然这也是一个达尔文主义者必须做到的,总不能一代更比一代差吧^_^),可惜至今我还未能完成这一理想。

    本站是提供个人知识管理的网络存储空间,所有内容均由用户发布,不代表本站观点。请注意甄别内容中的联系方式、诱导购买等信息,谨防诈骗。如发现有害或侵权内容,请点击一键举报。
    转藏 分享 献花(0

    0条评论

    发表

    请遵守用户 评论公约

    类似文章 更多