面向 Linux 和开源爱好者的书单
======

> 看看我们现在在读什么？

![](https://opensource.com/sites/default/files/styles/image-full-size/public/lead-images/books_stack_library_reading.jpg?itok=uulcS8Sw)

最近我在作者社区征集分享大家正在读的书。大家生活阅历和工作岗位各不相同，共同点是每天都与 Linux 和开源打交道。

享受这份不可思议的书单吧，其中大部分是免费的，可以下载。

在书单中，你可能发现一直想读的书、完全陌生的书以及像老朋友一样的已经读过的书。

我们期待你给出对书单的看法，可以在分享在下方的评论区，也可以通过 #Linuxbooks 和 #opensourcebooks 主题词分享在 Twitter 上。

### 加入你书单的 17 本书

**文末，还附赠了一篇科幻小说作品。**

#### [_FreeDOS 的 23 年岁月_][2]，作者 Jim Hall

从去年起，[FreeDOS][3] 项目已经 23 岁了。虽然在 23 年中并没有什么特殊事件，但该项目决定庆祝这个里程碑，形式为分享不同人群使用 FreeDOS 或对 FreeDOS 做出贡献的故事。这本以 CC BY 协议开源的书籍收录了一系列短文，描绘了 FreeDOS 从 1994 开始的历程，以及人们现在如何使用 FreeDOS。（[Jim Hall][4] 推荐并评论）

#### [_JavaScript 编程精解_][5]，作者 Marijn Haverbeke

这本书基于无处不在的编程语言 [Javascript][6]，教你编写制作精美的程序。你可以学习语言的基本知识和高级特性，学习如何编写可在浏览器或 Node.js 环境中运行的程序。本书包含 5 个有趣的项目，例如制作游戏平台，甚至编写你自己的编程语言，在这过程中你会更加深入理解真实的编程。（[Rahul Thakoor][7] 推荐并评论）

#### [_使用开源打造未来_][8]，作者 VM (Vicky) Brasseur

如果你希望在开源领域做出贡献但无从下手，这本书会教会你。内容包括如何确定要加入的项目，以及如何做出你的首次贡献。（[Ben Cotton][9] 推荐并评论）

#### [_Git 团队协作_][10]，作者 Emma Jane Hogbin Westby

Git 是一款版本管理系统，被个人和团队广泛使用；但其强大的功能也意味着复杂性。这本书指导你如何在团队环境中有效地使用 [Git][11]。想了解更多信息，请参考我们的[深入点评][12]。（[Ben Cotton][9] 推荐并评论）

#### [_谈判力_][13]，作者 Fisher, Ury 及 Patton

<ruby>哈佛谈判项目<rt>The Harvard Negotiation Project</rt></ruby>成立于 20 世纪七十年代，是一个经济学家、心理学家、社会学家和政治学者共同参与的学术项目，目标是建立一个让谈判各方都受益更多的谈判框架。他们的框架和技巧已经在各类场景发挥作用，其中包括 1978 年埃及与以色列之间的签订的<ruby>戴维营协议<rt>Camp David Accords</rt></ruby>。

<ruby>原则式谈判<rt>Principled Negotiation</rt></ruby> 包括理解谈判参与者的真实需求，以及基于该信息达成各方都可接受的条款。同样的技巧可以在处理人与人之间的纠纷、关于车辆与房屋的谈判以及与保险公司的商讨时发挥作用。

这与开源软件开发有什么联系呢？在某种意义上，开源领域中的一切都是谈判。提交漏洞报告就是指出某些代码工作不正常，让某些人放下手头工作并优先处理该漏洞。邮件列表中对完成某些工作的正确方式的激烈讨论或对功能请求的评论，都是一种关于项目范畴和目标的谈判，通常是在信息不充足情况下进行的。

将上述对话视为一种探索，试图理解为何其它人提出来某些需求，让其明白你为何持有另外的观点，可以让你在开源项目中显著地改善人际关系和提高工作效率。（[Dave Neary][14] 推荐并评论）

#### [_只是为了好玩：Linux 之父 Linus Torvalds 自传_][15]，作者 Linus Torvalds 等

Linux 是一款令人惊奇的、强力的操作系统，引发了关于透明和开放的运动。驱动 Linux 的开源思潮对传统商业和资本增值模型造成冲击。在本书中，你会了解到 Linus 本人及 [Linux][16] 操作系统的过人之处。洞悉那些改变 Linus 命运的经历，这些经历让他从一个喜欢折腾他祖父钟表的怪人，转变成编写全球主流操作系统 Linux 的大师。（[Don Watkins][17] 推荐并评论）

#### [_1 个月速成 Linux_][18]，作者 Steven Ovadia

这本书用于教会非技术领域的用户如何使用桌面版 [Linux][19]，读者每天花费一小时即可。这本书覆盖面比较很广，包括选择桌面环境、安装软件以及如何使用 Git。阅读完这本书，你可以完全使用 Linux 替换掉其它操作系统。（[Steven Ovadia][20] 推荐并评论）

#### [_Linux 实战_][21]，作者 David Clinton

这本身介绍了不少 Linux 管理工具的干货，适用于想提升技术水平的人群，包括 IT 专家、开发者、[DevOps][22] 专家等。本书不是割裂地介绍各种技术，而是按照真实项目组织内容，例如异地备份自动化、Web 服务器安全加密以及搭建可以安全连接公司资源的 VPN 等。更多内容可以参考作者的[另一本书][23]。（[David Clinton][24] 推荐并评论）

#### [_创客丛书： 为创客准备的 Linux_][25]，作者 Aaron Newcomb

对于想通过 [树莓派][26] 创造和创新的人来说，这本书是必读的。这本书将领你入门，让你玩转你的树莓派，同时帮你理解 Raspbian Linux 操作系统（与传统 Linux ）的细微差别。书中文字巧妙又浅显，可以让任何阅读本书的创客解锁树莓派的潜力。文字简洁，编写精良，包含大量极好的阐述和实战案例。（Jason Hibbets 推荐，[Don Watkins][17] 评论）

#### [_人性管理：一个软件工程经理刺激诙谐的经历_][27] by Michael Lopp

Michael Lopp 是热门博客 [Rands 在休息][28]的作者，他的笔名 Rands 更为人熟知。这本书是在博客帖子的基础上修订集结而成，内容为软件开发团队的管理。Rands 的工作哲学为“软件开发中最复杂的部分是人际交往”，这是我对于本书和博客内容最欣赏的一点。本书涵盖一系列主题，包括分析一个团队，理解每个团队成员的个性以及设计如何让每个人都各尽所能。

这些主题适用面很广，作为一个开源社区管理者，我一直和这些事情打交道。如何得知某个成员已经精疲力尽？如何组织一个好的会议？如何在项目和团队扩大时形成项目和团队文化？如何判断流程是适度的？在开发之外，这类问题一直涌现出来；Rands 的不羁、诙谐的看法让人受教的同时给人感到快乐。（[Dave Neary][14] 推荐并评论）

#### [_开源：来自开源革命的呐喊_][29] (O'Reilly, 1999)

对于开源狂热者而言，这本书是必读的。Linus Torvalds、Eric S. Raymond、Richard Stallman、Michael Tiemann、 Tim O'Reilly 等开源运动中的领军人物分享他们对发展迅猛的[开源软件][30]运动的看法。（[Jim Hall][4] 推荐，Jen Wike Huger 评论）

#### [_创作开源软件：如何运营一个成功的自由软件项目_][31]，作者 Karl Fogel

这本书面向人群包括，期望建立或已经正在建立开源社区，或更好的理解成功开源项目社区的开发趋势。Karl Fogel 分析研究了成功开源项目的特点，以及它们如何围绕项目发展成社区。对于如何围绕项目发展社区，这本书为社区管理者（或致力于成为社区管理者的人）提供了建设性的建议。鲜有书籍可以（像本书这样）深入观察开源社区的发展并给出大量成功点子，但你仍需要结合你的项目和社区因地制宜的行动。（[Justin Flory][32] 推荐并评论）

#### [_机器人编程_][33]，作者 Albert W. Schueller

这本书介绍乐高头脑风暴 NXT 编程的基础。并不需要读者编写复杂的程序，而是通过编程让设备可以感知并与真实世界进行交互。通过完成传感器、电机实验，以及编程制作音乐，你可以了解软硬件如何协调工作。（[Rahul Thakoor][7] 推荐并评论）

#### [_AWK 编程语言_][34]，作者 Alfred V. Aho, Brian W. Kernighan 和 Peter J. Weinberger

这本书的作者就是 awk 语言的发明者，本书风格类似于 20 世纪 70 至 90 年代贝尔实验室 Unix 小组出版的类 Unix 工具书籍，使用简明、紧凑的文字介绍了 awk 的原理和目标。书中包含不少示例，从简单的开始，后面会结合描述详尽的问题或前沿案例，示例也变得复杂。本书刚出版时，典型的读者需求如下：处理和转换文本或数据文件，以及便捷地创建查询表、使用正则表达式、根据输入调整结构、对数值执行数学变换并便捷设置输出格式等。

上述需求依然存在，现在这本书也可以给人们提供一个回顾那个只能使用终端交互的年代的机会。在那时，通过“模块化”可以使用多个单一用途的程序编写 shell 脚本，用于管道处理数据，最终计算机给出人们预期的结果。在今天，awk 被视为运维工具，在处理配置文件和日志文件方面效果不错，这本书也介绍了一些这方面的内容。（[Jim Hall][4] 推荐，[Chris Hermansen][35] 评论）

#### [_像计算机科学家一样思考 Python_][36]，作者 Allen Downey

这本书是作者系列图书中的一本，介绍 Python 编程语言，系列中还有其它编程语言，包括 Java 和 [Perl][39] 等。介绍完基础的编程语法后，本书进入主题环节，着重介绍问题解决者如何构建解决方案。本书概念层次清晰，对编程初学者是很好的入门读物；对于希望在课堂等地方提高编程技能的新手，本书也适用；本书的若干章节配有例子和习题，可供测试已学的技能。（[Steve Morris][40] 介绍并评论）

#### [_认识开源和自由软件协议_][41] (O'Reilly, 2004)

“这本书填补了开源理念与法律基础上的真实意义之间的空白。如果你对开源和自由软件协议感兴趣，那么本书可以帮忙加深理解。如果你是一名开源/自由软件开发者，这本书显然是必须的。“（[Jim Hall][4] 推荐，评论来自 [Amazon][42]）

#### [_Unix 文本处理_][43]，作者 Dale Dougherty 及 Tim O'Reilly

本书写于 1987 年，用于介绍 Unix 系统及作家如何使用 Unix 工具帮助其工作。对于希望学习包括 vi 编辑器、awk、shell 脚本在内的 Unix shell 基础及 nroff/troff 排版系统的初学者而言，本书仍然是有用的资源。原版已绝版，但 O'Reilly 将本书制作为电子书，可在其网站上免费获得。（[Jim Hall][4] 推荐并评论）

### 福利：科幻小说

#### [_11 号太空站_][44]，作者 Emily St. John Mandel

故事时间设定为不远的未来，地球人口随着神秘而致命的流感爆发而锐减，故事发生在 20 年后。主人公 Kirsten Raymonde 是一名年轻女性，坚信“仅仅活着是不够的”，为此她在后世界末日时代带着一个游牧剧团在五大湖区域附近勇敢地旅行。这是个精彩的故事，很值得一读。

这本书让我震惊的是我们与技术之间实际上那么脆弱的关系。Douglas Adams 的 《Mostly Harmless》 书中有一句话很经典：“仅靠双手，他无法制造一个面包机。但他可以制作三明治，就是这样”。在 Kristin Raymonde 的世界中，每个人仅能靠自己的双手。这里没有电，因为电力网络无法运作；没有汽车，因为炼油厂无法运作。

书中有一个有趣的桥段，一个发明家使用自行车组装了一台发电机，试图启动一台笔记本电脑，尝试查看是否还存在互联网。我们看到旧世界留存的、无用的东西堆成的文明博物馆，内容包括护照、移动电话、信用卡和高跟鞋等。

世界上的全部技术都变得无用。（[Dave Neary][14] 推荐并评论）

--------------------------------------------------------------------------------

via: https://opensource.com/article/18/5/list-books-Linux-open-source

作者：[Jen Wike Huger][a]
选题：[lujun9972](https://github.com/lujun9972)
译者：[pinewall](https://github.com/pinewall)
校对：[wxy](https://github.com/wxy)

本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创编译，[Linux中国](https://linux.cn/) 荣誉推出

[a]:https://opensource.com/users/remyd
[1]:https://twitter.com/opensourceway
[2]:http://www.freedos.org/ebook/
[3]:https://opensource.com/article/18/5/node/44116
[4]:https://opensource.com/users/jim-hall
[5]:https://eloquentjavascript.net/
[6]:https://opensource.com/article/18/5/node/32826
[7]:https://opensource.com/users/rahul27
[8]:https://pragprog.com/book/vbopens/forge-your-future-with-open-source
[9]:https://opensource.com/users/bcotton
[10]:http://gitforteams.com/
[11]:https://opensource.com/article/18/5/node/43741
[12]:https://opensource.com/business/15/11/git-for-teams-review
[13]:http://www.williamury.com/books/getting-to-yes/
[14]:https://opensource.com/users/dneary
[15]:http://a.co/749s27n
[16]:https://opensource.com/article/18/5/node/19796
[17]:https://opensource.com/users/don-watkins
[18]:https://manning.com/ovadia
[19]:https://opensource.com/article/18/5/node/42626
[20]:https://opensource.com/users/stevenov
[21]:https://www.manning.com/books/linux-in-action?a_aid=bootstrap-it&a_bid=4ca15fc9
[22]:https://opensource.com/article/18/5/node/44696
[23]:https://bootstrap-it.com/index.php/books/
[24]:https://opensource.com/users/dbclinton
[25]:https://www.makershed.com/products/make-linux-for-makers
[26]:https://opensource.com/article/18/5/node/35731
[27]:https://www.amazon.com/Managing-Humans-Humorous-Software-Engineering/dp/1484221575/ref=dp_ob_title_bk
[28]:http://randsinrepose.com/
[29]:https://www.oreilly.com/openbook/opensources/book/index.html
[30]:https://opensource.com/article/18/5/node/42001
[31]:https://producingoss.com/
[32]:https://opensource.com/users/justinflory
[33]:http://engineering.nyu.edu/gk12/amps-cbri/pdf/RobotC%20FTC%20Books/notesRobotC.pdf
[34]:https://archive.org/details/pdfy-MgN0H1joIoDVoIC7
[35]:https://opensource.com/users/clhermansen
[36]:http://greenteapress.com/thinkpython2/thinkpython2.pdf
[37]:https://opensource.com/article/18/5/node/40481
[38]:http://greenteapress.com/wp/
[39]:https://opensource.com/article/18/5/node/35141
[40]:https://opensource.com/users/smorris12
[41]:http://shop.oreilly.com/product/9780596005818.do
[42]:https://www.amazon.com/Understanding-Open-Source-Software-Licensing/dp/0596005814
[43]:http://www.oreilly.com/openbook/utp/
[44]:http://www.emilymandel.com/stationeleven.html
