WizardWu 编程网

一位台湾的程序员,研究 OOD、.NET 平台在企业信息化之应用、WCF & 工作流、性能调优、数据库。

博客园 首页 新随笔 联系 订阅 管理
  87 Posts :: 0 Stories :: 999 Comments :: 35 Trackbacks

约 10 年前,微软推出了 .NET 1.0 英文版,我当时对编程还是外行人。

我的 IT 生涯先是从网络管理、Windows Server 2000、SQL Server 2000 学起。考到 MCSE 2000 后,觉得管理网络、修机器,无法发挥创造力,因此后来开始自修 Java。不久后,被微软的疯狂营销所影响,开始接触 .NET 平台。转换平台的原因,除了中文书籍、中文技术文章较多以外,也觉得 Visual Studio 2002 用起来颇顺手。

多年后的今日,提供自己的一些学习和工作心得,给网友们及新手作为参考:

  • 程序语言、编程技术和开发工具,只是完成某项工作、做某个项目,或学术研究的辅助工具。编程技术虽然重要,但必须搭配其他知识和 know-how,才能彰显出技术的价值,例如开发 ERP 系统,不能不懂:初级会计、成本会计、物料和库存管理、生产制造排程、... 等相关知识。在少有大型软件公司的华人世界,只懂写代码、钻研技术,而无第二、第三专长的人,很难在薪资和职涯上有所突破,参考:程序员真情忏悔录


  • 不要因为自己学的是 .NET 技术,就盲目崇拜微软的一切,微软推出什么新技术你都拼命学,还到处主动帮微软推广新技术。学习前,应先对这门技术做概略式地了解,并做投资报酬率评估,这门技术的未来发展性、在企业的实用性如何,才决定是否花时间学习。且即使接触新技术,也应该采取「大局观」的学习,逐步了解这门技术未来的发展性、实用性,而非钻研随时可能被淘汰的新技术其代码的支微末节。不论任何伟大的公司,也可能犯下致命的决策错误,参考:微软这 10 年犯下的五大错误Dawn of a New Day (Ray Ozzie)


  • 若要学习架构设计、系统设计,要多阅读国外的书籍和示例,也一定要接触 Java / J2EE / Design Patterns 的书籍,多和 Java 牛人交流,不要将自己绑在 .NET / 3-Tier / PetShop 的圈子里,更不是把 .NET 各种技术都学一遍就叫做懂得设计。有些 J2EEr 大牛,活用 OOAD 设计出来的系统和组件,极具解耦、易串接性、可扩展性,而非单用设计模式的其中一两种而已,有时会多种同时搭配混用。小弟我初见此等高人的设计时,感觉犹如笑傲江湖中所述,刘仲甫初遇骊山仙姥对奕时的仙着。这方面的技巧,即使是国外的 .NET 英文书籍,甚至微软官方 Microsoft Press 介绍架构设计的书籍,我认为也有不足之处。


  • 如前所述,若要成为全面性的技术人员、企业不可或缺的人才 (而不像某些软件公司把程序员当作廉价劳工),必须创造自己的不可替代性。这方面我个人认为,无须每天去钻研最新最火的技术和框架,而是应该「横向」发展和学习,多接触如:财务、会计、商业作帐、产业的供应链、库存管理 (可写成厚厚一本布满数学公式和统计图表的书籍)、工作流、销售和采购、电子商务 (性能和安全性)、...。若能在下班及闲暇之馀,多学习其中一两项,让自己成为「跨领域」的人材,必能造就自己无可取代的身价;而非沦为天天追着新技术跑,履历表和博客上永远只有技术名词和一堆 MCxx 的头衔,或在下一个 10 年的除夕夜,只能独自抱着 .NET 14.0 的原文书在苦读。


最后转贴李维先生所着,「Borland传奇」书中一段,描述 .NET 在 10 年前诞生的故事,及其创造者 Anders Hejlsberg 的一些趣味故事。

