一转身就到2013了。读者新年快乐,希望吃到饺子的人都幸福。
新年伊始,笔者在想做点什么之前,还是回顾下去年做了些什么,好歹有个交代。记录下学习的轨迹,分享给您还有未来的自己。
去年我小半年在盛大游戏,业务较少,尸位素餐,没做什么事情。大半年在EMC中国研究院,虽然现在有些小忙,但之前适应项目和团队花了好久。因此有大把大把的时间来学习。这是我的学习黄金年,读了60读本书,看了不少开源项目如Kalfa,CloudFoundry的源代码。学到了不少的知识,真开心。
学知识的话,以前比较喜欢上网,现在比较喜欢看书。网络文字很多比较概略,散乱。而一本好书往往倾尽一个人的相关专长上全部才能。读读书,省时省力。
系统编程
今年年初前,我做的程序的Bug大多集中在系统和网络部分,再加上需要维护改进一个C++的模块。所以我先好好学习了下系统编程,网络,和C++方面的知识。虽然都是大骨头,但是因为时间充裕,学的也扎实。
笔者以前学过一些系统编程,但希望了解得更深入一些。所以先读了的《深入理解计算机系统》,这本书里“存储器山”的概念让我茅舍顿开。教授先生别出心裁的将存储器的吞吐量,画成了一座山。并自己做了些测试,写了《内存究竟有多快?》一文。如果细细在山上品,可以考虑如何最好的使用存储器。然后看了些UNIX编程的内容,包括系统提供API和他们的脾气。还研究了下如何在Unix里面用GDB之类的工具Debug,查看程序状态。
网络
网络是非常重要的基础知识。做事情的时候,就怕网络操作,因为总是会遇到奇怪的问题。躲避不是办法,所以细细学了学。《计算机网络》这部书很好,因为重版了,所以再读了读。主要是新增的无线网络的篇幅。笔者意外的发现WIFI的频率和微波炉同样是2.4GHz。所以萌生了用手机检测微博路泄漏的办法。并且设想了“微波炉安全专家”的手机游戏。由于这个游戏实在太冷笑话了, 所以一直没实现。:-)网络也越来越注重安全性,对密码学的学习也是要不遗余力地。
编程风格
编程风格是个说不清道不明的东西。笔者一直很喜爱Linux。所以学了学Linux/Unix的编程风格。下面这三本书都是讲这个。虽然书名都很哗众取宠,但内容不错。有趣是最哗众取宠的《程序员修炼之道-从小工到专家》,将Linux的思想定义为“注重实效”。给了笔者当头一棒,其实编程风格什么的,就是不自己玩自己。做产品应该用最经济的,做学问则要是最深刻的。
Web技术
互联网技术是笔者感兴趣的传统方向。这方面的学习不是靠读书为主,本年度读了两本。一本书作者是腾讯的“郭欣”,另一本是日本某最大互联网企业的工程师。笔者是个哈日青年,但是不得不说,在日本人的互联网技术,怕是有点落后。很多Web重要问题,比如MySQL,缓存浅尝辄止,甚至只字未提监控。国人果然很强,面面俱到,鞭辟入里。
并发
并发也是笔者最感兴趣的方向,笔者深入学了学多核的原理。就是API的里锁和原子操作,如何映射成CPU的指令,并且CPU是如何执行这些指令的。很多问题,茅塞顿开。后来写了篇文章《并发编程之巧用锁》。经过不少知识积累后,觉得并发不是很简单。多核并发本就是为了提升性能,但以提升性能为目标写并发程序并不简单。自己不应该轻易操作底层并发元素,或者不使用无谓的并发。如果要用一下,估计得深思熟虑好几天才行。
数据库
盛大游戏的”系统平台部”运维了大量的MySQL。笔者在里头耳濡目染,也懂了一些。当然看书也是学习MySQL的一部分。尤其推荐简朝阳的这部,有很多阿里巴巴自身的实践精髓在里头。国人还是很好很强大。《SQL反模式》是我最喜爱的图书,薄薄一本小册子,讲设计数据库Schema的时候容易犯的错误。尽管自认为对数据库颇有见解,但是发现几乎每一反模式自己都碰到过,倍受打击。从此逢人就推荐这本《SQL反模式》。看过的人都表示大赞。
硬件存储
笔者刚到EMC后对SAN,FCoE等等存储相关的知识还一无所知。如果过了段时间还不懂,岂不让人笑掉大牙。所以花了些时间系统的科普下存储相关的知识。再得易于公司内部环境,还有培训授课。笔者对存储算是初窥门径了。
计算机语言
C++
不怕笑话,笔者对技术有洁癖,对C++有点排斥,所以不算精通。但工作需要,总归还是得认真看看的。但读了读《Effective C++》后,爱不释手,又反复读了两遍。尽管C++提供了那么多乱七八糟的语言级工具,有很多陷阱,用好他们不容易,但如果循规蹈矩的使用,还是很顺手的。《Effective C++》就是给我提供这些循规蹈矩的方法,让人可以舒服点。然后我迫不及待的读了《More Effective C++》感觉大不如前作实用,作者大有江郎才尽的感觉。不过还是挺不错的。
Ruby
处于对CloudFoundry项目的需要,笔者也看了看Ruby。尽管Ruby很流行,很多人在使用。可我感觉他就像混水一般,不干净。由于语言本身比较动态,对于一行代码,会怎样执行,完全不清楚。不过平心而论,还是挺好用的。去年松本来上海,笔者也去朝圣,他一直穿着这套脏兮兮的黄色西装,推销自己的手机Ruby。我突然觉得东方人弄出个玩意不容易,脏就脏点,干净不过人家(西方人),还邋遢不过吗。
GO
GO是Google的新语言。对Go的学习是十分愉快。笔者往往看这方面的资料到凌晨二三点忘了睡眠。抛弃简介的语法不谈,Go的设计考虑到性能要求。很多动态性在编译里解决,执行的代码很大程度上是静态的。和C风格很像,简单舒服。并且并发也做得不错。感觉假以时日,他会对性能敏感的系统编程领域造成冲击。笔者总结了Go语言协程的编程模型,记录下一文《Go简洁的并发》。另外许式伟的的这部书也是不错的读物。
数据挖掘
工作需要,笔者接触到了”大数据”。决心下大力气学学数据挖掘和机器学习方面的知识。刚好有本斯坦福的《大数据》的书,这本书很好,根据现实中事例切入,深入浅出。随即倒腾了几个算法。准备在几日后推出一个基于监督学习的”八卦机器人游戏”,敬请期待。
手机
工作上的需要,笔者稍微看了看Android系统的运作方式。只求略知一二。
非计算机类
这篇小结本意不包括非计算机类的东西。不过既然是个人小结,也写上一些。陶推荐的《经济学思维方式是》是本很好的经济学入门图书,告诉我边际成本是什么。《苏菲的世界》是本非常非常好的哲学入门图书,笛卡尔“我思故我在”的思考振聋发聩。《爱你就像爱生命》是王晓波写的情书,写情书的人也是得学习学习的。
这篇学习小结意外的长,本以为只有一点点的。通过写他,笔者也顺便温习了一些。不过去年学的东西虽然多,但生产的优秀产品比较少。希望来年改进改进。
你读的书不是一般的多。。。
一个星期一本,高手啊
上面好多书我都有收藏,但是都没有仔细的学习过
请问,您用一年读了40本书,而且有的不止一遍,是怎么做到的?
欲速则不达
读好快啊~
囫囵吞枣我也会
有空希望博主说说学习的方法论,有时候看过一些书很快忘记了,感觉没有多少用