春节读完了 Brian W. Kernighan 的最新著作《UNIX 传奇》,却一直没时间输出点什么,今日趁将机械键盘拾掇出来使用之时,且做笔记沉淀一二。

Brian W. Kernighan 其人是谁?

Brain Kernighan,加拿大计算机科学家,曾在贝尔实验室工作超过 30 年,目前为普林斯顿大学教授。他曾参与 Unix 的研发,也是 AMPL(A Mathematical Programming Language,数学编程语言与 AWK(文本处理工具)的共同创造者之一,他和 Dennis Ritchie 共同写作了C语言的第一本著作《C程序设计语言(The C Programming Language)》,他是大名鼎鼎的 K & R(Kernighan and Ritchie)里面的 K,当然也是 AWK 里面的 K 。作为 Unix 的开发者之一、Unix 命名者,亲眼见证了 Unix 的诞生。关于 Kernighan,还有一个有趣的定律——柯林汉定律。

Debugging is twice as hard as writing the code in the first place. Therefore, if you write the code as cleverly as possible, you are, by definition, not smart enough to debug it.
调试在一开始就比编写程序困难一倍。因此,按照定义,如果你的代码写得非常巧妙,那么你就没有足够的能力来调试它。

《UNIX 传奇》讲的是什么?

本书的介绍是这样写的:

自 1969 年在贝尔实验室的阁楼上诞生以来,Unix 操作系统的发展远远超出其创造者们的想象。它带动了许多创新软件的开发,影响了无数程序员,改变了整个计算机技术的发展轨迹。
本书不但书写 Unix 的历史,而且记录作者的回忆,一探 Unix 的起源,试图解释什么是 Unix,Unix 是如何产生的,以及 Unix 为何如此重要。
除此之外,本书以轻松的口吻讲述了一群在贝尔实验室工作的发明天才的有趣往事,书中每一个故事都是鲜为人知却又值得传播的宝贵资源。

总结下来,基本可以囊括两个方面:

  • Unix 诞生往事:这个作为现代计算机起源的操作系统,诞生得格外有趣,Ken Thompson 的太太休了 3 周的假,带着孩子回加州探望父母,由此获得了 3 周不受打扰的工作时间,“一周,一周,再一周,我们就有了 Unix”。多说一句,Unix 的命名来自于 Kernighan。

  • 一群天才人物、传奇程序员聚集在一起,做了自己想做的、有意思的事情,除了 Unix 之外,还有 C 与 C++、Go,很难说究竟是贝尔实验室成就了他们,还是他们成就了贝尔实验室。

贝尔实验室

持续的资金投入是研究工作的关键保障,这意味着 AT&T 能布局长远,贝尔实验室的研究员们也能自由探索那些未必有短期回报,甚至可能永无回报的领域。

贝尔实验室的起源,来自于 AT&T 在其发展历史的早期阶段,AT&T 意识到,它需要一个研究机构系统地解决建设全国电话系统时遇到的科学和工程难题。1925 年,AT&T 创办研发子公司贝尔电话实验室(从这个名称我们可以看出,贝尔实验室的研究重点始终还是电话系统),意在解决这些难题。这也就是我们常说的贝尔实验室。

从 1967 年做实习生开始,直到 2000 年退休,Brain Kernighan 在贝尔实验室工作了 30 多年。还在实习的时候,他遇到了 Richard Hamming(纠错码发明者,他分享的《你和你的研究》直至今日依然为人津津乐道)。

Kernighan 笔耕不辍,有着非常多的著作,而 Hamming 是促使 Kernighan 写书的人。“他认为,应该像教写作一样教编程。好代码应该与怀代码风格迥异,应该教会程序员如何写出漂亮的、风格优雅的代码。”

Kernighan 还分享了 Hamming 的趣事:

他挂了个部门负责人的头衔,但他的部门却没有员工,这看起来有点儿古怪。他告诉我,他花了很大力气才弄来这个不用负具体责任的职衔。
很久以后,当我当上管理十几号员工的部门主管时,我才明白拥有一个不用负具体责任的职衔有多么令人羡慕。

1969 年,Kernighan 正式加入贝尔实验室时:

没人告知我具体要做什么事。惯例如此:把你介绍给其他人,让你随意晃荡,去寻找自己的研究课题和协作者。
……
贝尔实验室向来缺乏明确的管理层指示。1127 中心(Kernighan 以及 Ken 等所在部门)的项目不由管理层指派,而是自下而上,由对某个课题感兴趣的人员自主成立项目组。
贝尔实验室的其他部门也是如此:如果我参与了某个开发组,也许会“利诱”科研同事也来参加,不过他们得自愿加入。

贝尔实验室的管理原则:

雇佣聪明的人,帮他们融入环境,指出大致的需求方向,给他们很多自由空间。不是说他们想要多少钱就给多少钱。有所投有所不投。就算你误判了好东西,如果它够强,仍然会脱颖而出。—— Mike Mahoney

那些风云人物与研究

  • Douglas McIlroy 在 Unix 的发展上起了极大的作用,但他的贡献不怎么广为人知。
  • 参与 Unix 早期工作的还有:Rudd Canaday、Robert Morris……
  • 专精于某一领域的人可能会得到其直接上级的高度评价,但再上一层就未必了解其工作成果。另外,跨学科的工作在更高层眼中更突出,因为更多管理人员看得到它。协作越广泛,就会有越多管理者看得到,结果就形成了一个极其偏重协作与跨学科研究的组织。
  • 有些人成功地长期拒绝晋升。“我做部门主管后不久,Dennis Ritchie 也做了主管,但 Ken Thompson 就一直没进入管理层”。
  • 1969 年 4 月,贝尔实验室退出 Multics 项目。
  • Multics 项目最持久的贡献:它影响了一个叫“Unix”的小操作系统,这个小系统诞生的部分原因是想摒弃 Multics 的复杂架构。
  • Go 语言的诞生。“Ken 和我都于 2000 年年末从贝尔实验室退休。我去了普林斯顿大学,他加入贝尔实验室同事创办的 Entrisphere 公司。2006 年,他加入 Google 公司,和 Rob Pike 以及 Robert Griesemer 一起发明了 Go 语言。”

(1)Rob Pike 还和 Ken 共同开发了 UTF-8。
(2)2006 年 Ken 在和 Kernighan 的邮件中调侃道:“我没有改变 Google 员工年龄中位数太多,但我想确实拉高了年龄平均线。”—— 调侃自己年龄大

《UNIX 传奇》读书笔记相关推荐

  1. 读书笔记 | 墨菲定律

    1. 有些事,你现在不做,永远也不会去做. 2. 能轻易实现的梦想都不叫梦想. 3.所有的事都会比你预计的时间长.(做事要有耐心,要经得起前期的枯燥.) 4. 当我们的才华还撑不起梦想时,更要耐下心来 ...

  2. 读书笔记 | 墨菲定律(一)

    1. 有些事,你现在不做,永远也不会去做. 2. 能轻易实现的梦想都不叫梦想. 3.所有的事都会比你预计的时间长.(做事要有耐心,要经得起前期的枯燥.) 4. 当我们的才华还撑不起梦想时,更要耐下心来 ...

  3. 洛克菲勒的38封信pdf下载_《洛克菲勒写给孩子的38封信》读书笔记

    <洛克菲勒写给孩子的38封信>读书笔记 洛克菲勒写给孩子的38封信 第1封信:起点不决定终点 人人生而平等,但这种平等是权利与法律意义上的平等,与经济和文化优势无关 第2封信:运气靠策划 ...

  4. 股神大家了解多少?深度剖析股神巴菲特

    股神巴菲特是金融界里的传奇,大家是否都对股神巴菲特感兴趣呢?大家对股神了解多少?小编最近在QR社区发现了<阿尔法狗与巴菲特>,里面记载了许多股神巴菲特的人生经历,今天小编简单说一说关于股神 ...

  5. 2014巴菲特股东大会及巴菲特创业分享

     沃伦·巴菲特,这位传奇人物.在美国,巴菲特被称为"先知".在中国,他更多的被喻为"股神",巴菲特在11岁时第一次购买股票以来,白手起家缔造了一个千亿规模的 ...

  6. 《成为沃伦·巴菲特》笔记与感想

    本文首发于微信公众帐号: 一界码农(The_hard_the_luckier) 无需授权即可转载: 甚至无需保留以上版权声明-- 沃伦·巴菲特传记的纪录片 http://www.bilibili.co ...

  7. 读书笔记002:托尼.巴赞之快速阅读

    读书笔记002:托尼.巴赞之快速阅读 托尼.巴赞是放射性思维与思维导图的提倡者.读完他的<快速阅读>之后,我们就可以可以快速提高阅读速度,保持并改善理解嗯嗯管理,通过增进了解眼睛和大脑功能 ...

  8. 读书笔记001:托尼.巴赞之开动大脑

    读书笔记001:托尼.巴赞之开动大脑 托尼.巴赞是放射性思维与思维导图的提倡者.读完他的<开动大脑>之后,我们就可以对我们的大脑有更多的了解:大脑可以进行比我们预期多得多的工作:我们可以最 ...

  9. 读书笔记003:托尼.巴赞之思维导图

    读书笔记003:托尼.巴赞之思维导图 托尼.巴赞的<思维导图>一书,详细的介绍了思维发展的新概念--放射性思维:如何利用思维导图实施你的放射性思维,实现你的创造性思维,从而给出一种深刻的智 ...

  10. 产品读书《滚雪球:巴菲特和他的财富人生》

    作者简介 艾丽斯.施罗德,曾经担任世界知名投行摩根士丹利的董事总经理,因为撰写研究报告与巴菲特相识.业务上的往来使得施罗德有更多的机会与巴菲特亲密接触,她不仅是巴菲特别的忘年交,她也是第一个向巴菲特建 ...

最新文章

  1. 10使用CSS美化页面
  2. stm32之USART学习
  3. 学python最重要的是_基础、语法都不是最重要的,学Python最重要的是什么?编程思路!-站长资讯中心...
  4. Lua脚本式编程示例
  5. linux 下载rpm包到本地,createrepo:创建本地YUM源
  6. RMAN SET NEWNAME
  7. Swagger使用————接口参数注解的使用缺陷
  8. python3安装教程linux_python 在linux系统的安装教程
  9. pc构件生产线及设备_筑友装备的PC生产线
  10. 20180810 多益网络模拟笔试
  11. numpy矩阵与向量类型的向量乘法
  12. 上面两点下面一个三角形_解三角形的新视野——定角对定边~
  13. C++新特性:override
  14. Oracle-存储过程语法
  15. 记忆中永不消逝的香椿芽儿的香味·《晚唱·贾平凹》
  16. 安卓学习专栏——安卓报错android.support.v4.widget.SwipeRefreshLayout飘红
  17. Win64位系统安装Codewarrior 6.3
  18. android 媒体查询,只针对移动设备的媒体查询
  19. BC1.2和QC2.0充电器识别过程
  20. 在 vs code 中使用 go 插件时相关工具的正确安装方式

热门文章

  1. java感谢地说说_感谢支持的说说句子
  2. goland报错: Unresolved reference
  3. 解决unresolved symbol _RamfuncsLoadEnd
  4. 通俗易懂计算机知识,内存条是什么 有什么用?小白必看内存知识扫盲 通俗易懂!...
  5. WPS JS宏编程是什么
  6. 全国青少年信息素养大赛图形化编程初赛·模拟三卷,含答案解析
  7. 真实入手点评:高通骁龙875和麒麟9000哪个好-处理器跑分哪个厉害
  8. Web应用Request-请求与响应-(4.4)深入理解YII2.0
  9. vue打包-合并chunk
  10. mysql重做日志文件_MySQL 重做日志文件