--------------------------------------------------------------------------------------------

Anders Hejlsberg 这位不世出的软件天才,是目前全世界最顶尖的软件技术人员之一。论实现技术,Anders 可能是当世的第一高手,因为他精通程序语言、编译器技术、开发工具、Framework 以及系统架构。

虽然 Anders 没有显赫的学历,无法获得 Turning Awards (即图灵奖,信息科学界最高荣誉的奖项,等同于诺贝尔奖)。但是我认为 Anders 的实力和贡献,绝不输于任何一位 Turning Awards 的得奖人。Anders 是最好的信息实践型人物,在 2001 年,他终于获得了信息界最具权威的信息刊物 Dr. Dobbs' Journal 颁发的 Excellent Programming Awards,以表彰 Anders 为信息界做出的卓越贡献。我想 Anders 应该是许多本身没有高学历或不是计算机信息科系出身的优秀程序员最好的效仿对象。

Anders 精通程序语言、编译器技术、开发工具、Framework 以及系统架构。我虽然知道许多软件界重要的人物和好手,但是尚不知有任何人能像 Anders 一样在这么多领域都能成为大家。下面是笔者整理出 Anders Hejlsberg 到目前为止重要的功绩、贡献以及获颁的重要大奖:

  • 和 Philippe Kahn 共同创办 Borland 公司
  • 开发出 Turbo Pascal,当时首创的 In-Memory Compiler 震驚了全世界
  • 开发出全世界最畅销的 Pascal 产品,Turbo Pascal (这是许多信息人员学习 Pascal 和 Data Structure 使用的经典产品) 以及 Borland Pascal。Turbo / Borland Pascal 合计销售超过了数百万套。Dr. N. Wirth (Pascal 语言的创始人员) 也应该向 Anders 致敬,表达 Anders 对于 Pascal 语言的贡献。
  • Anders 使用汇编语言撰写编译器,其功力无人能出其右。创造出了全世界速度最快、品质也是一流的 Pascal 编译器。在 Anders 离开了 Borland 之后,几乎没有人能够修改 Anders 的编译器。
  • 开发出影响深远的 Delphi 这个伟大的 RAD 工具
  • 开发出 Visual J++ 语言
  • Microsoft .NET 的Architect
  • Microsoft 颁授 Microsoft Distinguish Engineer 大奖
  • 发明 C# 这个造成重大影响的语言
  • 发明 LINQ 技术,让 .NET 上的程序语言成为目前主流平台中,唯一内置查询能力的语言 (这一项是楼主我自加的)

一个人一生能够做出几件让全世界都津津乐道的事业呢?Anders 却成就了无数 PC 界伟大的功绩,并且在程序语言、编译器、开发工具以及 Framework 方面都有重要的贡献。

PC 软件界因为有了 Anders 而精彩、丰富了许多,也创造了许多令人惊叹的故事。更棒的是 Anders 现在仍然在继续贡献他驚人的天分,就让我们拭目以待,看看 Anders 还能创造什么功迹吧。不过,不管以后如何,相信 Anders 应该是大部分软件人员希望学习的目标。Anders 的功力也是大部分软件人员一生企望能够达到的境界。

在 2002 年 Borland Developers' Conference 中,Anders Hejlsberg 是排名第一的 Keynote Speaker,尚在 Java 的创始人 James Gosling 之前。根据现场同时聆听这两场 Keynote Speech 的听众报道,Anders 的 Keynote Speech 是非常精彩的,而 James 的 Keynote Speech 则相对的枯燥,许多人因此而提前离席。而且 Anders 在开始进行 Keynote Speech 之时,便获得了现场所有听众起立鼓掌致敬,看来,在大多数 Borland 开发工具使用者的心中,Anders Hejlsberg 是永远的巨星。


Microsoft 的重金挖角和 Anders 离开了 Borland

