在我的上一篇文章中(不朽传奇-云计算技术背后的那些天才程序员:Qemu的作者法布里斯贝拉) 提到了Bellard是一个极具黑客气质的天才程序员,从某种意义上来说,只有黑客精神能完美阐述Bellard那些“离经叛道”也好,不可思议也好的行 为背后的驱动力。注:这里的“黑客”和我们经常在影视作品或传媒中出现的,主要进行计算机或网络攻击,破坏等行为没有任何关系,Eric Raymond 对此有过清晰的描述,在此不再赘述,为了避免误读,本文统称为极客。

虚拟世界中的极客精神


现实世界里极客精神与天才程序员的关系就像是科幻电影星球大战中所描绘的原力与绝地武士的关系,两者惊人的相似,原力是绝地武士生命的组成部分之一,极客精神亦然,就像绝地武士的最强大力量来自于原力,天才程序员的最强大力量来自于极客精神,其导致的结果也一样,绝地武士主宰了整个宇宙文明的走向,现实世界中天才程序员影响了人类整体信息产业的格局,进而影响了整个人类文明的走向,同样,在科幻世界中绝地武士屈指可数,现实世界中天才程序员凤毛麟角

计算机体系结构一个现实世界中的矩阵
曾几何时,计算机体系结构对于程序员来说就像矩阵对于Neo一样透明,因为第一代程序员就是硬件设计人员,他们设计并制造了硬件,同时写下能够被硬件执行的代码,时至今日,我 们很少能够看到这些对计算体系如此了如指掌的人了,偶尔闪现的那些身影,他们的名字振聋发聩,并被我们冠以天才的称号,究其原因,是基于工业化的发展需 要,我们创造性的为整个计算领域建立了一套严密的框架体系,这些框架体系是如此“完美”,使整个计算机工业从硬件到软件严丝合缝的粘合在一起,并以极快的 速度向前飞速发展,与此同时,作为这个体系的一个组成部分,程序员自然丧失了先前的自由,被体系结构牢牢禁锢于其中,就像矩阵中的Anderson,命运从此不由自己掌握。让我们简要回顾一下计算机发展史,从中我们可以清晰的看到这一堵堵禁锢我们于其中的高墙是如何建立起来的。

远古时代:

“too much information to decode the Matrix. You get used to it. I…I don’t even see the code. All I see is blonde, brunette, red-head.” 《Matrix》

第一代程序是用机器语言编写的,机器语言是内置在计算机电路中的指令,由0和1组成。例如计算2+6在某种计算机上的机器语言指令如下:
10110000 00000110
00000100 00000010
10100010 01010000
第一条指令表示将“6”送到寄存器AL中,第二条指令表示将“2”与寄存器AL中的内容相加,结果仍在寄存器AL中,第三条指令表示将AL中的内容送到地 址为5的单元中。毫无疑问,这种机器指令不需要解码,具有绝佳的执行效率,在这个时代,程序员往往就是硬件设计人员。在这个时代的末期出现了汇编语言,它 使用助记符(一种辅助记忆方法,采用字母的缩写来表示指令)表示每条机器语言指令,例如ADD表示加,SUB表示减,MOV表示移动数据。相对于机器语 言,用汇编语言编写程序就容易多了。例如计算2+6的汇编语言指令如下
iMOV AL,6
ADD AL,2
MOV #5,AL

中世纪:

“No – no words. No words to describe it. Poetry! They should have sent a poet. So beautiful. So beautiful… I had no idea.” 《Contact》

当硬件变得更强大时,就需要”更强大”的语言使计算机得到更有效地使用。汇编语言向正确的方向前进了一大步,但是程序员还是必须记住很多汇编指令。 相应的,高级程序设计语言(简称高级语言,机器语言和汇编语言称为低级语言)从而登上历史舞台,高级语言的指令形式类似于自然语言和数学语言(例如计算 2+6的高级语言指令就是2+6),不仅容易学习,方便编程,也提高了程序的可读性。但是在获得效率的同时,识别机器语言成为了一种极为稀缺的能力。

文艺复兴:

“We don’t know who struck first, us or them. But we know that it was us that scorched the sky.” 《Matrix》

