日志文章

2008年03月15日 23:42:43

程序高手内功心法

很久没有写一些感想之类的文章了。今天就我的一些切身感受来谈谈高手是怎样炼成的这个话题。  
 
前一段时间我在帮几个合作伙伴搞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编写一个目录树形式的导航界面,并且要求是动态的。他搞了半个月总算弄好了。我可是真佩服他!不过这  
 
样的傻人也有,实在是可悲。我不是贬低他,至少精神可嘉,做法不好。到网上找个类似的代码,看明白以后改改就好了。为什么偏偏要自己从头研究呢?

Tags: 高手   程序高手  

类别: 编程思想 |  评论(12) |  浏览(1445) |  收藏
一共有 12 条评论
12楼 [匿名]sdfsdf 2008年04月16日 14:32:08 Says:
我们这些人啊,其实呢只要有技术基础,学习能力,沟通能力,团队精神其它的都是次要的.
11楼 [匿名]断梦苍生 2008年03月28日 14:35:51 Says:
山外还有山,高手之外还有高手.
其实那个项目经理回答不出邮件问题,可能是你的问法有问题."代理里面发送邮件时,如果不做特殊处理,发件人的名字是不是有问题",你是指的什么?
是指的发件人名字有空格?代理以WEB用户身份运行?还是发件人有多个用户名?
说句老实话,我做LOTUS5年了,当过多个项目经理,也当过产品经理,也没明白你要问的是什么.
再说就算不明白这个问题,也不代表他不知道其它的问题.
架构设计主要看他是否具有架构复杂应用的能力,而项目经理主要看他项目的管理能力,而你这个问题只是一个开发人员的问题.即使回答不出也不代表他没有这方面的能力.只能说你的提问有问题,没有找到关键点.
10楼 [匿名]SDH_Sing 2008年03月26日 22:50:03 Says:
“擅于成长的人, 懂得如何学习.擅于将目标分解细化再实现.”

我很喜欢这句话,上个月,刚学会这么做事,哈哈……
9楼 [匿名]SDH_Sing 2008年03月26日 22:48:50 Says:
擅于成长的人, 懂得如何学习.擅于将目标分解细化再实现.
8楼 [匿名]abc 2008年03月24日 21:11:37 Says:
刚才还有人问我,数据库高级属性-多语言数据库的设置是干什么用的。这在Domino   designer帮助中就有描述。如果你愿意到帮助里查查,也就学会了。许多人都说问一下别人比较省事,其实还是你自己找到的答案记得最牢。如果你参加一个集团化作业的项目组,可能你连问谁都不知道,即使问了,别人愿意不愿意帮你也是问题。
“经常发现自己的程序在运行时报告一些错误,自己找不到原因,你自己到google里搜索一下试一试。有人问过一个JDBC链接SQL   Server的问题,“无法创建连接”。如果你到google.com中搜索这个错误,你会发现有许多网站都有这个问题的解决方法。”
两段话是不是有矛盾?
7楼 [匿名]123 2008年03月22日 05:58:30 Says:
的确,各人有各人的观点和思想,仁者见仁,智者见智,话说多了累嘴,不是吗?真正统治你们IT人才的是我们这些皮毛都不懂的 外行人,马云,史玉柱,陈天桥,。。。。。。。还有我,真的不懂什么编程什么的,最多皮毛而已。。。我知道这个道理,所以我一开始什么都不学,因为我知道统治了你们就可以统治IT界,道理就这么简单:你们用所学的技术。。。。我们用你们。。。。这就叫做“活用”,活着有用简称“活用”。
6楼 HappyCai 2008年03月21日 10:44:57 Says:
老了,不行了
5楼 [匿名]flashsoft 2008年03月20日 10:38:21 Says:
我的技术不是很高,也不是很好,很多代码写的也不规范,,就是面对一些特殊的问题,解决不掉的问题,即使是我没有接触过的,也会很快的找出解决的办法.
到现在从事四年的工作,其中三年担任公司的技术部负责人,去年自己开了一家公司.
感觉作者 有点自傲,可以说你已经在程序方面是很有能力的了。.的确,在其他行业呢,你可能因为一点小问题就不知道,可能你的汽车路上抛锚了,怎么换轮胎这么简单的问题也可能难倒你.(比如举例)

是的,不可否认在程序方面你是优秀的.的确,原来也有很多人夸奖我说我很优秀,天才,我今年刚过完21岁生日,也就是说我17岁就开始做公司的技术部经理了负责带领团队研发教育软件.可是去年我公司开的不到一年,花掉我所有的积蓄又欠下外债,最终倒闭关门,是的,后来才明白,在技术行业领域可能很强,但在投资管理领域可能很弱..

有句话很对,你不是那块练武的料...仍需锻炼...

每个人都有自己的思想,都有自己的特长,
针对作者喜欢的下属和朋友来言,我比较喜欢勤奋有思想的人,不喜欢死学技术不学其他生活的人.我喜欢有单一精通多行了解的人.不喜欢懒惰的人..

对,原来也有朋友问我一些问题,我总是让他们在互联网上找答案,最后我得到一句话就是,我不教他们,这个在我的公司里面也出现过.呵呵,很难解释的清楚..

希望和作者交个朋友,flashsoft@163.com
4楼 IT的无限空间 2008年03月19日 13:06:10 Says:
“不要想一个技术有没有前途,你学会了就是自己的,你学精了,就是本事”这句话我赞同。
3楼 IT的无限空间 2008年03月19日 13:04:16 Says:
我觉得“拿来主义”确实重要,比如提高了开发效率,但是我们是否也因“拿来主义”而错过了新的一些东西呢?
2楼 逆风飞扬 2008年03月18日 11:39:39 Says:
擅于成长的人, 懂得如何学习.擅于将目标分解细化再实现.

懂得掌握更多属于自己的本事. 而不是眼高手低...

1楼 逆风飞扬 2008年03月18日 11:38:40 Says:
确实也是. 当前, 很多只是知道写几行代码的人,就漫天要价.

不务实. 经验与耐心很重要....
发表评论