深入挖掘

在实践中,算法问题不会在大项目刚开始的时候就出现。然后,当突然之间程序员不知道如何继续下去或者目前的程序显然不恰当时,它们就作为子问题出现了。

——Steven S.Skiena,《The Algorithm Design Manual》(算法设计手册)

情景分析

在你生活的世界上,有严格的项目最终期限,以及使用多种工具的复杂软件项目。老板还不能奢侈到雇用足够多的专家来填充每一种角色。对每种工具,你只学习到足以完成今天的工作。你选择一些跟手头工作所使用的语言和库有关的教程。你没有花时间去理解问题就做出了决策,并复制了工具中附带的玩具示例。这套方法是有效的,你可以靠它们做任何东西。你获得了迅速投入到新技术中并很快拿出解决方案的能力。你只学到足以让你那一部分系统运行起来的那一部分技术,然后依赖团队中的其他成员去学习其他部分。比如,你是一名服务器端的Java开发者,因此对如何构建用户界面知之甚少。