计算机的学习就是面对三个问题走三条路。
第一个问题,冯诺依曼瓶颈。cpu,高速缓存,内存,文件之间巨大的速度差距,如何高效利用cpu。与之相关的是性能问题,也就有了FIFO算法。一切解决性能的方法都是这条路。计算机内存模型,java内存模型,多线程i++,数值并非预期。缓存一致性协议,读写锁,hashcode算法位运算,hashmap的容量为2的次方,数据库设计只要有范式。。。。等等等等。
第二个问题,红蓝军问题,也就是在信道不完全可信的情况下不可能设计出完全可信的通信协议。这条路上是各种协议,什么循环冗余检验,对称加密不对称加密,tcp协议,http协议,等等等等。
前两个问题都是面对计算机和网络的,第三个问题是面对人的。也就是满足高内聚,低耦合的代码才是人能看懂方便修改的代码,还能减少bug。这条路上就是7大原则,23种设计模式。
弄清楚了问题所在有利于我能理解解决的方法和常见套路。以后我会对三条路同时展开探索。欢迎大家关注我。