这件事仿佛发生在昨天一样令我印象深刻。那是2000年,帕尔加斯博士站在我们的数据结构课教室的前方,讲解着一些y型数据结构的内容,同时把一个SSH 的窗口投影在我们前面的墙上。有人提出了一个问题,随后他用下面的话回答道:“如果你想成为一个真正的计算机科学家,你就得开始用 Vi 。”我感觉他在说这些话的时候还在微微笑着,而事后发现他说的这个观点根本不对。 但是由于年轻并且易受影响,当时的我回到宿舍后立刻了开始了自学如何使用 Vi 。我度过了很长一段艰苦的时间,但是当我开始变得对其熟悉的时候,我意识到我用 Vi 会干的非常快。
1. People First 以人为本
我所认识的最好的程序员们会把人放在第一位。他们已经意识到就算他们编写的软件,其实只是个复杂系统的后台或是只有开发者会使用的协议,它还是给人们使用的。他们为软件编写文档,因为这很重要,他们为别人重用他们的代码伸出援手。他们愿意去做额外的工作,并且处理更复杂的问题,只为了给使用他们软件的人们一 个最好的解决方案。
2. Appetite for Learning 求知若渴
那些出类拔萃的程序员们都对知识如饥似渴。他们总是告诉你一些前沿的或有趣的东西。他们读着成百上千的书(既有在线读物也有离线读物),而且他们似乎总是乐于亲手尝试,也乐于在经验中汲取知识。他们不惧怕尝试新语言或者新平台。
3. Skillful at Problem Pattern Matching 擅长匹配问题
当你写了一阵软件程序后,你开始发现问题的存在。那些问题和你曾解决过的问题看起来相似得让人头痛。认识到这件事情并把原来的解决方案应用到当前状况,这种能力是非常重要的。如果你能每次改进你的解决方案那就更好了。
注意,就算如此,你也不应该盲目的说什么“因为用这个旧方案解决过老问题,所以它肯定可以用来解决新问题”。 这个部分才是应用“问题模式匹配”的技巧所在。你必须拥有一双可以甄别应用旧方案是否可行的慧眼。
4. A Little Bit Insane 少许疯狂
我的兄弟在高中四年级上了Python课程,当我问起他喜不喜欢这个课的时候,他表示我想当程序员这个主意真是疯了,那个课是他上过的最无聊的课程之一。在某些程度上,我同意他的观点。我和计算机交流的时间比和人交谈的时间更多。我能把一行行基本上称之为胡言乱语的东西变成可以运行的软件,这一事实令我大吃一惊。并不是所有的人都热爱这些东西,但是那些我所认识的最好的程序员们绝对是热爱制作软件的。