Anders在不介入Delphi的开发、并且无法主导Borland Java开发工具开发的情况下充
满了挫折感。没有了Philippe Kahn的强力支援,Anders虽然是Borland最顶尖的技术
人才,却也无法对抗Borland管理阶层的力量。当然这也是从Philippe Kahn离开了
Borland之后、Bodand开始转型有关,这在稍后Borland的转变一文中,我会作详细的
说明。

虽然Anders在Borland遇到了挫折,但是对于Microsoft来说这却是千载难逢的好机会,
在此时Microsoft展开了大规模的挖角行动,而且是明目张胆地进行,正是由于
Microsoft如此大胆的行动,因此也造成了不久之后Borland对于Microsoft的法律控诉。

这次的挖角行动中,Microsoft同时锁定了数个Borland最杰出或是重要的人物,当然
Anders是名列第一的挖角对象。时值1996年,Microsoft终于展开了行动,使用的方
式是最直接的攻击。Microsoft直接派遣加长型的大轿车到Borland大门口找Anders吃
饭,第一次Microsoft开出了年薪百万美元以上的条件。不过在Borland知道了这件事
情之后,也很快进行了加码的动作,因此Anders并没有对Microsoft进行响应。

Microsoft在苦等无应、按捺不住之下,很快就再次用大轿车找Anders。这次Microsoft
提出了两百万美元以上的条件,希望Anders能够首肯。对于这次的喊价,Borland可有
点为难了,因为两百万美元不是笔小数目,这已经比当时Borland许多副总裁的年薪还
高。此外,如果Borland答应也加到两百万以上,那么是不是Chuck也要如此加码?其
他的Delphi R&D小组要如何调整?这些都是非常棘手的问题。

不过Borland很快找到了解决的方案,那就是允许Anders从每一套卖出的Delphi版本
中抽取一定数量的版权费。如此一来Delphi卖得愈好,Anders便能取得愈多的回馈。
不过就我的了解,Anders注重的并不是金钱上的问题,因为在Borland创立的初期,
由于Turbo Pascal的编译器都是Anders撰写的,因此当时Anders也是卖一套Turbo
Pascal就可以抽取版税的。依照Turbo/Borland Pascal全世界销售数百万套来算,
Anders早就是富翁了。薪水多一点,少一点并无所谓,Anders心中想的是自由发展的
空间。在Borland提出了Delphi的随版抽税,再加上Microsoft并不知道Anders真正想
要的东西,因此Anders仍然没有响应Microsoft提出的优厚条件。

不过,Anders实在是太重要的人物,而且Microsoft在面对Java与日俱增的威胁下,
非常渴望能够有像Anders这样的人才带领Microsoft开发下一代的开发工具,这当然
也是由于Microsoft以前向Borland挖来的人都做出了不小的贡献所致。Microsoft食
髓知味,当然希望能够得到Borland的镇山之宝。在Anders两次不为所动之后,
Microsoft决定祭出最后的王牌,由Bill Gates亲自找Anders吃饭,进行最终的挖角
行动。

不管读者喜不喜欢Bill Gates,不可否认的是Bill也是一个天才。自古英雄惜英雄,
在Anders和Bill相谈甚欢的情形下,Microsoft开出了年薪三百万美元以上、数万股的
Microsoft股票这个超高的条件,再以当时Microsoft高贵的股价来计算,真是一笔庞
大的数字,也许对于搞软件技术的人来说,这已经是不可能的天文数字了。不过这些
条件并不是打动Anders的主要原因,Bill最后提出的条件是 "答应给Anders一个小组
和极多的资源,让Anders尽情地发挥"。这个条件可说是打到了Anders的心底,因为
Anders正渴望有人能够支持他完成新的计划和想法。我想,在软件产业中大概也只有
Microsoft能够拥有这种雄厚的资源可以挖角任何人吧。

