美文网首页我爱编程
【书评|文集】不想成为黑客的程序员不是好程序员

【书评|文集】不想成为黑客的程序员不是好程序员

作者: 夜未央mm | 来源:发表于2018-06-28 08:27 被阅读47次

    程序员留给人的错误印象,大多是呆板邋遢、不修边幅、不懂浪漫的边缘人物,可是当真正和这些人朝夕相处的时候,你会发现他们是一群高智商、有主见、有思想的最可爱的人。就像《黑客帝国》中的尼奥一样,在现实世界不尽如人意,在计算机世界里却可以如鱼得水,充当救世主的角色。

    每个程序员都会有一个黑客理想,渴望着能够通过编程创造财富、改变人生。什么是黑客?怎样成长为一名黑客?黑客具备什么样的精神呢?黑客又能创造什么样的财富?他有怎样的工作习惯?使用什么样的编程语言呢?在保罗·格雷厄姆文集《黑客与画家》中均有详尽的描述。

    《黑客与画家》是硅谷创业之父保罗·格雷厄姆写于2000年左右的文集,虽然时代略久远,但思想永不过时,字里行间充满了计算机时代的真知灼见,甫一问世就广受好评。书中不仅有对黑客文化的阐述、创业哲学的体悟,行业规则的介绍,还有编程本质的说明,有助于读者全面培养编程思维,建立独立思考的习惯和全局观。

    保罗·格雷厄姆生于1964年,匹兹堡郊区的一个中产阶级家庭。 青年时代开始编程,中学时写过小说,本科主修哲学,研究生主攻人工智能,拿到博士学位后,报名进入罗德岛设计学院暑期班,学习绘画过程,梦想成为画家,但是艺术家之路十分坎坷,收入低且不稳定,为解决生计,格雷厄姆开启了黑客生涯——以编程为业。

    与合伙人创建的Viaweb公司,被雅虎收购之后,保罗·格雷厄姆不习惯大公司的工作氛围,辞职写博客,这些文集就成了我们今天看到的《黑客与画家》。在一次演讲中,受创业学生好点子的鼓舞,从此走上了天使投资人的道路。

    (一)黑客和黑客精神

    在媒体和大众眼中,黑客则是入侵计算机,威胁网络安全的计算机罪犯。实际上,黑客源自英文“Hacker”,该词诞生于20世纪60年代,泛指擅长计算机技术,精通各种编程语言和操作系统的计算机专家。而“hack”则必然包含着高度的革新、独树一帜的风格和精湛的技艺。

    根据自由软件基金会创始人理查德·斯托尔曼的定义,黑客行为包括三点:好玩、高智商、探索精神。而保罗·格雷厄姆则认为黑客与画家有许多共同点:二者都是创作者身份,且在创作过程中注重细节,反复修改,分工合作,以及用户思维。此外,黑客还是一群崇尚自由,反对版权法,不服从管教的人。

    在计算机领域,王垠是一位叛逆狂傲、不走寻常路、充满理想主义、天才般的黑客。他在97年高考失利,考入四川大学计算机系,自学DOS、Linux、LaTeX,因为阅读《计算机程序设计的艺术》,认识了人工智能之父高德纳,得到过Knuth支票和T恤鼓励、并与其有邮件往来。

    因为与高德纳的机缘,毕业后王垠被保送到清华大学计算机系硕博连读,主要进行集成电路布线算法的研究。在校期间完成《完全用Linux工作》、《写给支持和反对<完全用Linux工作>的人们》,痛陈windows弊端、宣扬Linux,引起极大轰动效应,成为Linux社区的偶像级人物。

    2005年,王垠作为第一作者撰写的论文参加国际学术会议获奖,但他却不满学校的科研氛围,在9月发表《清华梦的粉粹——写给清华大学的退学申请》明确要求退学。出国后,到康奈尔大学计算机就读,2008年再次退学,转到印第安纳大学伯明顿分校,2012年退学,并发表《对博士学位说永别》。王垠对国内外的教育体制的不满,可见一斑,宁为玉粹不为瓦全。

    王垠在业界也不同凡响,在Google做过两次、每次4个月的实习生,其中一次做的是一个Google内部检索所有项目代码的工具,王垠负责Python检索部分,他用一周左右的时间就拿出了一个原型并顺利完成了整个项目,被项目负责人赞誉为“与实习生合作20年间遇到的技术最领先的”。

    而他与微软的恩怨纠葛更是在博文《微软的秘密离职协议》中表达的淋漓尽致,谴责微软对员工的压榨,讨伐微软给员工签署的不平等条约,虽然最终被微软封杀,但其以一己之力抗衡微软的勇气让人侧目,用行动践行了黑客不畏强权的叛逆精神。

    (二)黑客成为富人,会给社会带来什么样的财富

    在农耕文明时期,财富就是土地;而在工业化时代,财富则包罗万象。

    在各方组织的大力宣传下,平均主义的财富观在人们心里生根发芽。美国《独立宣言》中强调“all men are created equal”,清末太平天国运动的《天朝田亩制度》将农民平均主义思想发展到最高峰,而中国工农红兵在土地革命战争时期的“打土豪,分田地”的共产主义思想更加深入人心。

    再加上历史上财富积累的声名狼藉,多是烧杀劫掠带来的,因此仇富心理在所难免,至于贫富差距的拉大简直是社会动乱的前兆。“朱门酒肉臭,路有冻死骨”,杜甫在《自京赴奉先县咏怀五百字》表达过贫富差距的哀思。

    但是保罗却在《黑客与画家》中提出不一样的观点,他认为每个人的技能不同,收入亦不同,这才是贫富分化的主因,正如逻辑学的“奥卡姆剃刀”原则所说,简单的解释就是最好的解释。如果收入完全按照个人创造的财富数量而分配,那么结果可能是不平均的,但很难说是不公平的。

    试想,你辛辛苦苦上了四年大学,结果找工作的时候还不如街边摆摊的文盲大妈挣钱多,你心里是什么滋味?如果现代社会的收入是绝对平均的,它只会带来不良后果——技术革新的停滞,因为那些真正创造财富的人没有获得应得的报酬,于是他们不愿意工作了。

    社会之所以需要富人,不是因为富人可以创造就业机会,也不是财富从富人向穷人之间的扩散效应,而是人类文明的整体进步,带来更多的发明创造和技术革新。就像爱迪生发明了电灯,瓦特发明了蒸汽机,贝尔发明了电话,莱特兄弟发明了飞机。

    而黑客则是计算机领域,最具创造力的实干家。只有让他们拥有财富,才能激发他们的潜质,为人类带来更多的互联网行业的技术革命。就像王垠离开微软,吐槽的关键点就是财富所得与价值创造的不匹配。

    (三)什么样的编程语言才是世界上最好的语言

    所有的程序员都认为自己用的语言是世界上最好的语言,就像自己的恋人是世界上最美丽的公主或最帅气的王子一样。

    保罗·格雷尔姆在《黑客与画家》中不遗余力的褒奖Lisp语言,声称创建的Viaweb之所以能够在市场上抢占先机,就是因为大量使用了Lisp这一古老而强大的语言。他甚至还扬言,通过竞对公司的招聘信息可以推测其技术水平:如果只是有大量IT词汇,内容越多越构不成威胁;如果招聘Oracle人员,则永远不用担心;如果招聘C++/Java,同样不会构成威胁;而若是Perl/Python则稍微有点威胁;而若是Lisp则如临大敌。

    Lisp到底是什么样的语言?它是由约翰·麦卡锡于1958年设计出来的,真正的开发者则是他的学生是史蒂夫·拉塞尔。Lisp主要有九大思想:1. if-then-else的条件结构;2. 数据类型-函数;3. 递归;4. 变量的动态类型;5. 垃圾回收机制;6. 程序由表达式组成;7. 符号类型;8. 代码使用符号和常量组成的树形表示法;9. Lisp不真正 区分读取期、编译期和运行期,无论什么时候,整个语言都是可用的。

    不实际接触和学习Lisp,很难解释清楚其设计思想有何绝妙之处。但每个程序员都想或者希望自己用的语言永不过时,甚至走在时代的前列。保罗认为,编程语言就像生物物种一样,存在进化脉络,许多分支最终会走入进化的死胡同,例如Cobol,甚至Java,都会遭际尼安德特人的命运。要想屹立不倒,只能选择进化主干上的语言。

    这些语言的特点是强大且小的语言内核(基本运算符),高度抽象,干净简洁,上手快,拥有出色的性能分析器、优秀的学习案例、丰富的函数库。而如果编程语言具有很高的互动性,开放源码,鼓励再设计,则是青春永驻的象征,因为这些特质会深受黑客的拥趸和追捧。

    不是当下流行的语言就是好的语言,只有活下来、活得好、活得久的语言才是经得起时间考验的语言,才是值得我们关注的语言。没有能够难倒程序员的语言,就像不想成为黑客的程序员不是好程序员。

    相关文章

      网友评论

        本文标题:【书评|文集】不想成为黑客的程序员不是好程序员

        本文链接:https://www.haomeiwen.com/subject/vhqoeftx.html