在这个时期,由于用集成电路取代了晶体管,处理器的运算速度得到了大幅度的提高,处理器在等待运算器准备下一个作业时,无所事事。因此需要编写一种程序,使所有计算机资源处于计算机的控制中,这种程序就是操作系统。
到了1973年的时候,贝尔实验室的Ken Thompson 与Dennis Ritchie感到用汇编语言做移植太过于头痛,他们想用高级语言来完成第三版,对于当时完全以汇编语言来开发程序的年代,他们的想法算是相当的疯狂。一 开始他们想尝试用Fortran,可是失败了。后来他们用一个叫BCPL(Basic Combined Programming Language)的语言开发,他们整合了BCPL形成B语言,后来Dennis Ritchie觉得B语言还是不能满足要求,于是就改良了B语言,这就是今天的大名鼎鼎的C语言。于是,Ken Thompson 与Dennis Ritchie成功地用C语言重写了Unix的第三版内核。至此,Unix这个操作系统修改、移植相当便利,为Unix日后的普及打下了坚实的基础。而 Unix和C完美地结合成为一个统一体,C与Unix很快成为世界的主导。现代操作系统接管硬件的之时,也是新的一堵墙建立之日,从此程序员更多依靠编译器优化代码,利用链接器完成地址空间的组织,依靠OS来驱动硬件,利用硬件和OS来寻址和实现多任务,从OS层面,又划分为内核程序员与用户态程序员

现代:

“These walls are funny. First you hate ‘em, then you get used to ‘em. Enough time passes, you get so you depend on them. That’s institutionalized.”《Shawshank Redemption》

体系结构(高墙)的建立使得计算机工业飞速发展,技术与效率的突飞猛进带领我们快速步入云时代,但是,自由精神并没有因此泯灭,相反的,以Linux为代表的开源软件使得我们重新有机会去接触并掌握那些我们“失去”已久的东西,程序员重新开始站在软件的角度来审视硬件,通过编写直接针对硬件或由软件模拟硬件的代码来重新获取我们失去已久的自由。同时以Google和Facebook为代表的公司把Full Stack提升为衡量优秀程序员的标准也极大的激发了程序员的热情。

极客精神与挑战极限

“Some birds aren’t meant to be caged, that’s all. Their feathers are just too bright.” 《Shawshank Redemption》
“有的鸟毕竟是关不住的,它们的羽翼太光辉了!”

极客精神的最核心要素是独立思考并且热衷于挑战极限,有一句哲语是这样描述的,“精神的最高境界是自由”,极客精神正是这句话的生动写照,善于挑战与打破极限是天才程序员与普通程序员的本质区别, 具备极客精神的那些天才程序员能够像鸟儿翱翔于蓝天一样穿梭于计算机体系结构的各个角落,能够像夏洛特福尔摩斯闲庭信步于思维宫殿一样游走于计算科学的各 个领域,这些得益于在他们眼中,那些被高墙隔开的各个区域只不过是他们的一个个私有领地,天才固然有一部分因素来自于他们的天赋,但是更多的是来自于他们 对于自由的渴望和挑战极限的热情,就像传奇程序员John Carmack所言,”只要冰箱里有足够的Diet Coke和最喜爱的Pizza,我能用计算机实现任何事情“。

就像那句话,真正被筑起的是心灵的高墙,不是要置人于千里,而是要看看谁会足够在意自己,从而去推倒这座墙。

转载于:https://my.oschina.net/u/1757926/blog/290164

