造轮子学原理

《精益创业》这本书里有一个概念,叫 MVP(最小化可实行产品,Minimum Viable Product),意思是用最快最简明的方式建立一个可用的产品原型,通过这个最简单的原型来测试产品是否符合市场预期,并通过不断的快速迭代来修正产品,最终适应市场需求。

对于程序员来说,如何扎实掌握计算机底层知识,从容应对层出不穷的技术挑战?刷题背面试题是一种方法,读书写博文也是一种方法。但我个人认为,学习的最好方式还是「造轮子」。

我们可以利用 MVP 的思想,在学习了相关的领域知识后,造一个精简(jiǎn lòu)的轮子,比如说:

  • 学习完计算机图形学,从零造一个软光栅化渲染器,搞清楚 OpenGL 等底层库的工作原理
  • 学习完光线追踪,从零造一个光线追踪渲染器,从源头上搞懂光线追踪算法依据
  • 学习完编译原理,实现一个属于自己的编程语言,编译器前端后端都手写一遍
  • 学习完计算机网络,自己实现一个 TCP 协议栈,后续上手套接字编程再也不虚
  • ......

如果你学过一些国外的经典计算机公开课,就会发现很多课程都是这样实现的:课上讲理论,课下造轮子;课程学完后,一个精巧的轮子也就造好了,这种教学方式无疑比国内 PPT + 刷题的常规组合优秀的多。


鉴于网上有这么多的优秀资源,这个「造轮子学原理」专栏必定是站在巨人肩膀上完成的。个人开这个专题也是学习为主,而不是简单的汉化大牛的教程(我也没有那么多时间和精力),主要记录造轮子过程中碰到的疑难杂症,如果你也在学习相关领域的内容,我想这个系列应该会对你有所帮助。





一个小尾巴

欢迎关注公众号:卤蛋实验室:专注于前端技术、混合开发、图形学领域,只写有深度的技术文章