从大学开始的这将近十年的时间里,多多少少看了不少软件大类的书籍,今天就稍做下小感。
机械出身的自己自然学过不少机械相关的课程,当然也少不了画A1的大图(手绘),画完之后老眼昏花,顿感无爱。虽然机械CAD大幅提升了机械人的工作效率,虽然机械设计中包含了力学分析,但是不得不说总体而言,机械本身是一个可以看得见摸得着的行业。但是软件本身就是相对而言更虚无一些,无论是基础的各种编程语言,硬件芯片架构,硬件虚拟化技术,硬件管理技术,上层的app,对抽象思维思考的更高,这个基础上,相对而言,越底层就会越抽象。
读了这么多的软件方面的书,现在就来评头论足下吧。总体而言,国外的书比国内的质量要高上一档,一些晦涩难懂的东西,比如操作系统,有各种各样的角度和写法,可以从分析函数的角度,也可以从架构的层次写,也可以从具体的操作使用上进行说明,同样的角度之下,就会高低毕现。但是一个规律,就是写的好的人会将晦涩难懂的内容讲的通俗易懂,这可能就是理解的层次不同导致,通过现象看本质,领悟到质的层次才能信手拈来,触类旁通。就拿最近看的一本关于通信的入门书籍,大话无线通信,一般人很难理解的无线通信通过一个形象的部队红白对抗形象的表达出来,不得不让人心生佩服。操作系统里的诸多模块,内存,调度,驱动,网络,文件系统,每一个子模块里涉及到的技术也是层出不穷,如果不能理解透彻,拿到内核代码,简单举个例子,看到一个函数代码,一个结构体初始化之后,写了个for循环,然后循环N次退出,但是实际上此处要做的东西可能就是文件系统挂载之后扫描元数据信息对文件系统进行初始化。各种各样的内核机制的处理流程一般是非常长,这也是为什么内部在定位问题都是喜欢将处理流程以图画出来,疑点一个一个列出来,然后分别验证排除。之前狭隘的认为面向对象的思想只有在JAVA,C++这种面向对象的语言的专利,随着对内核研究的深入,发现其实内核很多地方都是用到了面向对象的思想,术和道的层次之差,也直接会影响到一个人的思维层次,技术类的内容学习可以经过外部架构简略-重点内容讲述其中之道,加以类比之法形象说明-局部内容启发性讲解-最后针对未来技术的发展趋势加以自己的思考,这应该也许是质量过得去的技术性书籍的写作之道。
聊以表达有感,先写到这里吧,大家五一节快乐