2018年度读书报告

今天是2019年1月16日,18年已经过去半月有余。一直在犹豫要不要写年终总结,毕竟已经连续三年没写年终总结了。

可能和往年一样,拖延一段时间,这件事情就过去了。不过最终还是决定要写一下。要知道,一旦坐下来开始写,这件事基本也就成了。

回想上次写年终总结还是2015年,一眨眼几年就过去了。回忆过去的这几年貌似一直很忙,被各种事情推着走,却很少静下心来做做总结,想想事情。

年终总结其实是很好的一个机会,回顾过去的一年做的事情,想想明年要做些什么。

可能会写几篇,本篇为2018年度读书报告。

去年看过的书

平时看过的书,一般会在豆瓣上标记了。整理了下,去年完整看完的书大约有十几本,另外还有一些专业的参考书和没看完的就不在这里列出了。标题后面的星星为个人评分。

  • 月亮与六便士 (威廉·萨默塞特·毛姆 )☆☆☆☆☆
  • 人类简史 (尤瓦尔·赫拉利)☆☆☆☆☆
  • 岛上书店   (加布瑞埃拉·泽文)☆☆☆☆
  • 浮生六记(沈复 )☆☆☆☆
  • 刻意练习 (安德斯·艾利克森)☆☆☆
  • 冥想 (斯瓦米·拉玛)☆☆☆
  • 深度思考 (莫琳·希凯)☆☆☆
  • 易经杂说(南怀瑾)☆☆☆
  • 金刚经说什么 (南怀瑾) ☆☆☆
  • 禅与摩托车维修艺术 (罗伯特·M.波西格)☆☆☆
  • 腾讯传 (吴晓波)☆☆
  • 小王子 (圣埃克苏佩里)

最喜欢的一本是《月亮与六便士》,“当人们都在看着地上的六便士时,他却抬头看见了月亮”。正如高晓松所说的,生活不只是眼前的苟且,还有诗和远方。不过终归,大多数的我们还是俗人。作为俗人,我给这本书五星。

读起来最气势磅礴的是《人类简史》,作者博学多识,从十万年前有生命迹象开始写到21世纪,在历史学之外,人类学、生态学、基因学等领域的知识信手拈来,从宏观角度切入的研究往往得出颇具新意而又耐人寻味的观点,读起来非常有趣。也给五星。

最温馨的是《岛上书店》,在各个网站排行榜上都看到在推荐这本书,很温情的故事,叙事方式也很特别。书中关于书店的出路与电子书的关系的讨论,值得思考。推荐。去年看的类似的书籍是《解忧杂货铺》,也是值得一看的。

传记类的看了《腾讯传》和香奈儿前CEO莫琳·希凯的《深度思考》,感觉都很一般,尤其是的《腾讯传》,公关味道很重,不是很喜欢。本来对传记类的书就不感冒,后续此类不再关注。

关于个人修养类的书看的比较多,占了1/3,涉及冥想,佛与禅,易经等,算是了解个大概,还没找到内心的认同感。不过读多了发现各种哲学宗教等多少会有一些相似之处。立竿见影的效果看不出来,潜移默化总会有一些吧。

2017年我的年度书籍是叔本华的《人生的智慧》,那么2018年我把此荣誉留给毛姆的《月亮与六便士》。

读书心得

庄子说,吾生也有涯,而知也无涯;以有涯随无涯,殆已!意思是说人生有限,知识是无限的,用有限的人生去追求无限的知识,就会搞得精疲力尽。

读书也是如此,所以,看书要有选择的读,不是读的越多越好。佛经里说,莫贪。其实,贪恋读书,也是贪。

关于选书,一般我会看豆瓣的评价。不过,评分高的,有时候也未必适合。有两种情况要特别小心:

  • 评分的人很少,虽然评分高,但是只有少数人评分,这种情况,未必是好书。
  • 高分的书,其实未必适合你。尤其是某些专业性的书,可能具备一定门槛,如果基础不好,可能看不懂。

