《Just for Fun》读后感
这本书有一个长长的中文名字:《只是为了好玩:Linux之父林纳斯自传》,所以博客标题我就用英文书名了。
读罢此书,不禁想起一位长者的名言:“一个人的成功当然要靠自我奋斗,但也要考虑历史的进程”。可以说Linux到的成功不完全是Linus有意为之,但在Linus身上(如同我之前读过的理查德·斯托曼的传记《若为自由故》一样),我能看到那个时代所有伟大黑客的特质。那些所有计算机天才共有的,又或者Linus独有的,感谢上大学来读过的书,让我都有所洞见。
1.良好的熏陶
从冯·诺依曼到林纳斯,无不在少年时代就接受了良好的技术熏陶,冯·诺依曼自不必说,林纳斯也是从十岁起就帮着自己的外祖父(赫尔辛基大学的一个统计学教授)输入计算机程序,大多数人到了大学才接触计算机编程,相比之下,林纳斯这类人已经领先我们十年身位了。想想我们10岁的时候,又在干什么呢。十年意味着他们有足够的试错机会,而留给一个20岁程序员的试错机会就不多了。自古英雄出少年,其实还是很有道理的。
单就拿冯·诺依曼和林纳斯来说,他们虽然都是计算机领域的大师,但童年也后很多不同之处。冯·诺依曼出身家境优渥的犹太家庭,自幼接受良好的家庭教育,而那个时代的匈牙利教育也堪称现代教育的典范,培育了无数诺奖获得者,而林纳斯除了外祖父是统计学教授外,和普通家庭没什么两样,但正是这个良好的启蒙以及自由的成长环境,让他有足够的空间肆意生长。而不是把时间浪费在应试教育上。
2.黑客精神
不想多解释什么是真正的黑客,一个黑客当然要像斯托曼那样,用他亘古绝今的编程匠艺为计算机世界带来GCC,Emacs这样伟大的作品,又或者是GPL这样非凡的创造,以一己之力推动时代的巨轮。林纳斯身上当然也有这些品质,但他更像一个现实的人,他说自己很懒惰,所以才有了Linux开创性的协作开发方式。他对钱不感兴趣。相比于其他两位大佬,盖茨很伟大,但他对基尔代尔做的事情可真不地道;乔布斯更像是一个伟大的推销员,一直都是。
黑客的懒惰是指他们不愿意花时间在无聊重复的事情上,又或者用技术改变自己不满意的现状。在林纳斯身上,这种懒惰尤为典型,他不愿修补Linux的每一个补丁,所以开源了Linux,让全世界优秀的程序员一起来开发,他受够了集中式版本管理系统的弊端,所以开发了Git这个分布式代码版本管理系统。Linux或Git,二得其一,即可名扬天下,林纳斯一个人就做了。
3.一个我的观点
没有人说,书里也没有提及。但我不记得哪本书里面看过。芬兰(以及很多东欧国家)的人均阅读量高居世界前列,很大程度上跟东欧的气候有关,尤其是冬天,天气寒冷,白天很短,几乎没有什么户外运动的消遣,再适合林纳斯这样的黑客鼓捣电脑不过了。所以我看,东欧以及俄罗斯盛产黑客和伟大的数学家,和这一地区的气候也不无关系。
4.这是编程的好时代吗
值得一提的是,美国,尤其是硅谷(车库文化和斯坦福大学)一直是计算机世界前进的重要动力,但是,在遥远的东欧,远离技术中心的芬兰(或许这么说也不准确,诺基亚曾是这个国家的骄傲,芬兰是电子通信的先驱),林纳斯却凭一己之力缔造了Linux帝国的开端。堪称奇迹,看看我们这个时代,信息爆炸,获取方便,传闻牛顿提出三大定律的时候,已经掌握了那个时代所有的知识,而近一百年来,知识以指数形式爆炸增长,虽然信息变多了,但有用信息的比例一定增加了吗,我不知道。
林纳斯提到了那本把他“推向生命巅峰的书”:《操作系统:设计与实现》,我上大学以来,目前已经借了200多本书,很多没仔细看,但仔细看过也不算少了,可能超过一些人大学四年的借书量(而我还有一年半时间来继续提高这数字),但我必须承认,我还没遇到那本会改变我生命轨迹的书,至少现在没觉得。某种程度上,我们被信息淹没了。对于阅读量高于平均水平的我来说,感受尤为深刻。
这是,编程的好时代吗?那个时代肯·汤普森弄个说明手册也要高兴好一阵,盖茨甚至到垃圾桶去找资料文档,信息甚至匮乏,但他们的丰功伟绩却令后人难以望其项背了。不过话又说回来,林纳斯最后还是去了美国,去了硅谷,确实,他怎么能把一辈子浪费在赫尔辛基呢。就像现在的中国,多少人奔向北上广深杭这样的大城市,谁会喜欢人多嘴杂空气差呢,但只有在这样的一线城市,才能看到最牛的技术、遇见最强的人。我记得大一选修的时候,一个老师说过,“人这一辈子,一定要去北上广这样大城市生活过才算完整”。不一定是为了情怀,而是拥有格局。格局真的很重要,记得从农村初中录取到县城最好的中学之后,我看到了前所未有的差距,如果不努力爬更高的山,渡更宽的河,那么你的眼界就已经注定了这一生只能庸庸碌碌。
其实,零零散散还有很多感想,奈何文笔拙劣。以书中一段话结束吧:
他是Linux和Git的缔造者,它是一个传统的黑客,与沃兹一样,少年成名,崇尚自由,一生只为寻找欢笑,他,是一名真正的程序员。
《Just for Fun》读后感的更多相关文章
- 《DevOps软件架构师行动指南》读后感
从软件架构师视角讲解了引入DevOps实践所需要拥有的技术能力,涵盖运维.部署流水线.监控.安全与审计以及质量关注,这是本书一开始内容简介的开头,本书的作者是伦恩·拜斯(Len Bass).英戈·韦伯 ...
- nodejs开发指南读后感
nodejs开发指南读后感 阅读目录 使用nodejs创建http服务器; supervisor的使用及nodejs常见的调式代码命令了解; 了解Node核心模块; ejs模板引擎 Express 理 ...
- DevOps:软件架构师行动指南(文摘)
第一部分 背景 第1章 DevOps是什么 第二部分 部署流水线 第三部分 横切关注点 第四部分 案例研究 第五部分 走向未来
- 2020年DevOps工程师入门指南
DevOps兴起于2010年代,到现在DevOps已经在行业中拥有了一席之地,并在继续发展壮大. 有兴趣成为一名DevOps工程师吗?如果想要成为一名DevOps工程师,需要做到以下五点: 要有开发者 ...
- 5月29日 Java性能调优指南 读后感
并行垃圾收集器 串行垃圾收集器 并发标记清除(CMS)垃圾收集器 Garbage First(G1)垃圾收集器 没有深入的学习G1的原理,只是看了大概的思想; SA工具:待学习
- 敏捷开发、DevOps相关书籍——书单
自己瞎整理的一些书单,都是豆瓣评分比较高的书,可以作为选择的一个参考. 书名 豆瓣链接 持续交付:发布可靠软件的系统方法 https://book.douban.com/subject/6862062 ...
- 有奖试读—Windows PowerShell实战指南(第2版)
为什么要学PowerShell? Windows用户都已习惯于使用图形化界面去完成工作,因为GUI总能轻易地实现很多功能,并且不需要记住很多命令.使得短时间学会一种工具成为可能. 但是不幸的是,GUI ...
- [转载]你所不了解的DevOps
DevOps开发运维训练营 一旦建立了创新的文化,即使那些并非科学家或者工程师的人——诗人.演员.记者——也能以团体的形式,接受科学文化的意义.他们信奉创新文化的概念.他们以促进这种文化的方式投票.他 ...
- 给 DevOps 初学者的入门指南
当我们谈到 DevOps 时,可能讨论的是:流程和管理,运维和自动化,架构和服务,以及文化和组织等等概念.那么,到底什么是"DevOps"呢? 什么是DevOps 随着软件发布迭代 ...
- CI Weekly #3 | 关于微服务、Docker 实践与 DevOps 指南
CI Weekly 围绕『 软件工程效率提升』 进行一系列技术内容分享,包括国内外持续集成.持续交付,持续部署.自动化测试. DevOps 等实践教程.工具与资源,以及一些工程师文化相关的程序员 Ti ...
随机推荐
- springmvc+spring+mybatis+maven项目集成shiro进行用户权限控制【转】
项目结构: 1.maven项目的pom中引入shiro所需的jar包依赖关系 ? 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 ...
- 深入理解javascript选择器API系列第二篇——getElementsByClassName
× 目录 [1]使用 [2]classList [3]扩展 前面的话 既然有getElementById()和getElementsByTagName()方法,为什么没有getElementsByCl ...
- 金融行业的BI应用分析
商业智能是一种提高企业智能化的手段,它可以满足企业发展的需要.提高企业的竞争力.同时,对于提高金融行业的风险管理.提升对外服务的质量都能够起到关键性的作用. 在市场竞争和银行业务转型期间,商业智能对于 ...
- android AsynTask处理返回数据和AsynTask使用get,post请求
Android是一个单线程模型,Android界面(UI)的绘制都只能在主线程中进行,如果在主线程中进行耗时的操作,就会影响UI的绘制和事件的响应.所以在android规定,不可在主线中进行耗时操作, ...
- HTML5-电影影评网
学习完了HTML5的新标签,然后结合之前的案例做了第一个小案例.自我感觉良好.下面我来展示一下图片 这是我浏览其他网站的时候以为发现的新功能可以运行代码,这是运行之后截得图片.自我感觉照片还是蛮高大上 ...
- Java 根据经纬度计算两点之间的距离
package xxx.driver.business.utils; /** * <p>Represents a point on the surface of a sphere. (Th ...
- python中的ValueError
在初学时候,会遇到这种错误,修改了代码,一一比对了代码,发现代码,没有错误,可是就是运行不了. 我们先从错误的语句来入手!(这显示了英语很重要) ValueError: need more tha ...
- android 设颜色透明值
如:把 <color name="line_gray_tran">#8d8d8d</color> 要设70%的透明值 计算方法:255*0.75=19 ...
- 初识Android Studio
刚开始接触Android Studio,很多不适应的地方,自己慢慢摸索,记录下了一些问题和解决途径. 为了能使用android虚拟机,需要下载镜像,镜像有基于arm架构的也有基于intelx86.x6 ...
- C# 闭包问题-你被”坑“过吗?
引言 闭包是什么?以前看面试题的时候才发现这个名词. 闭包在实际项目中会有什么问题?现在就让我们一起来看下这个不太熟悉的名词. 如果在实际工作中用到了匿名函数和lamada表达式,那你就应该高度注意啦 ...