在Bill Gates提了这样的条件之后,Borland再也没有本钱能够和Microsoft进行比价
了,只好眼睁睁地看着Anders离开Borland前往Microsoft再开创下一个人生的高峰。
在Anders到了Microsoft之后,Bill Gates果然重用Anders,也立刻让Anders负责激
活Microsoft的下一拨开发工具计划,当然这个计划也是Microsoft对抗SUN/Java的整
体计划之一。Anders到了Microsoft之后立刻展现了实力,让Microsoft的编译器技术
又精进不少,最明显的例子就是Microsoft后期的Java Virtual Machine是PC上执行
效率最好的,而且在2、3年后,VJ++编译出来的虚拟机械码的执行效率不但比任何的
Java开发工具还快,在某些方面甚至比原生的Windows开发工具,例如Delphi、VB、
甚至是VC++还有效率。这真是令人震撼,当然Anders为VJ++打下的基础现在也展现在
NET的C#编译器以及.NET的 JIT (Just In Time) 编译器之上,.NET的JIT在许多程序代
码最佳化方面比Delphi还先进。因此在2、3年前当VJ++即将推出之际,在Borland内
部也引起了非常大的骚动,并且严阵以待,当然这又是另外一个故事了。

对于Anders来说,到了Microsoft之后不久又再次登上了生涯的另一个巅峰。因为当
初Anders在Borland之时,就有如孙子兵法中叙述的 "藏于九地之下",虽然是不世出
的天才,但是仅为少数的人所知,即使是使用Borland产品的人在当时可能也不知道
Anders这号人物。因为Anders和Borland的作风很像,都是行事低调,不到最后绝不
随意出手。但是Anders被挖角到Microsoft之后,由于Microsoft的企业文化向来是前
进、积极的侵略性方式,因此Anders也就转变为"动于九天之上",负责Microsoft开
发工具大军的核心大将,不但广为人知,成为许多软件人员效法的对象,而且屡获大
奖。他不但获得了信息软件业界的推崇,最后也终于获得了信息学术界的认可,可说
是实至名归。

Anders的离开对于Borland来说是一个很大的损失,不过对于Delphi R&D小组来说却
是有好有坏,因为Delphi开发小组虽然失去了最重要的支柱,但是也给Danny Thorpe
一个快速崛起的机会,在1年后,Danny果然立刻成为了Delphi/C++Builder/Kylix中
最杰出的人物之一(另外一个当然就是Anders的老搭挡Chuck Jazdzewski了),Danny
也是我认为目前在Borland RAD(注)部门中功力最厉害的人物。在稍后的内文中我会
对Danny进行比较详细的说明。

注:Borland RAD部门是指Borland的Rapid Application Development部门,RAD负责
的产品包含了C++Builder、Delphi、Kylix以及未来的.NET以及Mobile的新产品。

 

posted on 2010-06-27 15:04 WizardWu 阅读(3103) 评论(35) 编辑 收藏

Feedback

#1楼 2010-06-27 14:19 阿毅      
我們都不是天才,應要有廣納他人意見的雅量


 回复 引用 查看   

#2楼 2010-06-27 19:50 冰の酷龙      
我我们都不是天才,应要广纳他人意见的雅量.
如果能成为跨领域的人才,确实是件不错的事.只是我们除了关注技术,对其他行业的事情没有经验,学起来会很费力.啊

 回复 引用 查看   

#3楼 2010-06-27 20:35 cry      
路在何方,路在脚下
 回复 引用 查看   

#4楼 2010-06-27 20:41 刘一凡      
我們都不是天才,應要有廣納他人意見的雅量
喜欢,看看我的asp.net习作: ***
欢迎拍砖
一起精进.net

 回复 引用 查看   

#5楼 2010-06-27 20:43 宝宝的老裸      
心有多大,舞台就有多大!!!
 回复 引用 查看   

