一、把《程序是怎么跑起来的》这本书看了120页左右
这本书写的非常好,让初学者可以很好的入门,在讲CPU的时候,撇开了一些细枝末节的东西,直接讲几个比较重要的寄存器,这个特别符合程序员的视角。大部分这方面的书籍都是从CPU开始,从加法器控制器开始讲,讲硬件构成,逻辑电路的实现。其实对于程序员来说,只要使用硬件封装好的功能就好,不必太纠结实现的细节。
书中的程序是用c实现的,我用Java重新写了一下,前面几个都不用动脑筋,就是那个浮点数的输出费了点脑筋,源程序用的memcpy函数,java里面没有这种直接拷贝内存的函数。实现的代码如下:
public class fTest {
public static void main( String args[] ) {
int BitRep = Float.floatToIntBits(0.75f); //Bit Representation of the Float
for(int i=31; i>=0;--i){
System.out.print((BitRep&(1<<i)) == 0 ? "0" : "1");
if(i==31||i==23)
System.out.print("-");
}
System.out.println("");
}
}
二、对于计算机教育的思考
很多人都觉得计算机的课程学起来比较难,先不说入门的语言等,就说计算机组成原理和计算机网络这两门课程,很多人都觉得空洞又琐碎,不好学,我个人感觉有两个原因,一个是基础的科普知识和实践经验不够,二是学习时候没有正确的学习路径。
我自己由于有计算机和网络的实践经验,所以学起来就要相对容易一些,所以这个的补短办法是多看一些科普书和多动手折腾。再有就是学习路径的问题,网上有很多很好的视频课程,可以看,比光啃书本强,另外相应的实验书和习题书要买要做。
三、发现了一个非常好的科技书的译者
我以前看文学书有一个习惯,就是看到某个作家好,就会把他的所有书籍买过了,一次性读完,这次看到了周自恒翻译的一些计算机书质量非常好,我以前有一个观点,就是译者也是可以做成IP的,计算机的初学者,可以把他的一些译作拿过来阅读以下,补充一些基础知识,真的会对后期的学习带来益处,而且这种阅读非常休闲,看着读了一大堆,慢,其实在你后期其他知识的理解时,却发现快了。京东上搜索他的名字,可以搜出不少,可以读读看看。