六月是一年中承上启下的月份,而对我而言,这个六月也有重要的转折性意义——告别了四年的大学生活,领到了第一张毕业证书,接受了第一份真正的工作,又从温杭辗转到了上海,种种事情,或大或小,却是让我一直觉得自由和幸运。
但是除此以外,其实很难有更多怀念的话了,如果非要盖棺定论的话,只能说四年的大学总归没有虚度。从小技术团队的小项目开始,再到后面自感能够独当一面的管理和开发项目,闲暇之余也不忘学习和充实自己,同时也在这些过程中接触了各种各样的人,所谓生活,真是磨人的事情呀。其实也很庆幸毕业前的急流勇退,离开了待了几年的团队,又花了两个月时间好好补偿了下自己往常忙碌的生活,再之后则是去了博客园度过了难忘的实习经历,一直到现在的医疗智能领域,环境始终在变,而自己的初心却一直是向往着自由的,这点就已经让我觉得生活对我是如此优待。
感谢所有帮助过我的人,亲人,老师,朋友,以及博客园的诸位同事。
到六月底为止,新工作入职将过半月,我已经重新感受到了久违的工作热情,喜爱的 .NET CORE 技术栈,流行的 DevOps 环境,无论是因为来自氛围的鼓励,还是因为发自内心地想要满足自己,这都是一件值得开心的事情。而在工作作息上,朝十晚六也令我相对满意,至少照顾了我的早起困难综合症不是吗。公司也没有所谓的加班文化(其实应该也是工作刚刚开展的缘故,不过还是需要考虑综合效率),所以晚上也能有更多的时间做自己喜欢的事情——看书,编码,偶尔吸几口守望,这都是令人满意的。
“但是不顺心的事情有吗?”
这样问自己的时候,好像过了很久才听到回复——pct呀pct,不要一直吃外卖了,多自己做饭吧~!这些话当然只是玩笑,只是一时间确实很难想起让我觉得阴翳的事情,兴许只有没有把免费的健身卡利用起来才算了。古人云书非借不可读,卡非办不会去,果然诚不欺我。如果非要加一件,就应该是这一个多月都没有好好地更新博客了。不过我保证(对自己的保证),在下半年我会尽可能地发光发热,尽可能地以博客的形式把知识记录下来,分享出去。
啰嗦地讲了一些无关紧要的事情,最后按照惯例来推一本书吧(以后每个月都会有推书的文章,所以原谅我用上“惯例”这个词语)。其实自从去年年中 kindle 遗失以后,我就变成了一个比较喜欢买书的人,而买书应该也算是像我这种普通人最实惠的购物方式之一了。所幸的是京东和当当的活动都挺多,一次买个四五本到也不会觉得心疼(消化的速度其实只有四分之一,惭愧)。这次要推荐的书是 Charles Petzold的《编码:隐匿在计算机软硬件背后的语言》,这个老头可是 Windows 系统上的编程大家,著名的《Windows程序设计》,严格说起来,他也算是 C# 开发者的祖师爷。
题目既然是编码,顾名思义,这本书是一本讲述计算机组成原理的书籍,可能一些人看到所谓的“计算机组成原理”便十分地害怕,其实在这本书中,Petzold 是用一种十分生动易懂的方式将CPU和存储器的原理表现出来的。在书籍的中段部分,作者带领读者用前段讲解过的最基本的逻辑门电路逐步组装出了一台“计算机”,虽然它只具有简陋的CPU,存储器以及相应的控制部分,但是至少它是完整的。更加难能可贵的是,重要的指令机制和寻址概念,以及为什么使用二进制作为计算机底层语言和存储实现的问题,Petzold 都在这个过程中做了详实且白话地解读。
严谨的实验和概念上的白话,使得《编码》与同类书籍比较时(比如深入理解计算机系统),能够让读者自然而然地了解到它的阅读门槛十分的低。当然,与此优点相对应的是,由于篇幅所限和内容上的分类,它不能像其他书籍那样做到面面俱到的讲解,现代的计算机体系以及将这些概念发散扩展了,或者说细分了很多,但是在《编码》这本书中,CPU便是CPU,存储器便是存储器,并没有深入地讲解,总线部分也只是一笔带过。而在Petzold那个时代主流的微机8080或者是CP/M操作系统也未免稍显过时了(当然基础概念还是相似)。
接下来简要介绍下《编码》的内容结构。
《编码》全书二十五章,按主题可以分为三部分。从第一章的“至亲密友”到第十章“逻辑与开关”,Petzold 向我们介绍了如何把现实中的语言转化为电路中的语言。为了讲解信息的载体可以是多种多样的,这个老头举了布莱叶盲文和莫尔斯电码,而为了解决远距离的信息传输问题,电路以及继电器的概念和实现就自然而然地登场了。
而从第十一章至第十七章,如上文所述,Petzold 带领我们借助第一部分主题的知识,从无到有地组装了一台继电器版计算机。这一部分也是全书的精华部分,从最简单的继电器组成逻辑门电路,再从逻辑门电路组成锁存器和选择器。根据二进制语言和开关状态对应的关系,我们又可以用多个开关状态组成的二进制码来表示存储器中的地址内容。从而最终构建出一台简陋却完整的计算机。
最后一部分的主题,虽然篇幅也占到了全书的四分之一,但其实已经只是整本书的余韵。作者带领读者走马观花地领略了一遍微处理器,总线,操作系统以及字符编码(此编码非彼编码)的知识,进一步地完善了之前那个略显简陋的计算机,只是这一部分设计的内容太过宽泛,Petzold 也不能用实验组装和编码的方式去再做一台现代计算机,所以他直接撷取了现成的8080处理器和CP/M操作系统来进行内容的讲解,也算是聊胜于无。
总而言之,无论是在校学生,或者是已经工作,但是仍然想返回头来看看计算机底层知识和花边新闻的人,不管你们是不是科班出身(不是还相对好些),《编码》这本书都可以作为你们闲暇时的科普读物(在我看来并不能算是专业读物)。
2017年6月30日晚于公司 小雨