在软件工程中,有一种普遍的观点认为工程师只有在理解框架的内部工作原理后才应该使用它。这是一个谬论。
为什么我们必须了解内部工作原理——这些细节真的那么重要吗?有人可能会说无知是福。
汽车引擎
让我们来看看汽车的引擎:

有多少人真正了解引擎是如何工作的?
你能告诉我为什么它被称为四冲程引擎吗?
每个冲程做什么?
四冲程引擎和二冲程引擎有什么区别?
有人吗?
然而,我们仍然驾驶我们的汽车,而不考虑汽车如何将我们送到目的地。
我们通过方向盘、变速杆、油门踏板和制动器与汽车进行交互。
只要它能把我们送到目的地,谁在乎它是如何工作的。当汽车坏了,我们把它送给专家修理。
企业的核心竞争力

在商业中,一家公司拥有使其具有竞争力的专业知识。这被称为公司的核心竞争力。
核心竞争力可以是一个流程或一个产品。
为了保持竞争力,公司必须不懈地改进其核心竞争力。将资源用于支持公司核心竞争力以外的活动会削弱公司的竞争优势。这为竞争对手超越公司竞争优势打开了机会之窗。
这个想法最好用一个例子来说明。
苹果公司

苹果以其简洁性和美观的产品而闻名。你可能会认为这很容易复制,但事实并非如此,问问三星、HTC 和微软就知道了。
为什么这些公司失败了?因为简洁很难,而苹果在简洁方面是专家。
个人的核心竞争力

核心竞争力也可以适用于个人。
是什么让你与众不同?
为了发展你的核心竞争力,你必须在一个领域严格专注,有时长达数年,获得使你与众不同的见解和知识。
与企业一样,为了保持竞争优势,你必须不断磨练你的核心竞争力。
使用小块

软件工程师与公司或任何其他专业人士没有什么不同。我们必须精心选择我们学习的内容,以保持与我们核心竞争力的一致。
理解我们使用的每个框架的内部工作原理既不实用也很耗时。我期望框架的作者是该框架领域的专家,因此,我不需要知道它的内部工作原理。
这不正是软件的目的吗——使用黑盒功能块来生成更大、更复杂的工作?我认为是的。
最后,归结为专注和时间,两者都是有限的。
作者:Chuck Conway 是一位 AI 工程师,拥有近 30 年的软件工程经验。他构建实用的 AI 系统——内容管道、基础设施代理和解决实际问题的工具——并分享他沿途的学习成果。在社交媒体上与他联系:X (@chuckconway) 或访问他的 YouTube 和 SubStack。