新年读书规划

18年实体书和电子书一共买了有几十本,只读了10几本书。真可谓买书如山倒,读书如抽丝。新的一年,计划把存量的书看完。

统计了下近几年的读书记录,发现每年的年初和年末会读书比较多,剩下的时间读的很少。这个一方面和工作的忙闲有关,另外也是个人缺乏持续性。所以,今年要坚持做到,慢慢读,周周读(就不说日日读了)。

另外,在读书方法上,今年要更加专注,按照主题读书,这样才能把同一主题的相关内容关联起来,效果会更好。

最后,专业书今年会多看一点,保持专业竞争力。毕竟,winter is coming!

新年寄语

有句话说的好,道理懂那么多,却依然过不好自己的一生。读书也是一样,读万卷书,行万里路,知行合一。

公众号阅读:https://mp.weixin.qq.com/s/-8fbNA-4xUrXGCBHJ9c3Ug

读《简洁之美》

书的标题叫《简洁之美》,副标题叫”软件设计之道”。
英文原版书名叫:Code Simplicity: The Science of Software Development.
个人感觉英文名字更明了,更简洁。

老外尤其是老美喜欢给软件开发这件事情戴帽子,比如有人把软件开发说成是一门手艺,而本书则说软件开发是一门科学,是有法可依的。
呵呵,这也反应了软件开发这个事情,老美的专业化程度还是比较高的。

软件的质量和代码的质量息息相关,因此,本书的目的就是要总结提高代码质量的”道”,做到软件开发有章可依。

作者认为,软件的目标就是要帮助人,任何的软件决策都应该以这个为出发点。不仅要能帮助人,还要尽可能多的帮助人,更甚至于要持续的尽可能多的帮助人,于是,需要软件开发后维护的成本要低,这样才能可持续。

既然是科学,当然要列个方程式,软件改变的合意度(可行性),正比于软件当前价值和未来价值之和,反比于实现成本和维护成本之和。所以,如果软件要使用很长时间(持续为人提供帮助)的话,那么,降低维护成本就显得越来越重要。

变化是不可避免的,大部分程序员也都知道这点,但是为了处理变化,程序员也会进入以下设计误区:1)编写不必要的代码。常常会给后来的维护者带来很大的误解,不知道这段代码有何用,因为根本没用,所以,不要编写不是必需的代码,并删除不用的代码。2)代码难以修改。主要原因有对未来做过多的假设,不仔细设计就开始编码。为避免此问题,在设计时应该根据现在确切知道的需求,而不是你认为未来会出现的需求。同时要考虑到未来会变化,保持可扩展性。3)过分追求通用。因为未来是一定会变化的,而怎么变化我们又无法预测,因此,即使设计的再通用,也可能会出现不能满足的情况。如果你的设计让事情变得复杂而不是简单,那么你可能就过度工程了。当然,渐进式的设计和开发可以避免上述的三个误区。

程序中新增缺陷的可能性和代码修改量成正比,所以好的设计应该是能满足外界的变化,但是自身变化要少。于是,就有如下规则:永远不要修正任何东西,除非他真的有问题,而且有证据表明问题确实存在。附加一条,任何系统里的任何信息,理想情况下应该只存在一份,DRY原则。

软件越简洁越容易维护,为保持简洁,尽量保持一致(命名,方法定义等),代码排版格式,名字足够长,完整表达意义但又不要太长影响阅读。要做到简洁,通常需要设计。如果遇到了不可避免的复杂,那么在外面包一层,让别人易于理解。

本书只有100页左右,主要列出了一些原则和可以遵守的条例,跟书名比较符合,非常简单。可以作为日常软件开发的一些指导,只有在实践中不断尝试,才能利用好这些原则。另外,感觉里面的东西,在《代码大全》里都有涉及,不愧的大全啊,那本书值得多读多实践。所以,相比本书,更推荐直接去读《代码大全》那本书。