发布于 2026-01-06 0 阅读
0

想快速学习?那就不断地“重新发明轮子”。

想快速学习?那就不断地“重新发明轮子”。

软件开发人员的工作可以用两个词概括:不断演进,永不停歇。软件的本质决定了这一点,因为现代程序、应用和网站需要我们使用大量的抽象层和工具,而我们并非总能真正了解它们的工作原理。我们引入环境的每个工具或层都将开发过程的一部分抽象到其 API 之后,供我们使用。这是一个正常的流程,其巨大的优势在于,它使开发人员能够创建复杂、稳定且美观的应用程序和工具,而这些在几年前可能需要整个专家团队才能构建。然而,这种现象也存在一个我们必须意识到的弊端,尤其是在当今的互联网世界中。由于太多的流程和行为被抽象化,我们开始学习这些工具的 API,而不是编程本身。

大多数软件开发新手都是从 Web 开发领域起步的。起步阶段往往充满挑战和艰辛,而前端开发则是一个很好的起点,因为它能提供视觉反馈,并且对大多数人来说也是最有成就感的部分。在经历了编写计算器、使用循环管理数组或处理控制台输入输出等基础工作之后,能够如此迅速地创建网站会让人感到无比震撼。自然而然地,这种进步会引导新开发者接触到当今流行的 UI 库和框架:React、Angular 等等。

我们往往会忘记这些工具有多么强大,以及它们能极大地提升开发效率。一个合格的 React 开发者可以轻松地根据 Figma 设计文件,毫不费力地重现 UI 和交互效果。它们帮助我们处理 UI、更新状态、路由等等,并为此提供了相应的 API。为了尽快找到工作赚钱,许多经验不足的新手开发者纷纷涌向这些工具,由此引发了无数关于“哪个前端框架最好学”的争论。

这导致了一个常被忽视的后果:新开发者学习的是框架,而不是编程本身。他们学习工具的API以及如何使用它们,找到工作后,却发现很难跟上越来越复杂的代码库。编写用户界面并将其与后端连接通常效果不错,但当应用程序变得复杂到需要自定义状态管理、减少后端请求次数、将表示层与其他代码解耦,甚至需要将用户界面从一个库重写到另一个库时,问题就出现了。这不可避免地会给开发者带来挑战,暴露出能力不足,开发者也难以跟上进度。现代开发节奏的加快更是雪上加霜,使得开发者很难在全职工作和生活其他方面之间找到​​足够的时间和精力来开发个人项目。我认为大多数新开发者都会面临这个问题,包括我自己。这是一种我们都需要努力平衡的艺术。

软件开发并非易事,从大学课程到 Udemy 的教程,都需要付出大量的汗水、失败的项目和无数次的敲击才能掌握概念并完成工作。这引出了我这篇文章的标题:重新发明轮子。我经常听到这样的建议:“别再看教程了,想想自己的想法,然后开始动手做”,在我看来,这才是最佳的学习方法。但我还想补充一点——开始重新发明轮子,这将进一步加深你对代码库的理解。

也许你正在使用 RxJS 库来辅助前端项目的状态管理。它是一个相当复杂的库,需要花费一些精力才能理解其中的概念并熟练运用。为什么不尝试重新实现它的响应式原语呢?这比看起来要容易得多,而且新获得的直觉和理解将彻底改变你对 RxJS 的看法。这种实践带来的视角转变令人难以置信。“要解决问题,首先要了解它的工作原理”这句话并非空穴来风。也许你使用 Express 来编写 Node 后端应用程序。你是否曾经想过路由是如何工作的?在漂亮的语法背后究竟发生了什么?

理解底层机制的力量,能让你减少 bug,加快调试速度,甚至还能修改一些原本无法访问的行为。如果时间允许,我强烈建议你尝试解决工具集中的未知变量,即使只是重现其中最基本的部分,你最终也可能成为一名更优秀的工程师。

文章来源:https://dev.to/valentinkuharic/want-to-learn-fast-then-reinvent-the-wheel-all-the-time-4nfg