解决方法

采取措施来保护并培养自己对软件技艺的激情。

要成为熟练工,你需要拥有对软件技艺的激情。不幸的是,你每天的活动常常使这种激情减退。你可能面对着混乱的企业等级制度,向着死亡前进的项目,满嘴脏话的经理,或者玩世不恭的同事。处在这种恶劣的环境中,你很难培养自己的激情,但你可以采取一些基本的行动来维持它。

做点自己喜欢的事情。从工作中找一些让你感兴趣的东西,确定它确实是你喜爱的,然后让自己投入其中。如果工作中你不能腾出足够的时间来做这事,考虑安排一点额外的时间。如果这不可行,抽点工作外的时间来构造一些“质脆玩具”吧。

在命名为“伟大黑客”(Great Hackers)的2004年O'Reilly开源大会(O'Reilly's Open Source Convention,OSCON)上,Paul Graham做了一次演讲,他说:“成为伟大黑客的关键在于做自己喜爱的事……要把一件事情做好,你必须热爱它。所以,只要你能坚持对编码的热爱,到了这种程度,你就会做得很好了。”

找一些“同道中人”。加入一个关注你要深入学习的某样东西的本地用户组。开一个博客,阅读一些你感兴趣的博客。参加在线论坛和邮件列表来“分享所学”。启动一个使用“知识消防栓”(Knowledge Hydrant)模式语言的学习小组,这一模式来自Joshua Kerievsky的论文"A Pattern Language for Study Groups"(针对学习小组的模式语言)。[1]

“钻研名著”。当你的激情陷入危险处境时,可以让自己沉浸到软件开发领域的杰出作品中,这可以帮你越过难关。这些永恒的书籍能打开你的视野,让你看到不同的世界,一个一切可以变得更好的世界。

“自定路线”。有时你的需要、目标和抱负会跟老板提供给你的职业道路相抵触。可以考虑换到一个新的、能提供适合自己的职业道路的组织,这样可以保护你的激情。

项目死亡行军(project death march)是最具破坏性的恶劣条件。当面对向着死亡的行军时,很难想象如何保护自己的激情,更不要说培养它。它会耗尽你的时间和精力,使你不能采取任何有效行动来保护自己的激情,因为有更重要的问题——比如个人的健康状况和紧张的家庭关系——需要你去关注。死亡行军非常迎合许多软件开发组织中流行的个人英雄主义思想。行走在“漫漫长路”上的人们并不是短短几年冲刺然后燃尽自己的英雄——他们是在几十年的时间里保持可持续的节奏,并不断前进的人们。

要培养自己的激情,需要设置一个清晰的界限,基于这个界限来定义你愿意身处其中的工作环境。这或许意味着你早早下班而团队的其他人加班到很晚,你退出一次恶言相向的会议,你将一次玩世不恭的谈话导向充满建设性的议题,或者你拒绝分发没有满足自己最低要求的代码。结果可能是你在加薪升职名誉声望方面被忽略了。但是,如果你希望打破恶劣的条件并保持自己的激情,这些界限就是必需的。

Paul Graham在他的OSCON演说中继续说道:“要保持你在14岁时对编程所抱有的新奇感。如果你担心现在的工作正在让你的大脑腐烂,那它很可能确实是。”

有些旅行者的职业、生活与其通往技艺精通的道路是吻合的,他们是幸运的;其他人必须在常规的工作时间之外找到时间和空间做点自己喜欢的练习,这会带来精湛的技艺却不会提供生活的薪水。

——George Leonard,《Mastery》(精通),第133页

[1]http://www.industriallogic.com/papers/khdraft.pdf.