#6楼 2010-06-27 20:47 顾磊(kyo-yo)      
若要成為全面的技術人員,除了技術以外的知識也要多接觸,如:財務會計、成本會計、商業作帳、產業供應鏈、庫存管理、工作流、銷售和採購、電子商務、...,若能在閒暇之餘,多學習一兩項,讓自己成為跨領域的人材,必能造就自己未來的不可取代性;而非淪於天天追著新技術跑,履歷表上永遠只有技術名詞和一堆 MCxx 的頭銜,或在下一個 10 年的除夕夜,只能獨自抱著 .NET 14.0 的原文書在猛 k 。

很有道理....在中国这个大环境下光靠技术还是很难出头的.

 回复 引用 查看   

#7楼 2010-06-27 20:54 Windie Chai      
共同进步!
 回复 引用 查看   

#8楼 2010-06-27 21:09 young40      
支持。。。。。。


 回复 引用 查看   

#9楼[楼主] 2010-06-27 21:41 WizardWu      
感谢各位提供宝贵的意见。

先注明一下,小弟我这篇随手写的心得感想,本只是放在首页候选区
得蒙 dudu 和博客园管理团队的青睐,帮我改放到首页精华区。

 回复 引用 查看   

#10楼 2010-06-28 00:00 chenkai      
繁体字看着有点累.
台湾.net 社区我接触不是很多.我接触比较多Ruby社区还有一些java开源总体给我感觉还是比较开放的......

 回复 引用 查看   

#11楼 2010-06-28 00:12 Frank Xu Lei      
哈哈~
吾兄啊
这个我们这里占据的优势是人数~

什么事情人多了 ,看起来就活了。

如果程序员工作不挣钱,我相信这个行业逐渐会死去的。
现在房地产很火。做个代码工还不如买房子。

杯具我们是

 回复 引用 查看   

#12楼[楼主] 2010-06-28 00:20 WizardWu      
感谢楼上几位网友的回复。

房地产怕过热,也可考虑接案子,
写个 2D/3D + Silverlight 可远距视频看房的网站,帮厂商卖房子。

 回复 引用 查看   

#13楼[楼主] 2010-06-28 00:28 WizardWu      
我 30 岁出頭而已,只是小弟。
 回复 引用 查看   

#14楼 2010-06-28 00:32 重庆加戈      
很好,很中肯.
程序员过度的深入到具体的业务里面去,也可以为以后的职业生涯多一个选择.
不过,干一行爱一行,程序都是融会贯通的,不要过度看中用什么语言实现,而需要考虑的是怎么建模,剖析和把业务弄清楚,让软件为业务的提高做贡献.

 回复 引用 查看   

#15楼 2010-06-28 01:05 祈愿      
引用WizardWu:我 30 岁出頭而已,只是小弟。

前辈啊,你还是小弟?那我只能成为小小小弟了,呵呵!
你说的很有道理,JAVA的发展这么多年,肯定有它的道理,以及有那么多的框架可用,并且用的人那么多,那么的成熟,都是有一定的道理的!SSH框架,都是高度解耦的!可扩展性、维护性极强的组合性框架,程序员要发展,目光不能太短浅,这样会局限你的思维,眼界!
最近JAVA、NET争得很厉害,我感觉没必要!我们要做的是迎合客户需求,达到客户的需求好了!挣这些没必要嘛!再说你争来争去,毁的还是自己啊!耽误了自己的青春啊!人家JAVA、NET不还是照样发展?呵呵
你说的技术以外的知识很重要,在中国你要发展,没有一两项专业的,你根本就没有办法从成员中跳出来,脱颖而出,很难很难!中国的程序员,加班家常便饭,熬夜是经常有的!
纯属个人见解,请勿拍砖!呵呵!另外多向前辈学习!

 回复 引用 查看   

#16楼[楼主] 2010-06-28 01:33 WizardWu      
谢谢,希望大家多交流。

就技术而言我算不上好手,只是能帮公司做些项目而已。

 回复 引用 查看   

支持台湾的兄弟,欢迎多来。
 回复 引用 查看   

#18楼 2010-06-28 08:59 humble      
不错的建议.
 回复 引用 查看   

