今天无意间,在实验室发现了一本书《编程高手箴言》,作者梁肇新。于是不经意的google了一下,看完作者的简介后吓一跳。超级解霸的作者,一个super programer,一个传奇。
于是将这本书大致翻了一下,大部分讲的是底层的知识。再看这本书的前言时,作者说了这样一句话:“高手在我看来是可以达到对从CPU本身到操作系统内核、到系统平台、到应用软件体系,到软件的具体工作都有着深层次的掌握者。可以达到出神入化境界者谓之高手。”当我读到这句话时,我的心突然猛沉了一下。
自从我正式成为一个计算机学生之后,自已心里面一直有一个结:真正的计算机高手是什么样子。
记得苏小红的那本C语言教程中描述了大致这样一种场景:高手接到一个电话,沉默。然后开始急速敲代码,然后代码完成。没有改一个字,没有调试一次,代码没有一点错误。当时我感觉:难道这就是所谓的高手?说不出什么原因,就是感觉高手不仅仅是这样子。因为他只不过是精通了一门语言而已。任何人只要下工夫,都会。
我始终感觉真正的高手应该具有别人不具有的的特殊技巧,应该会别人不会的东西。
后来,在大烈的强烈号召下,知道了有一个比赛叫做ACM,好像很酷。我想,真正的高手应该就是ACM中的佼佼者吧。于是曾经对ACM迷恋过一阵子。可是后来感觉又有点恍惚了,难道高手就是会几个算法?
直到进了实验室,我好像突然知道了什么才是真正的高手。突然感慨以前自己就是一个井底之蛙。
你代码敲的再流利,无非证明了你对你使用的语言的熟练掌握;而ACM中的佼佼者,无非证明你的算法能力比较强一点。计算机的世界远远不止语言与算法。我心中的编程高手是这个样子的,最重要的是他应该有一种思想。这种思想既不是编程思想,也不是语言设计思想。而是包括这所有之内的思想,以我的孤陋不知道该如何称呼这种思想,暂且称其为“计算思想”吧。其他的一切都是工具。管你什么系统,管你什么语言,管你什么指令,都是为了实现我脑中的思想而appear的。我实现某种功能时,其实就是在实现我的思想。为了实现某种功能,我可以熟练的的选择使用某种语言,不一定是C,也不一定是java,python。为了实现这种思想,我可能会创造另外一种更加合适的语言,选用效率更高的算法。
这就是我所眼中的最完美的编程高手。
忽然感觉这是一个多么高的高度啊,世界上有这样的高手吗?自己离这个高度还有多远呢?
感觉hacker挺酷,比编程高手低一个档次,还是老老实实的先做好一个hacker吧。