人生不可错过的5本书

哥德尔、艾舍尔、巴赫书:集异璧之大成

哥德尔、艾舍尔、巴赫书:集异璧之大成

这是一本超过千页的大书,其翻译为中文的过程亦甚为坎坷。此中文版本采用了移译的翻译手法,将许多陌生的名词中国化了,所以初次阅读之体验可谓兴致盎然。巴赫、艾舍尔、哥德尔,三者的成果即为音乐、画作、逻辑(数理逻辑)上的三个怪圈,恰似原书的封面那样,投影不一,但其实内在的实质是一样的。巴赫的音符在重复中,一面唱出主题,一面扮演和声;艾舍尔的阶梯,一面无限上升,另一面无尽下降;哥德尔的不完备定理,一面作为数理逻辑的内容存在,一面作为评价数理逻辑的存在。《哥德尔、艾舍尔、巴赫书:集异璧之大成》是在英语世界中有极高评价的科普著作,曾获得普利策文学奖。它通过对哥德尔的数理逻辑,艾舍尔的版画和巴赫的音乐三者的综合阐述,引人入胜地介绍了数理逻辑学、可计算理论、人工智能学、语言学、遗传学、音乐、绘画的理论等方面,构思精巧、含义深刻、视野广阔、富于哲学韵味。

关于这本书,确实只有“奇书”两个字可以形容。

书籍地址:《哥德尔、艾舍尔、巴赫书:集异璧之大成》

禅与摩托车维修艺术

禅与摩托车维修艺术

Pirsig说,要把工作变为艺术,选择良质。在所有关乎技艺方面的工作,背后都有一个“道”或类似于“禅”的东西,一通百通。有时,你就得放弃已有的工匠情结,更多地要把自己的理念,思想都揉合在一个物件上,这时技术只是一个副产品罢了。本书探讨了有关摩托车修理艺术,禅,宗教,自然科学,教育,哲学,数学,个人修行。中间透露的对生命直相、生存本质的看法,优美、简洁而动人。不光研究形而上,思考人生意义的人可以读,而且从实用主义的角度看, 对技术人员(不光是软件开发人员)甚至任何有工作的人都有很大的启发作用。本书在美国及世界十余个国家已被当做新时代的经典之作,本书曾被“Time”为70年代十本最有影响力的书之一。

书籍地址:《禅与摩托车维修艺术》

编程人生

编程人生

Seibel: 不精通技术却擅长团队协调的人,能成为好的管理者吗?
Allen: 这不是不可能,不过他得首先承认自己并不精通技术,其次还要能分辨团队中谁擅长技术,谁不擅长技术。

它并不是一本技术人士的八卦图书。书里面讨论的更多的是编程的习惯,对当今程序设计方法或是程序设计语言的讨论,以及这些编程大牛在成为大牛的过程中的各种经历。很多东西都值得程序员或者是有志学习计算机科学的人借鉴。这本书最大的益处就是帮助广大程序员了解大师是怎么成长过来的,学习他们的宝贵经验。大师的成长经历都隐含了一个基本规律:他们都是编程至少十几二十年以上才最终成为大师的,“十年学会编程”并不是什么天方夜谭,而是确确实实的事情!同理,任何人如果想要成为大师(或者至少是杰出的程序员),那么他首先要做的就是打好基本功。但是,算法并不是编程的前提条件,数学也不会阻碍一个人成为优秀的程序员。

书籍地址:[《编程人生》](http://item.jd.com/11584262.html

别闹了,费曼先生

别闹了,费曼先生

一本理科生写给世界的情书。——和菜头

费曼得过诺贝尔奖,是现代最伟大的理论物理学家之一。但他同时也可能是历史上唯一被按摩院请去画裸体画、偷偷打开放着原子弹机密文件的保险箱,在巴西桑巴乐团担任鼓手的科学家。他曾跟爱因斯坦和波尔等大师讨论物理问题,也曾在赌城跟职业赌徒研究输赢机率。这是费曼对世界和人生看法的总结,不是世界创造了费曼,而是费曼如此理解和对待世界,因此而有了这么一个非常独特的人。他满不在乎地活在这个世界上,靠追逐他的兴趣而指引生活的方向。如同他年幼时自己发明了一套三角函数符号一样,他对世界也有自己的一套符号。所以,大家都在意的事物他未必在意,大家不在意的事物他却穷追不舍。他也爱着这个世界,但是是用他的方式。所以他能在物理之外发现生活中诸多的乐趣和美来,所以不是人人都会到巴西讲学时跑去街头学敲鼓,而且获得了佳年华会的冠军乐队。所以不是人人都会去学绘画,然后还愿意让别人买去挂在妓院的墙上。如孩子一样的眼睛,如孩子一样的好奇心,因此世界以奇迹还赠他,于一生中成就别人的无数生,使得他周围人在失去他时如同整个世界都黯然失色。

书籍地址:《别闹了,费曼先生》

程序员修炼之道

程序员修炼之道
一般来说,刚刚接触编程的人,更倾向于从具体的程序代码学习编程的理念,而不是从程序设计理论书籍去理解编程的概念。就像学习英语,在刚开始的时候,最重要的是扩大自己的阅读量和词汇量,而不是“钻研”各种奇淫技巧。所以,计算机编程的入门书籍里都包含了大量的示例代码片段,初学者通过模仿这些代码,在心里逐步建立起一个属于自己的程序设计模型。这是程序设计的第一个阶段,也就是入门阶段。在编写了一定量的代码,对编程有了一定的了解之后。逐渐的,我们开始对自己的编写的程序,以及程序设计进行反思:程序为什么要这么设计?以什么方式可以编写出更好的程序?如何在编写程序时少走不必要的弯路?这时我们最需要的,不再局限于某种语言的语法或者是xxAPI的使用方法,而是面对实际问题需要的灵活的处理方案,亦或是去理解被前辈所认可的相对正确的软件设计方法。在这时,我们处于程序员的第二个阶段,也就是自我提升阶段。

这本书里面涉及到了在软件开发中的方方面面:从正确的理解需求到灵活的设计实现,从估算/提升程序的运行效率到提升软件的开发效率,从程序员的自身修养到与他人交流时的tips。这本书用非常短小的篇幅,覆盖了非常大的范围。

书籍地址:《程序员修炼之道》

当然了,不是每篇文章都会投到专题里的,也算是关注的福利吧!