You cannot select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

56 lines
7.3 KiB
Markdown

This file contains ambiguous Unicode characters!

This file contains ambiguous Unicode characters that may be confused with others in your current locale. If your use case is intentional and legitimate, you can safely ignore this warning. Use the Escape button to highlight these characters.

# 结束语 | 知也无涯,愿你也享受发现的乐趣
你好,我是徐文浩。伴随着无数个不眠之夜,“深入浅出计算机组成原理”专栏终于来到了结束语。
去年11月份极客时间找到我我开始构思这个专栏。本以为今年4、5月份就能把专栏写完。结果一方面因为创业过程中时间总是不够用另一方面写出有价值内容的并不是一件容易的事情直到9月10号的凌晨我才写完这最后一篇结束语。原本计划的45讲也在这个过程中变成了近60讲。现在回过去看写这个“深入浅出计算机组成原理”专栏是一个远比想象中要困难的挑战但同时也是一个有趣的发现之旅。
## 完成比完美更好
Facebook的文化里面喜欢用各种小标语其中有一条我很喜欢“Done is better than perfect”。翻译成中文就是“完成比完美更好”。写这个专栏的时候我对这一点的体会特别深刻。在学习更多深入知识的时候我希望你也可以抱有这样的态度。
在初期构思专栏的时候,我期望写成一个完美的专栏。不过随着时间的推移,我发现其实并没有什么完美可言。
一方面,组成原理的知识点很多,如果每一个都写下来,没有个一两百讲怕是讲不完。更何况有那么多大师的教科书珠玉在前,只是做解读知识点、覆盖已有的知识点,我觉得价值不大。思来想去,我希望尽可能找到最重要、最核心的知识点,以及能和大多数工程师日常工作有结合的知识点,希望能够从应用中多给你一些启发。
另一方面写专栏和我们写程序一样都是有deadline的。无论是在系统发版之后的午夜里还是去美国出差的飞机上乃至偶尔忘带了录音笔的时候总是要打起精神想尽方法写出一篇让自己满意的文章来。同时也有不少同学给我挑出了错漏或者不准确的部分一起把这个专栏打磨地更“完美”。
不知道正在读结束语的你有没有在过去5个月里坚持学习这个专栏呢有没有认真阅读我每一节后的推荐阅读呢有没有尝试去做一做每一讲后面的思考题呢
如果你能够坚持下来,那首先要恭喜你,我相信能够学完的同学并不太多。如果你还没有学完,也不要紧,先跟着整个课程走一遍,有个大致印象。与其半途而费,不如先囫囵吞枣,硬着头皮看完再说。**新的知识第一遍没有百分百看懂,而随着时间的推移,慢慢领悟成长了,这才是人生的常态。而我所见到的优秀的工程师大都会经历这样的成长过程。**
我们这个行业,经常喜欢把软件开发和建筑放在一起类比,所以才会有经典的《设计模式》这样的书。甚至有不少人干脆从《建筑的永恒之道》里面去寻找灵感。然而,建筑能够在历史上留下长久的刻印,但是软件却完全不同。无论多么完美的代码都会不断迭代,就好像新陈代谢一样。几年过去之后,最初那些代码的踪影早已经没有了。软件工程师放弃了追求永恒,而是投身在创作的快乐之中。
希望在日后的学习过程中,你也能抱着“日拱一卒、不期速成”的心态坚持下去,不断地学习、反思、练习、再学习,这样的迭代才是最快的成长之路。
## 知也无涯,愿你享受发现的乐趣
说实话,从构思到写作这个专栏,这整个过程对我来说,还是有些忐忑的。组成原理是一门离大部分工程师的日常工作比较远的话题,却又是一个很多经典教材会讲的主题。“到底从什么角度去切入讲解”,我在构思文章的时候常常问自己。
组成原理其实是一门类似于“计算机科学101”的课程固然我可以在里面讲VHDL这样的硬件编程语言不过说实话这样的知识对于大部分的人意义并不大。我期望能够通过这个专栏让你体会到计算机科学知识是真的有用的能够让你把学专栏的过程变成一个发现之旅。
比如在学习HDD硬盘原理的时候你能知道为什么用它来记录日志很好但是拿来作为KV数据库就很糟糕在学习CPU Cache的时候你实际用代码体会一下它有多快为什么Disruptor里面的缓存行填充这样的小技巧能够把性能发挥到极致。
除此之外,撰写整个专栏的过程,也是我对自己的一个发现之旅。
虽然在过去开发大型系统的时候,已经体会到掌握各种计算机科学基础知识的重要性,但是,这个专栏还是给了我一个系统性地、对基础知识回顾和整理的机会,在忙碌的日常工作之外,在离开学校那么多年后,重新把基础的理论知识和实际的系统开发做了一一印证。
在这个过程中,对我自己是一个温故而知新的过程,我自己新学到不少过去不了解的知识点,也因此重新找到了很多新的技术兴奋点。乃至在专栏写了一半的时候,我特地在出差的空隙跑了一趟计算机历史博物馆,去感受创造新事物的那种激动人心的感觉。
不过,在这整个过程中,我也深深体会到了内容创作的难。
过去这10个月里持续地写稿、画图、写实验程序在编辑的反馈下再改稿和录音对我也是一个全新的体验。没有思路、时间不够、工作和写稿压力太大的时候抓狂、发脾气、骂人都发生过。如果没有编辑在背后一直督促着只靠自律我想我无论如何也不可能写完这样一个规模的专栏。
但是,我相信只有不断地逼迫自己走出习惯的舒适区,去尝试、体验新的挑战,才会进一步的成长。而很多未来的机会,也孕育在其间。就像史蒂夫·乔布斯说的,我们未来生活的可能性就是靠这些点点滴滴串联起来的。
也许你今天只是在学校写简单的课程管理系统可能会觉得有些无聊。抽一些时间出来去了解计算机科学的底层知识可能会让你找到求知的乐趣无形中这也为你去解决更有挑战的问题做好了铺垫。就像我自己在过去研究底层的数据系统、写技术博客的时候也没有想到会有机会写上这样一个20万字以上的专栏。
就像罗素说的那样,“对爱的渴望,对知识的追求,对人类苦难不可遏制的同情,是支配我一生的单纯而强烈的三种情感”。
我希望,在学习成长的过程中,你能够摆脱一些功利性,不用去回避遇到的痛苦和挫败感,多从这个过程中找到获得知识的快乐。
希望这个专栏能够给你带来发现的乐趣,也能够为你在未来的生活里铺垫上那小小的一步。相信这个专栏不是你学习的终点,也也不是我探索和发现新主题的终点。说不定,在不久的未来我们还会有缘再见。
对了我在文章末尾放了一个毕业调查问卷。在这5个月的学习过程中如果你对这个专栏或者我本人有什么建议可以通过这个问卷给我反馈我一定会认真查看每一封的内容。期待你的反馈
[![](https://static001.geekbang.org/resource/image/9a/9b/9a6d167383d98db7d72770ba07f8009b.jpg)](https://jinshuju.net/f/Nurf3L)