图片来源:www.vic-20.it
本文包括 Linus 自传 [Just for FUN 读书笔记] —— 一个书呆子(Nerd)的诞生 部分的读后感。讲述了 Linus 如何与计算机结缘。观察Linus 幼年时,对比现代科技环境与社会文化环境后的一些感想。也聊聊现代教育鸡娃的事实。作为一个程序员,同时也是一个小学生的家长,我的浅见。
正如看 《乔布斯传》并不是想或认为可能成为一样的人一样,看本文,也不是要让读者或者读者的娃成为 Hacker/Geeker 。
前面写完了:Linus 自传 [Just for FUN]读后感 - Part1 前言 后。这次开始讲内容。
之前,本系列文章命名为“读书笔记”,但后面写着写着,我觉得更合适的名字是:“读后感”。因为我更多是想把读后的想法,更多是结合自己从业20年码龄30年,以来的一些见解写下来(无论是正解还是误解)。
有时候,我会问问自己,为什么要写这些东西。流量上可能写个 ChatGPT 更好。刷简历上还不如写写 eBPF 或 Cloud Native 的东西。或者只为想写就写吧。说些诗和远方的东西。或者 50 年后,有意思的反而是这些。
全书可以分为三部分:
- 一个书呆子(Nerd)的诞生。作为自传,当然要说说主人公的出生国家和地理文化特征了。
- 一个操作系统(Linux)的诞生。讲述 Linus 为何要开发 Linux,以及其中有趣且充满戏剧性的小故事。
- 所向披靡的球王(King Of The Ball)。讲述 Linux 成功与流行后,Linus 的遇到的麻烦事与收获。以及 Linus 在哲学上对人生意义的见解。这是本书占比最大的部分。可以再细分为
- Linux 商标知识产权之争
- 控制的终结
- 前方的游乐之旅
- 讨论开源为何正确
- 名成利就
- 生命的意义讨论 II
本文主要讲述:1. 一个书呆子(Nerd)的诞生。
I. 自画像
Linus 对年轻时的自己作以下自画像:
似乎 Linus 很在意自己的大鼻子,在本书中,可能有 10 处说自己有个家族特征的大鼻子。衣着上和大多数书呆子(Nerd)/Geeker 一样,都是无特色的大街货。和大多数计算机天长一样,数学与物理对于他来说,是不需要学习就成为学霸的科目。社交能力是正常书呆子的水平,即 no social graces whatsoever(没有任何社交礼节)。
II. 与计算机的缘分
Linus 的外祖父:Leo Waldemar Tornqvist,是 Helsinki 大学的教授。
译者注:这让我自己找到个没在技术路上成就大业的借口了。毕竟,家庭出身背景已经相差很大。
机械同理心 (Mechanical Sympathy)
童年的 Linus,最愉快的记忆是玩弄外祖父的计算器
。其中有一段我觉得意味深长:
I remember having tons of fun calculating the sine of various random numbers.Not because I actually cared all that much for the answer (after all ,not many people do), but because this was a long time ago, and calculators didn’t just give you the answer. They calculated it. Andthey blinked a lot while doing so, mainly in order to give you somefeedback that “Yes, I’m still alive, and it takes me ten seconds to dothis calculation, and in the meantime I’ll blink for you to showhow much work I do. "
That was fascinating. Much more exciting than a moderncalculator that won’t even break into a sweat when doing something as simple as calculating a plain sine of a number. With thoseearly devices you knew that what they did was hard. They made itvery clear indeed .
译:
我记得计算各种随机数的正弦时有很多乐趣。不是因为我真的那么关心答案,而是因为当时,计算器不只是 给你答案。 他们需要一些时间进行计算。 他们在这样做的时候在不停眨眼(屏幕闪动),主要是为了给你一些反馈:“是的,我还活着,我需要十秒钟来做这个计算,同时我会眨眼让你知道我做了多少工作”
这很有趣。 比现代计算器更令人兴奋,现代计算器在做一些像计算数字的正弦这样简单的事情时甚至不会出汗(有延迟)。 有了那些早期的设备,你就知道他们所做的事情很困难。 从他们的表现可以看出来。
Linus 在这里没使用 “Mechanical Sympathy(机械同理心)
” 这个词。注意,这里我把 Mechanical Sympathy
翻译为 机械同理心
而非 机械同情心
。如果你在某大搜索引擎中找这个词,大多数时候,你会看到一个赛车手的名言:
You don’t have to be an engineer to be be a racing driver, but you do have to have Mechanical Sympathy.
– Jackie Stewart, racing driver
然后网上这个词的主流解释大卡是:
Martin Thompson, 博客 Mechanical Sympathy 作者, 著名高性能消息队列开源项目 LMAX disruptor 的创始人。
如果一定要来个定义,那么可以是:
机械同情是指您在使用工具或系统时了解其最佳运作方式。当您了解系统的设计用意时,您可以与设计保持一致以获得最佳性能。 例如,如果您知道当地址是一个因子的倍数时某种类型的内存更有效,您可以通过使用数据结构地址对齐来优化性能。
接触真正的计算机
后来 Linus 的外祖父购买了一台 Commodore VIC-20 计算机。这是一台早期的家用计算机。
图片来源:www.vic-20.it
他(Linus 的外祖父)希望分享经验给我(Linus)。 他还试图让我对数学感兴趣。我时常会坐在他的腿上,他会让我输入他的程序。这些程序他事先已经仔细地写在纸上,因为他用电脑键盘输入程序让他感到不适应。
除了帮外祖父录入程序。 Linus 也自己阅读了计算机的手册,并自己写很多程序。当然,第一个也是经典的 BASIC helloworld:
1 2
10 PRINT "HELLO" 20 GOTO 1 0
本文作者回忆:1991 年左右我用的是一台当年叫 GMT-XX 的国内组装学习机,可以插 NES 游戏卡,可以写 BASIC 程序和保存程序到磁带中(当然没有软盘了)。也通过自学写过几个打字游戏。要知道当年小学生的我还未认识几个英文字母。更另说知道程序代码中的单词意思了。一切也是学习中文手册和摸索中出来的。
III. 芬兰的气候环境和 Linus 的计算机热情
十月后的芬兰,持续数月地,天色基本是让人忧郁地阴沉,每天白天的时间很短,下雪后就是刺骨的寒冷。这里的冬天没多少好的户外运动,但对于我(Linus)来说,一个室内运动足以让我度过整个冬天:编程
。
也许,被动的充足的长期安静环境,充裕的基本生活,是 Linus 能一人启动 Linux 的主要原因之一。想想现在,就算下一年大雪,闲时,也可以用朋友圈和抖音打发。有几个人可以能控制自己有那么大片的闲时和坚定的自主选择的爱好(而不是被推荐引擎控制)?
你为你的第一本计算机书让其它人请求钱。 一切都是英文的,必须对英文语言解码(Linus 母语是瑞典语和芬兰语)。很难用您不太了解的语言来理解技术文献。
您用零用钱购买计算机杂志。 其中之一包含摩尔斯电码(Morse code)
程序。 这个程序的奇怪之处在于它不是用 BASIC 语言编写的。 相反,它被写成一个数字列表,可以手动翻译成机器语言——计算机读取的 0 和 1。
于是 Linus 开始接触机器语言并开始用机器语言编写一些程序。这让体验到操控计算机一切底层细节的乐趣。
由于您和计算机之间没有抽象层(高级语言),因此您与计算机之间的关系非常接近。 这就是与机器亲密接触的感觉。
这回到了上一节中我说的:机械同理心 (Mechanical Sympathy)。回到现代,无论是程序员还是接触计算机的小孩。基本已经没必要,也没机会去那么接近计算机了。新触摸屏一代,更可能连文件目录结构这些都不再需要了解了。因为一切都是 App + Share + Cloud 就够了。本文作者无意评价什么好坏,交给历史来说话吧。
你十二岁,十三岁,十四岁……。 其他孩子出去踢足球。但你觉得你外祖父的电脑更有趣。 他的机器是有它自己的世界,逻辑规则。 课堂上可能有三个人使用电脑,但其中只有一个人出于同样的原因使用它。 你每周举行一次会议。 这是日历上唯一的社交活动,除了偶尔的和计算机过夜。
但你不介意,因为你乐在其中。
想一想,如果在现代,有这么一个孩子,他的下场会是怎样?父母一定担心孩子荒废学业,考不上名校,不能走那条定义好的“成功”的大道。
当我坐在电脑前,如果有人打扰我,我会非常沮丧和烦躁。Tove(Linus 妻子) 可以详细说明这一点。
在外祖父教 Linus 使用电脑后的第 4 年,外祖父去世了。电脑交给了 Linus 。
IV. 家庭
这部分讲述了 Torvalds 这个姓是如何被 Linus 的祖父炮制出来的。也说明了他是个祖籍瑞典的芬兰人。这一节也有比较多的 politics
相关的内容。也比较有意思。因你知道的原因,我不写在这里了。
没有什么乐趣能比得上电脑的乐趣。 家里有电脑,熬夜也是可以的。 每个男孩都在床罩下熬夜 “阅读” 花花公子(playboy)
。 但是我不看花花公子
,而是假装睡觉,等妈妈走开,跳起来坐在电脑前。 这是在聊天室时代之前的事。
“Linus,吃饭时间到了!”有时候你甚至都不出来。 然后你的妈妈开始告诉她的朋友们,你是一个很容易照顾的孩子,为了让你开心,她要做的就是把你放在一个有电脑的黑暗壁橱里,偶尔扔一些干意大利面。 她离目标不远了。
当时的计算机不那么复杂,当像我这样的笨蛋年轻人可以在引擎盖下修补时(tinker under the hood),计算机实际上更适合孩子们使用。 如今,计算机遇到了与汽车相同的问题:随着它们变得越来越复杂,人们也越来越难以将它们拆开并重新组装起来,进而,了解它们的全部内容。 您最后一次在汽车上做任何比更换机油滤清器更复杂的事情是什么时候?
现在的孩子们不是在电脑的隐喻下修修补补,而是玩了太多游戏,失去了理智。我并不是说游戏有什么问题。 它们是我最早使用的一些应用。
我(本文作者)一直的观点和 Linus 的基本一样。或者,我们都老了,有点不合时宜,应该不久会被淘汰(起码我会)。现在的孩子的手是太干净了。英文有句话叫:Get your hands dirty. 中文或者叫: 纸上得来终觉浅,绝知此事要躬行——《冬夜读书示子聿》陆游。但现在的家长。想要的太多,已经没时间让孩子 Get hands dirty。也担心 Get hands dirty 对孩子的影响不可控。当然,环境上也没有了这个环境。孩子能接触到的一切,都是过度封装或包装过的。
V. 大学生活
Linus 的大学日常生活部分,其实和大部分理工男没什么分别:
- 每次到餐厅都点相同的东西:可乐与甜甜圈
- 数学学霸
第一次带女孩回家。不过可能与读者期待的八卦内容不同。Linus 是说:我唯一一次带女孩回家是在她们想要接受辅导的时候。因为他是数学学霸……
VI. 入伍当兵
当时 Linus 有两个选择:
- 社会服务
- 入伍当兵
他当然对入伍无兴趣,但他更讨厌无趣的社会服务。所以最后选择了入伍。他说了芬兰为什么要每个入伍:
它也让我有一些东西可以在我的余生中与几乎任何芬兰男性讨论。 事实上,有人认为,要求服兵役的主要原因是让芬兰人在有生之年喝啤酒时有话可说。他们都有一些悲惨的共同点。 他们讨厌 Army,但他们很乐意事后谈论它。
VII. 芬兰的起飞
为什么手机会在芬兰得到质的变化?如 Nokia? Linus 给出了解释:
由于芬兰人不愿意面对面交谈,因此我们代表了手机的理想市场。 我们对新设备的热情是其他任何国家都无法比拟的。 目前尚不清楚哪个国家确实拥有最多的人均驯鹿——想想看,这个头衔可能属于挪威——但毫无疑问,地球上哪个国家的男人、女人和孩子拥有的手机更多。 在芬兰有传言说要在出生时将它们移植到身体上。
全文作者:这个情况当然是说在本书编写之时,2002 年左右。
本文后记
作为一个程序员,同时也是一个小学生的家长,同时也是个敏感性格者。我们的选择有时是两难的。
如,自己的时间上时常要面对选择:
a. 多陪陪娃,参与他的一切
b. 事业和持续学习,程序员行业本身需要不断的学习,加上工作本身也是需要时间的。
如,对 “Get hands dirty
” 的态度上,同样是选择:
a. 放手让他错
b. 社会与环境安全的担忧
对于在引擎盖下修补(tinker under the hood),过度封装与包装而让小孩对事物寻根问底失去机会或兴趣的问题:
a. 玩 pad
b. 玩 树莓派,学习一些更基本的东西,主要目标不是学会什么,是有个拆开一切的精神和习惯
这些事上,每个人都有自己的现实和选择。但社会对人才的选拔方法,加上家长对走小路不如走大路成功几率大的思维,事实操控着这些选择。
Linus Torvalds Timeline - from timetoast.com