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.

80 lines
8.7 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.

# 用户故事 | 赵文海:怕什么真理无穷,进一寸有一寸的欢喜
大家好我是赵文海一名Android开发仔坐标北京目前工作刚满一年在这里分享一下自己学习“深入浅出计算机组成原理”专栏的心得。
## 为什么要学计算机组成原理?
一直以来我心里都有一个念想,就是好好把计算机基础知识补一补,原因有两个。
第一,我不是计算机专业的,如果连基础知识都不熟悉,那怎么与科班出身的同事交流呢?虽然我目前的工作主要是在业务层进行开发,涉及基础知识的场景其实并不多,但是,既然我要在程序员这个行业长久地走下去,我觉得自己还是有必要补一下基础知识。
第二,虽然现在各种新框架、新技术层出不穷,但它们的根基其实还是那些基础知识。我们每个人的精力有限,整天追随这些“新”的东西,在我看来并不是一个很明智的选择。相反,正所谓“磨刀不误砍柴工”,如果我把先基础知识掌握好,那学习和了解那些应用层的框架应该会更容易一点。
所以我给自己设定了两个学习方向一是深入学习移动端开发相关技术比如学习Android 系统知识、深入了解一些框架、接触 Flutter 这类跨平台技术;二是学习计算机基础知识,然后再随着工作慢慢深入去学习移动端开发技术。
正好那时候极客时间出了很多基础课程,比如王争老师的“数据结构与算法之美”、刘超老师的“趣谈网络协议”等等。我是先从数据结构与算法开始学的,后面又学了一些网络协议的知识,然后才开始学习徐文浩老师的“深入浅出计算机组成原理”。
我记得徐老师在开篇词里写过这么一段话:
> 正所谓“练拳不练功,到老一场空”。如果越早去弄清楚计算机的底层原理,在你的知识体系中储备这些知识,也就意味着你有越长的时间来收获学习的“利息”。虽然一开始可能不起眼,但是随着时间带来的复利效应,你的长线投资项目,就能让你在成长的过程中越走越快。
这段话和我的想法不谋而合,也给了我极大的鼓舞,我学习基础知识的决心也更加坚定了 。
## 我是怎么学习专栏的?
刚开始看的时候,专栏已经更新了二十多讲,但我没有想要赶快跟上老师的步伐,就希望自己每天都能坚持看一讲。
我一般都是在晚上下班回家后看专栏,也有时候是早上到公司后,因为住的地方离公司比较近,还有时候一个人出去坐地铁也会拿出来看一会儿。
最开始由于我过于自信了,我想着只是把文章看了一遍就可以了。后来过了一周,我发现看完的东西,很快就没有印象了。我当时就想,这样可不行啊!不知道你是不是经常有这种感受,费很大劲搞懂的东西,结果因为只看了一遍,没有及时复习,很快就又忘记了。于是,后面每篇文章,我至少都会看两遍。第一遍认真阅读思考,第二遍、第三遍作为复习巩固。
另外,学习这个专栏时我没有做笔记,因为我觉得老师的文章不长,而且言语足够简练,没有必要自己再提炼一次。毕竟我每天都会打开极客时间,如果碰到哪里想不起来了,就直接再看一遍文章就好了,也花不了多长时间。
当然,记不记笔记是个人喜好,如果时间充裕,你也可以选择通过做笔记来加深印象。极客时间的划线笔记功能也是极好的,看到有问题或者非常好的地方,直接记录下来,方便以后查阅、学习。
就这样,保持一天一节的速度,慢慢我就赶上了老师更新的步伐,后面的文章基本就是更新当天就看完。
虽然进度跟上了,但是老师文章后面附的书籍我目前并没有去读。作为一个非科班出身的工作党,平时时间并不宽裕,掌握老师每一节的主要知识,已经挺不容易了。
这里特别说一下,徐老师每篇文章下的推荐阅读,是我个人最喜欢这个专栏的地方。徐老师每次都会在文章结尾列出相关书籍的对应章节、相关的博客或论文,这为我后面深入学习相关知识提供了很大的便利。
因此,关于这一块内容我是这么打算的。我准备学完第一遍之后,仔细去读一读老师推荐的书籍。这样有了第一遍的铺垫,读起老师推荐的书和论文,不至于那么困难和恐惧。读书的时候还可以结合书中内容再复习一遍专栏,到时候肯定会有新的收获。毕竟,基础知识的学习是一个**长期积累、慢慢参悟、螺旋上升**的过程,我已经做好了打持久战的准备。
## 学习专栏有什么收获?
徐老师的文章长度适中、图文并茂、言简意赅。在解释一些名词和概念的时候,徐老师经常拿生活中我们熟悉的事物来举例。我觉得这一点非常好。
比如,他把电路组装看成“搭乐高积木”、把动态链接比喻成程序内部的“共享单车”、把总线比喻成计算机里的“高速公路”,这很容易让我这种非科班的同学,对陌生概念迅速建立起一个初步印象。当然,能把概念解释地如此清晰和“接地气”,也反映了老师的深厚功底。
通过专栏的学习我对计算机的CPU、内存、I/O设备以及它们之间的通信有了初步的了解。
另外,像 GPU、TPU相关的章节也让我开拓了眼界比如 GPU 那一节老师就讲到了计算机图形渲染的流程,这些知识是我之前从未接触过的。
同时,专栏还有很多很实用的章节,比如讲 CPU 的高速缓存时,讲到了 Java 中的 volatile 关键字的作用,这些都可以直接运用到实际的工作或面试中。
不过,除了计算机组成原理的知识外,我还有其他的收获,在我看来这些收获甚至比那些知识还重要。
首先,就是克服了对于基础知识的恐惧。
我之前觉得基础知识是晦涩难懂的,像计算机组成原理、网络协议、操作系统,这些课听起来就觉得很难。开始学习之前,心里总是怕自己理解不了或者坚持不下来,但是通过学习专栏,我发现它们并没有想象中那么可怕,很多技术灵感其实就是源于我们的生活实践。先去学,然后慢慢就能发现其中有趣的地方。
比如CPU分支预测就和我们天气预测有相似之处。文章里穿插的历史知识也让我意识到这些知识虽然看似高深但也是无数前辈经历很长时间、很多次失败才慢慢积累下来的学习这些知识就是站在巨人的肩膀上体会他们思考和实践的过程。
还有就是,我意识到了持续学习的重要性。
徐老师在第2讲时写过“**我工作之后一直在持续学习,在这个过程中,我发现最有效的方法,不是短时间冲刺,而是有节奏的坚持**。”我对这句话真是深有感触,所以一直记到现在,估计你也是吧?
## 总结
通过专栏的学习,我确实收获了很多,真的非常感谢徐文浩老师的付出,也感谢极客时间推出了这么多实用的基础课程。
其实,尽管毕业之后工作才半年左右,但是我的心里其实挺焦虑的,主要是担心自己在如此快速的技术变革中,跟不上变化,慢慢被淘汰。在这个过程中,我也思考了很多。通过学习专栏,我的焦虑情绪也化解了很多。在这里我也想说说我对于焦虑的看法。
我觉得人之所以会感到焦虑,是因为有上进心,说白了就是觉得自己不够好。这其实是一件好事,正是因为觉得自己不够好,我们才能产生变得更好的想法,进而找到变得更好的方法,所以我们要正确看待焦虑这种情绪。而**缓解焦虑的方式很简单,就是行动。担心自己长胖,那就去锻炼;担心自己被淘汰,那就去学习。**
我特别喜欢胡适说的一句话:“怕什么真理无穷,进一寸有一寸的欢喜”。
用这句话与各位共勉吧,希望我们都能抱着长线投资的心态,坚持下去,和时间做朋友,不要急躁。虽然学完这些基础知识,老板也看不到,短时间内也不会加薪升职,但我相信,它们会在未来的某个时间回馈你,让你知道现在的决定是正确的,现在的付出是值得的!
好了,我想要分享的内容就是这些,不知道你学习这个专栏的过程是怎样的呢?有没有什么独特的学习方法和心路历程呢?欢迎你写在留言区,我们一起分享,相互鼓励,共同进步!