”优秀的程序员“

javaeye上的一篇文章,如何识别优秀的程序员。

1.激情 — 写代码是你的日常生活,而非工作;

2.自学好学 — 不会等着公司给你培训;

3.聪明 — 好的程序员通常可能是你认识的人里最聪明的那个,而且出乎意料的,好的程序员可能不是我们通常想像的那样不善言辞;

4.不在纸面表现的”隐藏” 经验 — 好的程序员通常有自己的私人的一些研究、爱好、项目,而这些是他们不写在简历上 (通常觉得不值得写),但表现出来却可能恰恰是他的潜能、深度和后劲所在;

5.技术多样性、先锋性 — 在多种技术方向 (只知道java、Ant、j2ee、xml,只能算一个技术方向) 都有涉猎,而且对多种技术的长短有 “强烈”的个人意见/见解,喜好尝试新鲜技术;

6.证书说明不了问题 — MCSE、SCJP、红旗认证… 这些说明不了这个人是不是好的程序员,可以忽略不计。

激情,好像现在仅仅停留在“出色的完成任务”,缺乏自己去写一些东西的激情,即使写也经常半途而废;自学,好像一直都在自学;聪明,觉得现在的自己好笨;“隐藏经验”,觉得这点有点奇怪了,那怎么识别呢?技术多样性,目前的我真的只是一个技术方向。证书,同意可以忽略不计,因为并不能说明是好的程序员,但我还是考了scjp和scwcd。

中国EA开发人员的先天不足

相对有大多数欧美日这些计算机应用比较早的国家,企业应用(EA)基本也经历了Unix->mainframe->wintel/pc->VB->Web.相对于这些经历,中国的EA由于发展比较晚,基本都是一步到位到Web时代.这也就是为什么当问大多数人时候他们都认为企业开发就是J2EE和.NET,甚至有人说EA就是”企业网站”.其实这些都没错,因为我们做的大多数也都是这些东西.这也是很多国内的开发人员无法理解JCA这样的概念,因为根本没有机会去接触到.因为太早的站在了巨人的肩膀上.

因为在一家美国银行企业做技术支持,有机会了解EA的另一部分.很早之前就听说过”烟囱式的EIS”,由于通常大型企业都是有几百个异构的应用系统包括新系统和遗留系统(legacy sytem,通常都是一些mainframe/VB/Unix),如何做到有效整合进而共享数据成了目前大多数欧美企业的主要问题之一(当然另一个问题就是改造和移植到web).这些问题在国内企业是无法想象到的,因为根本就没有那个阶段,大家都是一上来就是基于web了.然后就风风火火去SOA/webservice.还没听说过国内的企业会新上一个mainframe的系统.尽管国内也有很多mainframe的support但是由于都是现学现练缺少相应的历史背景,尽管可以有机会接触这些”古老”的东西,也还是无法理解EA的完整架构.

国内的EA开发者是幸福的 – 一上来就是J2EE,MVC,3tiers/n-tiers,webservice,AJAX,FLEX…这些”和谐”的东西. 但也是不幸的 – 没有完整的EA技术背景,有碍于对EA架构的理解.至少在接下来的十年这个背景应该还是有用的,我觉得. 这些遗留系统怎么也要十年才死光光吧.之后呢?….

Powered by ScribeFire.

精通技术一定就是一个好的程序员???

19:44 2006-10-10 精通技术一定就是一个好的程序员. 这句话是完全错误.”好的” – 这种东西本身就是一个很模糊的概念.就算是真的大家对”好的”这个标准一样了,对”程序员”的定义又不一样.对”精通”的定义也未必一样.”程序员”的定义取决于,通常情况下,”程序员”应该具备的素质,而这些”素质”本身又存在的定义理解上的差别.因为bull shit终归还是不同的人来看的.而”精通”的概念就更不要说了,我是从来没有弄清楚过,很多时候这样的词是需要context的,可是这里的context也是含糊的–>

所以呢,唉,..

不要觉得我在玩弄概念,其实很多情况下我们是被概念玩弄,想想经常可以看到论坛或者日志的回复都是一些不知所云的家伙,要么是根本没有用大脑,要么就是没有搞清楚出发点在哪里.

这是tm扯到哪里去了.又说胡话了.
一般说”精通技术一定就是一个好的程序员.”这句话的时候,context还是确定的,所以还没有到无法讨论的地步.不过确实是”完全错误”的.首先我不会去贬低钻研技术的同志们,毕竟人个有志.所以如果有逻辑不是很清晰的同志们不要认为我在说”精通技术就一定不是一个好的程序员”或者”好的程序员不需要精通技术”.
程序员是搞技术的,当然要精通技术咯.可是要是埋头钻研技术期望做一个好程序员,那就错了.错的不靠谱.软件的主要参与者是人,好的程序员显然不是单单技术.做什么事情终归还是和其他人一起做,协作.技术高了可以抵掉一部分协作,比如如果你的效率是其他人的10倍,你当然没有必要去沟通去浪费时间去plan,document,kt…, 虽然可以这样的做,但从时间角度也是存在协作的,你的东西存在以后被别人看到,维护的可能.如果你觉得”这个我不管”,”不是我的事情”,那你不只是做不好程序员,而且是个不负责任的人(这样的人最危险),做什么事情都恐怕都不是”好的”. –这样的人”好的”定义和我不一样, 请滚.
所以对技术不要盲目崇拜,我们遇到的问题通常并不是仅仅技术一维.
这些话送给我自己,如果有人觉得有道理,那满好,如果觉得是狗p,抱歉浪费了您的时间.

这是很久之前写在msnspace里的,重新放到这里给自己…