通过复现技术精通编程
你每天都在使用工具,却并不了解它们的工作原理。框架和库通过隐藏复杂性来帮助你快速工作。这会在你的知识体系中留下空白。
“从零构建某物”(build-your-own-x)的方法可以解决这个问题。你从头开始构建一个你所使用的工具的简化版本。你不再仅仅是使用技术,而是开始构建技术架构。
为什么这种方法有效:
它消除了神秘感。你不再把工具视为“魔法”。你会学习 Web 服务器如何路由请求,或者 Git 如何存储数据。
它能教授基础知识。构建服务器会迫使你学习 Socket 和 HTTP。构建哈希表(hash map)会让你了解冲突解决(collision resolution)。这些都是软件开发的基石。
它能提升解决问题的能力。当你从底层开始构建时,你无法直接从互联网上复制现成的解决方案。你必须拆解问题并寻找属于自己的答案。
它能建立信心。创建一个复杂的系统会赋予你处理更大规模项目的能力。
它能应用理论。你将课堂上学到的网络和算法知识转化为实践技能。
你可以从小处着手。选择一个工具,比如数据库或命令行工具,尝试复现其基本功能。