高手是怎样炼成的?
亓锋 2004-04-12 02:03:59 很久没有写一些感想之类的文章了。今天就我的一些切身感受来谈谈高手是怎样炼成的这个话题。
前一段时间我在帮几个合作伙伴搞Domino和Java的培训。在这段让我对“后辈”越来越失望的时期,我越来越觉得以我的经历献身说法道一些苦水是必要的。
这里说的高手,就暂且是编程高手的代名词吧。
--------------------------------------------------------------------------------
一、高手的自身素质
要想成为高手,自身的素质很重要。你不是块练武的材料,练武就会玩掉性命。但是这些自身素质都是可以培养的。
1.坚定的毅力:
程序员很苦,这里谁都了解。坚定的毅力很重要,没有毅力,碰到难题就撒手,你什么也学不到。我喜欢有毅力的下属,他们自身透露出的那种韧劲,让一个团队
可以表现的无往不胜。不论你是学习还是工作,坚定的毅力可以保证你能将一条有希望的路走到底。我经常发现有人问我,“做Lotus有前途吗?”、“怎么你还在研
究Lotus,做Java多赚钱。”
是的,一个技术有没有前途不是靠工资的多少来说话的,是靠市场需求来说话的。我碰到多少客户需要这方面的技术支持。现在做Java确实比较流行,可是市场对
流行的态度是越流行的越广,价钱越便宜。你想像一下ASP,VB,Delphi那时候是怎样的流行,现在呢?技术需求趋于饱和以后,降价是难免的。
所以,不要想一个技术有没有前途,你学会了就是自己的,你学精了,就是本事。经验比技术重要。如果你打算转行,谁都无可厚非;但是你要问问自己,我之前
到底学到了什么。
任何一种技术,如果你没有毅力坚持去学习和实践,那么学些皮毛有什么用呢?
我面试过一个技术人员,号称做了2年的Java,他的简历上写着“精通Java和ASP”,我问到:“RMI是什么?”,他说没有做过,我又问“Java怎样解析XML”,他说“
我没有使用过”。这样的人,竟然还要开价5XXX/月,还有脸在我面前说因为Java流行,工资高才学习Java的。
我还面试过一个Domino程序员,自称做过项目经理,系统设计。
我问到:“B/s做过吗?”
“我一直在做。”
“那代理里面发送邮件时,如果不做特殊处理,发件人的名字是不是有问题?如果有问题,你怎么解决的?”
这个人竟然嗯啊了半天也没有说到实际的内容。这个问题的实践性很强,没有做过这种发送邮件的程序,一般很难知道这个问题怎样回答。
2.对技术肯钻研
我喜欢那些踏踏实实钻研技术的人,我也愿意帮助这样的人,解答他们的问题,帮助他们出出主意。我要求下属都要能够踏踏实实地去学习软件产品的帮助和手册
。在我看来,外面的参考书再多,不过是抄抄帮助,加些自己的经验而已。很多问题的描述都在产品的帮助和手册里。
我帮别人在Linux上安装Domino。平台是RH Linux 9+Domino R6。系统安装以后启动Domino发生错误。
这个问题其实太简单了,因为Domino R6的release notes中的描述是,建议的版本是RH 7.2。就是这个Linux版本的问题。看看帮助和手册就解决了。
刚才还有人问我,数据库高级属性-多语言数据库的设置是干什么用的。这在Domino designer帮助中就有描述。如果你愿意到帮助里查查,也就学会了。
许多人都说问一下别人比较省事,其实还是你自己找到的答案记得最牢。如果你参加一个集团化作业的项目组,可能你连问谁都不知道,即使问了,别人愿意不愿
意帮你也是问题。许多情况你要自己钻研。
3.愿意吃苦
做编程有不辛苦的吗?加班、熬夜几乎都领教过吧?高手就是吃苦磨练出来的。
4.不耻下问
不耻“上”问是值得表扬的。向高手请教与自己钻研不是矛盾的。你要是想偷懒,去问别人1+1=?,那么估计要被人扔砖头了。愿意解答你的问题的高手,希望你问
的问题能有一些新颖的地方,或者有一些难度。如果答案在某个垂手可得的地方,谁愿意帮助你呢?这就是懒惰了。
不耻下问是更加难得的品质。关于在R5和Exchange 5.5中屏蔽垃圾邮件的方法我就是从一个下属那里学到的。他在一个客户那里学习的配置方法,然后教给了我
。那一次我确实是有些自尊心受挫,但是后来我觉得值得了。高手也有不明白的地方,放下自尊心,也许你可以学到更多的好东西。
5.敢于创新和尝试
这其实和钻研是相关的,不要沉溺于一些技术细节。如果没有技术限制,尝试一下新的方法,即使失败了我觉得也是有价值的。
在Windows平台上用LotusScript集成Oracle有几种方法?LS:DO,LCLSX,还有呢?ADO、Oracle ActiveX Object。而使用Oracle ActiveX Object是最
快速的链接Oracle的方法,毕竟是Oracle自己的开发的接口。
--------------------------------------------------------------------------------
二、高手的练功方法
1.Google和BaiDu
经常发现自己的程序在运行时报告一些错误,自己找不到原因,你自己到google里搜索一下试一试。
有人问过一个JDBC链接SQL Server的问题,“无法创建连接”。如果你到google.com中搜索这个错误,你会发现有许多网站都有这个问题的解决方法。如果你到
论坛里发个帖子,等着别人回答,倒不如自己去找。其实很多非系统的错误,如果是程序错误的话,google里大多会有一些搜索结果。
2.帮助和手册
被以为帮助和手册仅仅在你需要时有用处。把帮助和手册好好学习一遍,你就会发现很多有用的东西。平时工作没有时间,那你晚上愿意看看吗?我教别人时,总
是让学生先学习帮助,要加班加点地学习,一个不漏地尝试帮助和手册里的范例。
发现问题了怎么办?先到帮助和手册里查查;帮助和手册里没有,到网络上查查;实在没有,再问问高手。
3.善于搜集网络资源
一个比较重要的连接:www.notes.net。那里的论坛和SandBox我是经常去的。
前一阶段有人问“使用浏览器访问一个表单,上面嵌入一个视图,自己通过热点@DbCommand()来实现上一页和下一页。在R5里是正确的,翻页没有问题,可是R6
就发现下一页有问题。”
这是Domino R6本身的一个Bug,如果你到www.notes.net上自己查找就知道,这个问题在R6.5.1里解决了。否则你要自己编写程序了。这个问题不是由于你的
程序有错误出现的,而是Domino本身的Bug。建议大家经常看看Fix List。没准问题就出现在这里。
4.拿来主义
我曾经见过一个程序员,自己做Web开发时用Jscript编写一个目录树形式的导航界面,并且要求是动态的。他搞了半个月总算弄好了。我可是真佩服他!不过这
样的傻人也有,实在是可悲。我不是贬低他,至少精神可嘉,做法不好。到网上找个类似的代码,看明白以后改改就好了。为什么偏偏要自己从头研究呢?