Loading

《软件开发者路线图》摘录

快速学习的人们面对的主要风险之一就是变成小池里的大鱼。尽管小池塘和大鱼本身都没有错,但有必要让大鱼知道在全球的池塘网络中还有其他的池塘,这非常关键。更重要的是:大鱼还要知道巨型鱼的存在,那些体积甚至超过池塘大小的大鱼。

聪颖而且努力的学徒千万不要对自己的成功自鸣得意。在软件开发领域,超越平庸是很容易的,因为有太多的人只超出平均曲线一点点就开始满足了。你必须去追寻那些技艺精湛、学徒甚至无法想象其水平的其他团队、组织、熟练工和师傅,向他们学习,以此来抗争趋于平庸的倾向。



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

posted @ 2021-11-24 20:24  飨宴  阅读(71)  评论(0编辑  收藏  举报