Tools
人类创造和使用工具的能力将我们的发展推向了远超其他物种的高度,使我们成为地球的主宰。一个著名的观察指出,尽管人类在跑步方面的能量效率远低于其他动物,但自行车的引入却显著超越了任何动物的能量效率。这个例子深刻阐释了“工具即效率”的理念:在我们有限的时间和能量内,对工具的恰当使用决定了我们能达到的高度。
工具种类繁多,主要围绕着人类作为操作者的需求而设计,强调了我们在其使用中的主导作用。因此,对工具的认知至关重要。例如,不同文化的饮食习惯各异——有的地区使用筷子和勺子,有的地区则使用叉子、刀具,甚至直接用手。这种多样性表明,我们的双手不仅是与世界互动的重要工具,也在这篇文章的创作中发挥着关键作用。
作为软件开发者,我们面临着琳琅满目的工具选择,从Vim、Emacs、VSCode等编辑器,到Java、Python、JavaScript等编程语言,以及各种框架、算法、编码标准和测试指标。每当完成一个项目,在经历了一系列选择之后,我们不禁会问:这些工具真的是最佳选择吗?
我个人倾向于学习基础但 多功能的工具,以实现尽可能多的开发目标,这似乎是最佳选择。以筷子为例,其设计原理简单却高度实用。它们不仅能夹取食物,还能完成多种任务,例如切鱼或拾取难以抓握的物品,展现了工具设计的巧妙。然而,即使是这样的工具也需要适当的技巧才能有效使用。这恰好印证了“一次性投入,终身受益”的理念,一副筷子就能满足各种东亚菜肴的需求。尽管如此,对于某些食物,像叉子和牛排刀这样的专业餐具显然更适用。
面对不断增加的编程语言、框架和工具,选择困难的根源在于我们难以消化如此庞大的信息量。但作为个体,我们真的需要掌握所有这些工具吗?没有它们,我们就无法开发出优秀的软件吗?我认为并非如此。通常,一台电脑和VSCode这样合适的编辑器就足够了。需要什么就学什么。这种方法虽然可能有些短视,能够快速学习和适应,但也可能导致后悔没有及早选择更好的架构,就像我曾三次重构我的个人网站一样。然而,我从中又学到了什么?这些经历真的有益吗?这些都是我经常反思的问题,但它们作为思维锻炼仍然具有价值。
让我们在有限的时间和生命中,快速迭代产品,并以螺旋式上升的方式不断前进,这或许是达到更高境界的正确路径。