上周在网上买了三本书
深入理解计算机系统
the c programming language
和unix环境高级编程
初衷是为了能够希望这些书帮助我读懂tcp/ip协议详解 第二卷的实现部分.
因为unix的代码基本上都是c语言写的,另外还涉及到系统堆栈等底层结构.
后来发现当前工作中的内容很多都是和系统底层有关的,
例如 java的socket的数据缓冲区大小的设置,为什么1500byte是个比较恰当的数值.
java的tcp协议的数据传输是基于流的而udp是基于包的,为什么要这样设计和实现.
实际上这两个问题和java语言一点关系都没有,而是和网络协议和操作系统密切相关的.
为了写出更好的代码,就需要理解这些内容.
虽然现在自己的身份是java开发工程师,但是却对操作系统产生了很浓厚的兴趣.
大学时候虽然也学过c语言,汇编语言,计算机体系结构和操作系统.
但是那个时候怀着成为优秀j2ee工程师或者架构师的梦想,
对这些课程所了解的程度只是考试通过而已,
其中的操作系统好像还逃过进一半的课时,理由很简单不喜欢学院的教学态度.
现在回想一下,实际上是自己当时太任性,太轻浮.
现在又何尝不是能.
什么都期望能够速成,全世界的人都期望二十多岁就能获得事业上的成功.
记得不久前看了一本书,里面谈到
人们可以拥有相同的目标,但是不可能拥有相同的精神.
时常想起这句话,进行自勉.
要经历一个从无到有的过程,技术发展如此,个人成长也是如此.
总是有一些精神贯穿其中,起到推动的作用.