成为黑客前的学生 --读《黑客与画家》
看完这本书,让我唯一感到后悔的是:没有早点开始看这本书。是的,仅仅是为了完成一篇所谓的“报告”,为了给学校下发给学生的任务交差,我打开推荐书目选单,决计要选一本书作为任务看完。在偶然间,我看到了这个书名,抱着“即使是做样子也要选一个看上去有意思的目标”这种想法,我开始阅读它,但几乎是立刻,我就被它吸引了,因为它的第一小节题名是:“为什么书呆子不受欢迎”。
我一向喜欢读书的原因之一是,印在书上的铅字,是作者曾经写下的,跨越时间、地域和语言等等障碍,与读者交流的话语。好的作品往往能冲破这些阻碍,作为文学星河中熠熠生辉的一颗,划过漆黑的夜空来到读者身边。如果这样的描述还不足以表达我对这本书的喜爱,那只能说它受限于我的表达而不是本身的水平了。
在第一章节中,尽管有些许不同,但作者自述的某些观点引发了我本身的共鸣,包括他关于学校的思考,关于“书呆子”学生处境的种种理解等等,都与我的经历和一些想法有相同之处。我非常喜欢他表述自己观点时的方式,无论是通过自身所经历的一些事引申,还是客观地表述不同看法的理解,都能看出这些话语写下时都是经过深思熟虑的——至少是考虑了种种方面,做出一些在思路上可行的推断,来帮助读者理解他的想法。这也与他之后所提到的编程法,以及“黑客”的行为和目的有着某种关联,就是他的思维延伸到了他写作之时。
作为同样喜爱编程和写作的人,我“很吃这一套”。他在文末表达“我在这篇文章中发表了一些刺耳的意见”,我却觉得意犹未尽,这“聒噪”的程度还不够,对于一些“装聋”的人来说,不够振聋发聩。当然,我需要强调的是,这篇文章没有任何极端的思想,包括我想表达的看法也是,我只是在假设一个更坏的情况:事实如同文中所不赞成的那样愈演愈烈下去。
黑客与画家中,作者表述了在被笼统地规划到“计算机科学”这个门类下的三类人——数学家,计算机博物学家和黑客的不同之处。我原先以为,在此文,包括书名中的“黑客”,指的是从事信息安全方面的人,实则不然。在文中的“黑客”,指代的是富有创意的使用计算机创作的人。这样,“黑客”与画家在本质上被串联到一起了,文中提到让黑客记住冗杂的计算理论,就像是让画家记住颜料的化学成分的必要性一样,我深以为然。
文中同时提到了,黑客既作为“建筑师”又是“工程师”,优秀的程序员不仅要建造,还需要架构,在架构过程中所做的事情,其实和画家绘画没什么两样:先是“打草稿”,再在这个过程中不断修改和完善。而这其中不需要做类似“预先规划”之类的步骤,等到万事完备后再进行编程,按照原文的话说,就像“正襟危坐,把一个盛满各种变量类型的茶杯,小心翼翼放在自己的膝盖上,为了与一丝不苟的编译器大婶交谈,努力地挑选词语,确保变量类型匹配,好让自己显得礼貌又周到”一样滑稽可笑。同时,文中又提到了在大公司中“预先规划”存在的理由,是为了方便公司做出一个整体向好的决策,尽量避免意外而不是出色的实现。文中一样用“过早优化”来形容这样做事,这是不符合黑客做事的行径的。
文中同时指出了学校中捆绑“计算机科学”的弊端,按作者观点所述,数学家并不在乎自己来了新地方,只埋头继续证明新的定理;中间部分“计算机科学家”的工作,也许还可以被称为计算机的实验科学;另一端的“黑客”,则受制于“计算机科学系”的牌子,觉得自己不该去做些真正想做的事(比如设计优美的软件),而是去写一些研究型的论文,为了配合研究的主题,很容易把工作重点从开发优美的软件转为开发一些“丑陋的东西”。
结合我的观点来看,现在学校中培养的“计算机系”人才,更像是培养中间部分的人而不是“黑客”或者数学家(数学家一般来自数学系),然而社会需要的,企业需要的更偏向于“黑客”类型的人(也不完全是黑客类型的人);为顶尖程序做出贡献,开创时代的一定是“黑客”类型的人。现在有些学校开设“软件工程”专业,其实更能培养出近似“黑客”的人,但依作者表述,最后进入企业不过是“按照工程要求在a和b之间挖一条排水渠”罢了(对不同专业来说几乎是殊途同归),我不禁失笑。
我来谈谈比较温和的,关于学生参与到社会劳动的话题(相较于作者之后的某些观点),仅仅是从计算机专业来说,去向大多数是企业,一些是科研,一些是政府机构,还有一部分失业或者从事其他职业。可以看到的是至少大多数是进入了企业(如果有好运气),但同时社会的竞争也非常激烈,这就是为什么我说“好运气”,至少有相当的职位上,一个位置代表了数以百计甚至更多的竞争失败者。企业不愿意接收Beginner,培养一个人要花费相当的资本,往往得不偿失,所以他们更倾向于有价值的目标;学校则没有承担起培养适合人才的作用,事实上,大多数学校——包括作者所读的学校都是这样的,依作者的观点来看,并不符合培养黑客的条件。
《黑客与编程》一书实则为杂文集,与我所看过《别样的色彩》类似,全书并没有一个核心的观点,而是将自己的想法分开阐述。后续章节中,作者在某些方面(比如对并行计算的看法)表现了其独到的眼光,但有些章节按照作者个人背景来看符合一定逻辑,但并没有什么普世参考价值,其理念也并非能奉为圭臬的定理,而是需要批判吸收的内容——这并非特殊对待,对任何事物的接受都理应如此。
阅读此书更应该做到的是将其与自身、社会结合起来思考,并提出任何对合理的疑问,就像他在书中所说,别人对自己说的、令自己深信不疑的内容,更应该怀疑它是否是某种时代的谬论。对于不同的意见,应该听取后再进行评判,理解后再加以剔除和保留。就像作者一开始对“为客户需求思考”极为反感,认为这么做会忽视自身的长处和意见;然而,后来他转变为“就像理解对手才能更好地击败对手”这样的态度来对待这种想法,这是更加需要听取和接纳的内容。就像书中所说的那样,等到上大学再回看高中时的审美和选衣会感到害羞,一切观点都是在变化中的。
此书对我对于看书和实际运用所学知识有所启发,它与书无关,却与我写关于这本书的读书笔记有关系。因此我觉得这份收获值得保留,即使我在文中发表了一些意见,但我仍对未来保留乐观态度。
成为黑客前的学生 --读《黑客与画家》