最近逛知乎,看到一个很有意思的帖子。我想这可能是很多人的心声。
下面的观点也挺鲜明的:这是科班与培训班的区别。
只能说,太真实了。我上学的时候,就没学好组成原理。后来到工作中就发现,增删改查还可以,遇到点底层问题就懵逼,而那些基本功好的科班生,学新东西都很快,升职加薪更是轻轻松松。
我想,这也是一个人能否去大厂的一个区别。毕竟大厂都很看重基本功,尤其想做一名优秀的工程师,如果都不了解计算机是怎么工作的,程序在计算机中怎么运作的,那怎么行得通呢?
像我经常会收到一些粉丝的反馈:说升小领导接触更多项目后,感觉自己底层原理很弱,在编程的时候总有空中楼阁的感觉;有的说工作多年,竟然看不懂科班出身同事实现的数据序列化协议,太尴尬了;还有人日常搬运代码,遇到些网络或者数据库里的乱码、强制类型转换等等大坑,就懵逼了。
说白了,就是基本功出了问题。这也是为什么,很多人在工作两年后,反而回去补组成原理这些专业课知识。
而且,计算机领域的学科渗透和交叉很厉害,学点底层的东西,有一门精通,你找工作就很占优势。
作为计算机入门和底层知识的第一课,组成原理其重要程度,就和数据结构与算法一样,都是程序员必修的“硬核内功”。
要知道,它可以直接解决你在并发编程、性能优化中经常遇到的一些困惑,比如 CPU Cache 的原理是什么,CPU 和 I/O 之间是如何通信的,虚拟内存是要解决什么问题。可以说,你基本可以掌握计算机的全貌了。
我曾经下苦功,想好好啃啃组成原理,但概念多,太抽象,难理解,不好学以致用。资料我也看过不少,说句不好意思的,我大部分买来的书,都是前面 10 页已经发黄了,后面 500 页从来没有打开过。
只啃原理不行的,还是要与实际代码工作相结合,在这我分享一份,之前收藏的学习资料 —— 「组成原理全景图」,把零散的概念系统地整理在一起,建议收藏: