我的编程生涯里启发我的15本书

从几百本书中整理出一份书单是一件困难的事,但是从这些书中挑选出对自己影响比较大的书确是一件容易的事。

在是一份迟来的书单,但是并不是一份适用于每个人的书单。这是我在学习编程过程中看的一些书,启发到我的书,有很多你可能没有听过,也有很多可能是你耳熟能详的。之所以说是启发是因为很多说并没有那么好,但是我从上面获取到了一些灵感。

高中时期

高中时期,因为想开发游戏的热情才深入计算机世界。并且高中也是一个相当无聊的时期,除了为高考准备的考试,还有就是上课

《C++游戏开发》

有一些书,你就没有必要去看了,比如这里的第一本书《C++游戏开发》,这本书是我在高中的时候翻了好几遍的书

c++游戏开发
c++游戏开发

这本书一直在说“C++是一门优雅的语言”,也介绍了很多我在之前编程中不懂的知识点:数组、指针,以及高级点的重载和继承这一些面向对象的知识。这本书在游戏开发方面讲得不是很多,但是当时让我脑洞大开的是——2.5D编程。简单地来说,就是二张图片叠加在一起形成的3D效果。我才意识到当然我玩的很多游戏是这样做出来的。

我那之前我只会写点代码,并不知道一个游戏是如何在操作系统上运行的。在这本书中我学会了代码是如何通过操作系统的API来创建窗口、操作文件、操作声音等等。

其实上面说到的游戏开发的书应该是一整个系列,但是很多书启发性似乎并不大就不提了。记得还有《Java5 游戏编程》、《网络游戏开发》、《游戏开发核心技术•剧本与角色创造》等等的书。

《3D游戏》

这是一本讲述3D游戏编程的书,实际上说的是如何去造一个游戏引擎。上图:

3D游戏
3D游戏

当然很多内容都看得不是很懂,这本书对我的帮助并不是技术本身,而是对于数学的提高和3D空间的理解。高中的知识本身并不多,多的是知识本身衍生出来的试题。换句话说,这样的书和上一本书一样,在我们遇到瓶颈的时候是很有帮助的,相当于帮我们打开了另外一片天空。原本我们以为世界是这样的,后来我们意识到了世界并不是这样的,世界比我们想象中的要大。

《Linux内核设计与实现》

这本书并不是同上两本是一本启发性的书籍,但是是一本奠定基础的书籍。

Linux内核设计
Linux内核设计

出于某种原因,加之发现一个人很难开发3D游戏。便开始学习游戏底层之下的技术——操作系统。于是很快地就从一个游戏开发爱好者变成了一个Kernel Hacker。很多东西都已经忘了,但是很多东西都记得很清楚。如Linux是一个宏内核,但是借助了微内核的很多思想。在当时的环境下,所谓的多进程是怎么一回事,他们多久切换一次进程等等。

除此,不得不提及的一本书是《Orange'S:一个操作系统的实现》,这本书在当时的映像是非常不错的。但是这本书放在我的家里吃灰尘了~~。

《代码之美》

这本书开启了我的装B史~~,上图

�代码之美
�代码之美

由于这是一本合集,所以书中的大部分内容我没有看懂。但是,这本书让我看到了各种很Diao的代码。不过这并不重要,重要的是我在这本书里面认识了Emacs。这就是为什么这本书会上榜的原因。

Emacs
Emacs

这本书中有多篇提到了Emacs,然后我就去试了!!!
这本书中有多篇提到了Emacs,然后我就去试了!!!
这本书中有多篇提到了Emacs,然后我就去试了!!!

大学

大学学的是硬件,所以在软件方面花费的经历并不是特别多,成长比较大的是大学最后的学习。

《设计模式》

之所以买这本书的原因是:很多书中都提到了这本书,强调这本书是多么的重要。然后,我就买了。

�设计模式
�设计模式

当时写的语言基本上就是C、Python还有汇编,所以在当时并不特别懂,后面我们会继续说到。它给我的感觉就是,WOCAO,我当年的C++连入门都算不上。虽然能看懂,但是一知半解。主要是当时代码写得并不多,主要是在博览群书。

《领域特定语言》

DSL大法好,DSL大法真的是一个很棒的想法。

DSL
DSL

它可以用更简洁的语言业表达你的想法。这是很美好的一个想法,如果我们可以把我们的业务代码抽象成外部DSL的话,那么我们就不担心架构的变更、技术框架的落后。

《SEO艺术》

当你有一篇好的文章,还有一个好的产品,你还需要什么?SEO就是其中一个。

SEO艺术
SEO艺术

让我意识到一点:事物间的关联性——也就是Page Rank。当时对论文这种东西没啥概念,后来发现这是非常有趣的一个算法。

Page Rank
Page Rank

这个原则不仅仅适用于SEO领域,还适用于社交领域、大V经济领域。PR高的网站链接PR高的网站可能没有啥明显的作用,但是对提交PR低的网站特别有用。

《重来》

《重来》似乎是一本经常被提及的书,好在我也是看过的,还写了几篇相关的文章。

�重来
�重来

这本书有三点说得很不错,换句话来说,这三点和我产生了共鸣:

  1. 卖掉代码的副产品。事物间存在的连接属性。
  2. 招聘笔杆子。这个就不用多说了,我写了那么多文章。
  3. 音乐应在你的指尖流淌。好的装备确实能带来一些帮助,但事实是,你的演奏水平是由你自己的手指决定的。

ThoughtWorks面试与实习

大四的时候就开始找工作了,然后我就遇到了ThoughtWorks。面试的时候醒悟到了《重构》可以到《设计模式》,但是光醒悟并没有啥卵用,下面这本书是我后来的后来才遇到的。

《重构与模式》

不知道在多少的场合里,我一直在吐槽这本书应该是叫《重构到设计模式》。

�重构与模式
�重构与模式

虽然并没有学到太多的实质性的东西——很多东西都在实习的时候已经学到了。重构和设计模式一样,光一天天做一些智力练习并没有啥用。从重构代码到抽象出设计模式,是一种很迷人的体验。

《重构》

这本书虽然看得很早,但是提得很晚的原因是:主角总是最后才出场的。

�重构
�重构

在当时我也花了很多时间去识别书中的一些Code Smell,然后去重构。亲手把自己的代码从一坨x变得更易读是一种很棒的体验,你说呢?

《敏捷软件开发》

这又是一本Jolt效率大奖的书,这似乎也是进入我们公司应该读的一本书。

�敏捷软件开发
�敏捷软件开发

这本书结合了敏捷方法、模式和面向对象的一些思想,并提出了SOLID(单一功能、开闭原则、里氏替换、接口隔离以及依赖反转)这五个基本原则。

工作

《持续交付 发布可靠软件的系统方法》

这倒不是一本对我启发非常大的书,主要是因为这已经是我们的日常工作流程。

�持续交付
�持续交付

如果你先实践了,然后再去看一本书,那么你就不会觉得一本是多么的棒。软件本身是一种持续的过程,特别是Web开发来说。在这一点上来看,几乎所有的互联网公司都可以持续交付软件。但是国内的大部分互联网公司的代码都是没有测试的,并且呈现的是一种几乎有问题的持续交付模式。

《面向模式的软件架构 卷1:模式系统》

作为另外一本Jolt效率大奖的书,这本书名副其实。

�面向模式的软件架构
�面向模式的软件架构

能从混乱到有序就可以抽象成一种架构模式,书中向我们展示了各个层面的模式是如何发挥作用的。这本书让我意识到了模式不仅仅存在于代码之间,又存在于架构之间,更是可以存在于我们的日常生活之中。

《实现领域驱动设计》

尽管这本书提到的很多东西我都很了解,我还是不非常懂这本书。或许只是因为没有连接概念到代码上,让我在有空的时候再细细理解这本书。

�领域驱动设计
�领域驱动设计

虽是如此,但是这本书中提到的六边形架构让我映象深刻,又可以称之为“端口和适配器架构”。

六边形架构
六边形架构

还有CQRS(命令和查询责任分离)架构,这种风格和我们现有系统的架构是类似的。在我们系统的架构中,读和写是两个不同的数据源,我相信这种结构也存在于很多的系统中。

CQRS
CQRS

还有我之前提到过的编辑-发布-开发分离也是类似于这种风格的架构。

�编辑-发布-开发分离
�编辑-发布-开发分离

《浮现式设计 专业软件开发的演进本质》

最后出现的这本书,让我重新理解了软件开发的演进。

�浮现式设计
�浮现式设计

浮现式设计这个概念很棒,软件不是一开始就产生的,面向Web开发的软件更是如此。由于业务发现的需要,我们不可能在一开始想到一切的可能性,我们只能在业务演进的同时发展我们的架构。

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 143,639评论 1 302
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 61,591评论 1 258
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 95,050评论 0 213
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 41,169评论 0 180
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 48,976评论 1 258
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 38,876评论 1 178
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 30,476评论 2 273
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 29,229评论 0 167
  • 想象着我的养父在大火中拼命挣扎,窒息,最后皮肤化为焦炭。我心中就已经是抑制不住地欢快,这就叫做以其人之道,还治其人...
    爱写小说的胖达阅读 29,095评论 6 234
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 32,579评论 0 213
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 29,356评论 2 215
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 30,698评论 1 232
  • 白月光回国,霸总把我这个替身辞退。还一脸阴沉的警告我。[不要出现在思思面前, 不然我有一百种方法让你生不如死。]我...
    爱写小说的胖达阅读 24,272评论 0 32
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 27,168评论 2 214
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 31,605评论 3 210
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 25,645评论 0 9
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 26,035评论 0 166
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 33,609评论 2 232
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 33,698评论 2 233

推荐阅读更多精彩内容

  • Android 自定义View的各种姿势1 Activity的显示之ViewRootImpl详解 Activity...
    passiontim阅读 170,385评论 25 707
  • 本文把程序员所需掌握的关键知识总结为三大类19个关键概念,然后给出了掌握每个关键概念所需的入门书籍,必读书籍,以及...
    dle_oxio阅读 10,947评论 6 244
  • 咱们接着“谷歌小哥出品程序员必读书单1.0(上)”继续说。 软件开发 1. 编程实践 Brian Kernigha...
    图灵教育阅读 70,745评论 1 125
  • 小学的时候就开始喜欢看杂志,最初喜欢看故事会,意林这样的杂志,那时候了解的东西还比较少,比较肤浅,只对故事性的文字...
    彼岸的安妮阅读 660评论 0 0
  • 生活其实很简单吧, 就是给自己微笑, 给身边的人温暖 在时光的路口,轻握一份懂得 在生命的路口,静待花开
    六月情阅读 110评论 0 1