天才程序员的灵魂-现实与虚幻世界中的极客精神相关推荐

  1. 综艺《燃烧吧!天才程序员》:科技类真人秀凭什么吸引人?它是在消费群体吗?

    程序员可能没想到,有一天自己能成为一档真人秀综艺的主角.<燃烧吧!天才程序员>让人心中浮现了很多小问号:看什么,看他们敲着键盘写代码吗? 这是国内首档程序员真人秀,经过层层筛选的20位顶尖 ...

  2. 吃瓜吃瓜:国内首档程序员真人秀来袭!天才程序员鹿死谁手?

    程序员可能没想到,有一天自己能成为一档真人秀综艺的主角.<燃烧吧!天才程序员>让人心中浮现了很多小问号:看什么,看他们敲着键盘写代码吗? 这是国内首档程序员真人秀,经过层层筛选的20位顶尖 ...

  3. 云计算技术背后的天才程序员:Open VSwitch鼻祖Martin Casado

    摘要:Martin Casado被称为软件定义网络之父,OpenFlow的发明人.Nicira的创始人.硅谷最炙手可热的"40 under 40"之一,另外,他提交的虚拟交换机Op ...

  4. 一个天才程序员的黑帮大佬人生

    有的程序员驱动光明世界,也有程序员成为黑暗疆域主宰. 这就是刚刚被曝光的"保罗哥"事迹. Paul Le Roux (保罗·乐·鲁克斯),一个47岁程序员,1972年生于津巴布韦, ...

  5. Google大佬自述:天才程序员竟也有不为人知的秘密,看完真的学到了!

    缘起 最近在YouTube里看了一条谷歌大佬的公开演讲,题目叫做The Myth of the Genius Programmer,翻译过来就是天才程序员的秘密.这篇演讲是两位在谷歌subversio ...

  6. 有的程序员驱动光明世界,也有程序员成为了黑暗疆域的主宰!一个天才程序员的黑帮大佬人生

    一个天才程序员的黑帮大佬人生.这就是刚刚被曝光的"保罗哥"事迹. Paul Le Roux (保罗·乐·鲁克斯),一个47岁程序员,1972年生于津巴布韦,码农生涯开始于南非,靠加 ...

  7. 80后天才程序员,Facebook 第一任 CTO,开挂人生到底多变态?

    https://www.toutiao.com/a6695906930474353156/ 今天介绍一位天才程序员--亚当·德安格洛(Adam D'Angelo),他被<财富>杂志誉为&q ...

  8. 80后,天才程序员, Facebook 第一任 CTO,看看开挂的人生到底有多变态?

    今天介绍一位天才程序员--亚当·德安格洛(Adam D'Angelo),他被<财富>杂志誉为"科技界最聪明的人之一",大学去了被誉为"天才"摇篮的加 ...

  9. 与Linus Torvalds“并列”,虚拟化天才程序员法布里斯贝拉

    摘要:谈起阿兰·图灵.高德纳.艾兹赫尔·戴克斯特拉,我们并不陌生,这些振聋发聩名字背后是颠覆了人类生活的现代计算机工业.然而有些人的荣誉却远低于他的贡献,比如Fabrice,过去20年最闪亮和最有影响 ...

最新文章

  1. leetcode 206 Reverse Linked List
  2. 判断某棵二叉树是否二叉排序树
  3. oracle触发器的测试,ORACLE触发器的测试
  4. 前端速成班_在此速成班中学习Go
  5. 反汇编基础-数据类型以及C++引用、指针反汇编后的概括
  6. align latex 使用_latex中使用listings时如何使matlab代码块居左而非居中,最好与上面的文本对齐...
  7. Lucene学习笔记
  8. 转载-Oracle ORACLE的sign函数和DECODE函数
  9. 用phpcms如何将静态页面制作成企业网站(下)
  10. php支付问题,如何解决php支付错误的问题
  11. linux mask 特殊权限位,Linux 特殊权限
  12. 2021年中国水力发电装机量、发电量和竞争格局情况,总水电装机容量达391GW「图」
  13. [Ubuntu] 解决Win10+Ubuntu双系统时间不一致问题
  14. ie10不适用计算机,无发安装KB2731771,提示此更新不适用于您的计算机。无法安装ie10,不知道是否跟这个更新无 - Microsoft Community...
  15. RK3399 上电待机,按power按键开机
  16. java matlab 遗传算法_简单遗传算法MATLAB实现
  17. SpringMVC——MVC思想、前端控制器、SpringMVC概述、编写第一个SpringMVC程序
  18. android 相册png黑底,Android png透明图片转jpg时背景变黑的解决方法
  19. 这4款神级软件 最好用的软件
  20. abuse file struct 阅读记录

热门文章

  1. 蚂蚁搬沙(2017佛山市选拔初中组)
  2. 网站首页实战教程html,Python实战课程1-1练习:创建一个网页
  3. 三分钟读完套利定价理论
  4. 【暴力】 会长爱数学 校OJ2346
  5. Jenkins 视图
  6. iText编辑Pdf模板
  7. 手把手教你打造自己的 AI 虚拟主播
  8. 【图】图的相关概念以及图的存储
  9. XT800 在域环境在运行设置
  10. 大众CC---PA自动泊车辅助系统