2009年5月13日星期三

一日双证

2009年5月12日,对我来说是个好日子,因为这一天,我获得了两个证书--驾驶证和学位证。


昨天早上我一大早起来,去驾校拿到了我早该拿的驾驶证。然后马不停蹄地赶到闵行,参加毕业典礼。时隔7年,我再一次穿上学位服(虽然颜色不同),有些自豪,有些感慨。但是最强的感受,竟然是感觉自己穿这身衣服像Jedi武士了。(我知道我不可救药了,大家随便拍砖吧。)下次一定要去弄身Jedi武士的衣服穿穿,太帅了!

有意思的是,这两个证一个花了4,000元,3个月,另外一个花了40,000元,3年,时间上10倍,花费上10倍,但他们的含金量是不是有100倍之差,那就不知道了。

不管怎么说,这事儿算是告一段落了。我以后会不会去念个博士回来,也是未知数,可能性不是零。接下去,我该一心一意的去完成人生的几件大事了:)


2009年5月7日星期四

未来5年开发人员需要的10项技能

昨天收到MSDN中文快递上编者推荐了一本书和一篇文章:

对《代码大全》我保持景仰的态度,的确是好书一本。我也对我买到现在才看了几章而感到汗颜。

不过对于后面那篇文章,我一时好奇看了一眼,我觉得这篇文章正如MS的产品宣传一样,就是用来观念殖民的。

我翻译这十项技能如下:

1: One of the “Big Three” (.NET, Java, PHP)
三大时髦语言(.net , java, php)

2: Rich Internet Applications (RIAs) - (Learn about silverlight)
富客户端应用开发(silverlight)

3: Web development
web 开发

4: Web services – (Learn about Web Services in 1 hour)
web 服务

5: Soft skills
软技能

6: One dynamic and/or functional programming language
一门动态言语或者函数变成语言

7: Agile methodologies
敏捷方法

8: Domain knowledge
领域知识

9: Development “hygiene” (Resources here:  Technical Book Club)
不知道什么意思

10: Mobile development (Resources here:  mobile)
移动开发(手持设备,嵌入式等)


如果这篇文章的标题上限定词是:微软技术应用程序开发,那我无话可说,举双手双脚赞成。但是这篇文章标题是Software for students: 10 Skills Developers will need in the next 5 years。

我认为学生就应该打好开发的基础,比如数据结构,操作系统,算法,数据库、程序开发基本概念、程序的架构等基本科目,不应该把过多的精力放在平台相关的应用技术上。

李开复在给中国学生的三封信里面也强调了基础的重要性。Joel同学在自己的blog上花了很大的篇幅告诉读者现在学生正在步入的误区。那些软件大家们对待初学者给出的第一条建议大多是基本功的训练。UCLA,MIT, Stanford这些名校从来不教什么.net。人家教的是算法,程序的构造与解析,操作系统,计算机体系架构等课程。出来的人还不是google,ms随便去。MS还抢得欢。人家可不会什么silverlight。

软件开发就像练武功,内功练好了,那些外家招式学起来是很快的。内功才是真正要花时间的地方。这点无论对于学生,还是我们这些工作了一些年头的中级开发人员来说都一样。

运用基本功解决问题,自上而下分解问题,设计解决方案,设计良好的程序结构,框架和模块,最后转化成程序,除了最后一步,其他的都与具体的程序无关。而前面几步,才是决定你是好的程序员还是差的程序员的关键。

那么如果是有开发经验的人呢?这10条是否适用?

我觉得10条还是太多了,一个人不可能做做web开发,又去做做mobile开发,这样啥都做点结果就是啥都做不好。这10条里面我唯一看中的一点就是8.领域知识。有经验的人都知道,领域知识才是自己升官发财的决定性因素,编程技术重要性要差些。如果还要加一点,敏捷开发可以勉强入选。因为Methodology绝对是个时髦货,在过去十年里面,每几年都会流行一种Methodology,从CMMI到RUP,从RUP到XP,从XP到Agile,每种methodology只能解决很小一个范围内的问题。如Ivan Jacbson所说,最终,你得有自己的Methodology。

还有一个对于任何人都非常重要的技能就是Soft skill。其实这项技能比领域知识还要有用,比如会拍马屁的人,有可能比做了十年,非常了解领域知识的人爬的快。比如察言观色,见风使舵,舌灿莲花等等。好吧,正经点说,就是交流能力,语言能力,管理能力,调配能力等。有了这些能力,我们才能从单一的开发人员变成所谓的复合型人才。

龙珠是个好游戏

最近几天迷上了NDS上最新出的《龙珠改!赛亚人来袭》



这游戏绝对Fans向,游戏的剧情完全参照动画片。我正好前几个月看完了所有的动画片,趁记忆犹新的时候重新打游戏温故一下。虽说这个RPG绝对是无聊的地雷战式的RPG,从游戏性上来说是不怎么样。但是Fans的力量是无穷的,借用现在流行的话说,我对龙珠有大爱,所以再密集的地雷也忍了。

游戏的流程还算比较长,从第二十三届天下第一武道会(和短笛决战的那场)开始一直到决战贝吉塔,是龙珠里面打弗利萨之前一大高潮。声优基本上跟动画里面一样,大招都有特写,每当听到熟悉的“卡埋哈迈哈”,我就激动,心跳加速,肾上腺素狂喷。有点夸张了,但是这种我为游戏狂的感觉真的是久违了。

本作还原动画几乎100%,很多招数一看就能想起动画和漫画里面的场景。比如悟空的メテオコンビネーション,这招就是在23届武道会打短笛时候用的招数。这种Fans向的东西就是要让人不断联想曾经看过,听过的东西。就跟机战一样,每当听到自己喜欢的人物在那里“叽里呱啦”一阵喊,就会觉得精神超级振奋。

Fans向,真是个好东西。

最后,借用某位超高位领导子孙的名言:龙珠是个好游戏。