如果只拥有表面知识,另一种可能的后果是:你会永远意识不到自己正尝试解决的问题要么已经有了众所周知的解决方案,要么根本是不可能的(在后一种情况下,会有大量的学术论文讨论它为什么不可能,以及如何将它重新定义成一个可解决的问题)。如果浅尝辄止,你就了解不到自己所不知的东西;而不知道自己的知识边界,你也无法发现新的东西。洞穿一个问题所有层面的过程常会揭示一些来自计算机科学的基础概念。虽然计算机科学家的工作看起来不切实际,但那些能将最先进的理论运用到现实问题中的人将有能力做出其他人觉得不可思议的事情。选择一种不同的算法或数据结构,一个原本运行几个月的批处理任务将变成一件在用户松开鼠标按钮之前就已经结束了的事情。只知道List、Set和HashMap的人不太可能意识到他需要用Trie来解决自己的问题。相反,他只会觉得像最长前缀匹配(longest-prefix matching)这样的问题难得无法想象,然后要么放弃,要么去问可不可以降低这项特性的优先级。


    —— 《软件开发者路线图——从学徒到高手》