#19楼 2010-06-28 08:59 梅桦      
恩,深有感触。

 回复 引用 查看   

#20楼 2010-06-28 10:43 晴天猪      
代我向戴爱玲,陈建年问好.
老喜欢他们的歌了.

 回复 引用 查看   

#21楼 2010-06-28 11:25 大气象      
可学的东西太多了,怎样选择,学到什么程度,一直很困惑。很多事想不清楚,很多时候人也没办法安排自己的未来,把握现在,把当下要该做的事做好,这是我的生活态度。
 回复 引用 查看   

#22楼 2010-06-28 12:22 Framework      
好文
 回复 引用 查看   

#23楼 2010-06-28 12:33 lolota      
Hi WizardWu,

對於您的說法, 我非常認同. 廣納百川才能匯成河.
在那, 有些人的氣度實在....

加油, 您的blog寫得不錯阿!



 回复 引用 查看   

#24楼[楼主] 2010-06-28 13:01 WizardWu      
感谢 20~26 楼网友宝贵的意见。

 回复 引用 查看   

一两年前曾经去台湾的tech net 回答过一些技术问题 但是那边真的很少人提问啊,后来一次改版连中文的帖子都没了。。
 回复 引用 查看   

#26楼 2010-06-28 14:37 彦斌      
对岸有个蓝色小铺蛮不错的。
我在上面的提问均有大大热心回应
www.blueshop.com.tw

 回复 引用 查看   

#27楼 2010-06-28 15:57 joylee      
初略看来遍,楼主说的挺好的。我学习架构的时候就直接看java的书籍,个人感觉.NET这方面的书籍不是很多
 回复 引用 查看   

#28楼[楼主] 2010-06-28 21:39 WizardWu      
thanks for

韦恩卑鄙 v-zhewg @waynebaby
彦斌
joylee

 回复 引用 查看   

#29楼[楼主] 2010-07-04 14:32 WizardWu      
提供給台灣和其他內地網友的 .NET 社區、論壇、Blog 社區 列表 :


簡體中文
http://www.cnblogs.com/zenghongliang/archive/2010/06/26/1765778.html

英文
http://www.cnblogs.com/zenghongliang/archive/2010/06/26/1765853.html


我整理的 - 網站、論壇 列表 (台灣的網頁,內地的網友不確定能否連上此頁)
http://j2se.myweb.hinet.net/link/link.htm

我整理的 - Blog 列表 (台灣的網頁,內地的網友不確定能否連上此頁)
http://j2se.myweb.hinet.net/blog/blog.htm


英文、简体中文、繁体中文 IT 词汇对照表 :
http://files.cnblogs.com/WizardWu/080708.zip



 回复 引用 查看   

#30楼 2010-07-16 14:20 163blog_1      
不错,支持一下,http://www.xzhybl.com路过
 回复 引用 查看   

台湾同胞讨论技术都比较中肯,比较客观,这点值得大陆程序员学习.
 回复 引用 查看   

#32楼[楼主] 2010-08-13 01:37 WizardWu      
感谢楼上的网友,
过了这么久还来光顾本帖。

 回复 引用 查看   

#33楼 2010-10-15 09:20 MIS2000 Lab.      
Dear Wizard:
是不是有什麼誤會啊?
理論上來說,「亂刪他人的文章和超連接,不允許讓人連至內地的站點和網絡」
沒有必要去作這件事啊?因為網路本來就是傳來串去,我推薦您的幾篇文章,超連結一直都還在呢。也都順暢連結。

我不清楚您指得是哪個網站?如果是 DotBlogs應該不會這樣。

但從您所言「新人發言稍有不慎,即可能被惡意辱罵」,我又想到另外一個官方論壇有類似跡象

 回复 引用 查看   

#34楼 2010-11-01 12:27 甜麦圈      
经验之谈啊,很切实际
 回复 引用 查看   

#35楼[楼主] 2010-11-01 19:59 WizardWu      
感谢回应
 回复 引用 查看