土系魔法(Earth Magic):C/C++。对于一个魔法英雄来说,土系魔法是一种最基本的魔法,初级的土系魔法相比气系魔法或者火系魔法并不占优势,而且学习土系魔法的时间周期比较长。但是达到专家级别的土系魔法,能够让你便捷得在各种你的城堡之中移动,从而学习为各种其他魔法打下基础,而且土系魔法也有其单体攻击最强大的魔法:“暴烈术”,但对于一个高手来说,土系魔法将是不得不学的一种魔法。土系魔法也许在企业应用方面或许不是火系和气系魔法的对手,但土系魔法凭借效率和对英雄的思维方式的培养的优势将在一段时间内长期发展下去。
外交术(Diplomacy):英语,有一些人很喜欢外交术,另外一些人则持完全相反的态度;持支持态度的人认为学习外交术能够轻而易举的招到很多兵,并且能很凭借巧舌如簧的英语轻松的进入外企,听起来确实很不错;反对的人则认为用外交术招到的只是一些杂而无用的三脚猫,还要花大量的经验值去学习;我也不知道外交术怎么样,但如果你能学习到专家级别的外交术,很有可能招到像九头蛇这样的终极怪物,也有可能去IBM或者HP这样的巨无霸,但九头蛇也许根本就不是你想要的,也许你只能去IBM做客服,要还是不要?也许真是个问题啊。
智慧术(Wisdom):数据结构,这个就不用说了,如果你是个魔法师,但你没有学习到智慧术就和程序员没有学习数据结构一样糟糕,你能够想象一个程序员居然只会第一级和第二级的魔法吗?不过也有很幸运的没有学习智慧术的程序员拣到了魔法书,真是太神奇了。据说ID software的John Carmack居然没有高中毕业,就更不要谈智慧术了,但也不能阻止他成为世界上最伟大的程序员之一,我真怀疑他是拣到了土系魔法书。
学者(Scholar):让你们两个程序员相互学习对方的魔法,听起来是挺不错的,可是我很讨厌这个,因为对我和我的一个同事来说,我们既然在一个部门,我们的魔法肯定是差不多的,如果我没有我可以跑到我们公司的魔法塔里面去学习,为什么非要找我同事学?但如果你想招一个初级魔法英雄作为你的助手,有学者这个技能还是有点用的。还有人很可笑得告诉我学习鹰眼术(Eagle Eye)之后可以跑到战场上去学习别的公司的魔法,确实是可以,可惜学到都是诸如“空气盾牌(Air Shield)”之类的垃圾魔法,还有就是去听听某公司的产品发布会之类的,对程序员来说只是浪费时间。对于精力有限的程序员来说,很少有人会主动愿意把经验值投到学习术和鹰眼术上的。此类技能还有一个就是.学习术(Learning),据说是能够增加你每次战争的经验值,可能对程序员来说,学习学习术可能能让你的项目总结做得更好,管他呢,我就是希望打完一次大型战役之后能够得到对方的宝物或者多一点项目奖金,至于能不能多得到10%或者20%的经验值,谁会在意呢?
后勤学(Logistics):找一个女朋友(或者男朋友)。我经常听到很多程序员抱怨精力不够,压力太大,每天感觉有做不完的事情,其实你可以尝试找一个女朋友(或者男朋友),可以会浪费你一些时间或者经验值,但是确实是值得的,每天能让你走得更远,我很喜欢这项技能。
侦察术(Scouting):很多程序员都是近视眼,但这个好象对程序员有什么影响,我到目前为止还没有听说哪一个公司评价一个员工的标准是视力好不好,所以学习侦察术只会浪费你的时间,放弃侦察术吧。
火系魔法(Fire Magic):Java,很多人刚开始并不是很喜欢火系魔法,初期并没有什么针对性很强的攻击术,但火系魔法的威力并不在强调单体的攻击能力,其整体作战能力是异常优秀的,如果你能在整体架构上有一个清晰的概念,能控制好你的“丧心病狂”、“末日审判”,那么火系魔法是构造企业级应用的最强大魔法。想象一下你带着不死鸟,战争一开始就先用两个专家级别的“丧心病狂”,然后你就呆在一旁偷着乐就可以了,但如果战局完全不是你意料的那么发展,中途你还想去修改你的结构,我看你哭都来不及哭。如果你在整体上控制不好,那么你的“末日审判”还不如气系魔法的“闪电连锁”来得实在。
领导术(Leadership):没有几个程序员喜欢被领导,但学成领导术之后能够带领不同性格的手下冲锋陷阵还是很有成就感。但学习领导术所许花费的不仅仅是时间,学不学所以你自己看着办吧。
幸运(Luck):加班奖金。加班奖金和幸运一样是很听的名字,但却是公认的垃圾技能之一,学习此技能就是让你多工作50%的时间却真能多拿10%的薪水一样让人郁闷。但有时候幸运一次能让你多攻击一次还是很有用的,所以加班有时候也是必须的。但为了这个理由去学习幸运就和你为了加班费而加班一样愚蠢。
战术学(Tactics):软件工程学,包括程序的结构、安全、健壮性、容错性等研究。软件危机导致了软件工程的诞生,很多人在理论上强调软件工程的作用,认为软件工程是解决软件危机的一挤良药。实际上对一个有经验的程序员来说,软件工程是一个相对很“虚”的东西,右翼程序员甚至认为软件工程在中国存在的唯一理由就是社会上的各种培训班和大学里的教育产业化的需要。对待战术学我保持谨慎的态度,一般来说我是不会去学习的,除非是让我在战术学和侦察术之间做出选择。
水系魔法:SQL。不是很多人喜欢水系魔法,水系魔法没有强大的攻击力,也没有特别复杂的算法,但水系魔法存在的理由不是攻击,她作为一种后勤、补给的目的而存在,她在很多时候都是默默在后台。但如果你能在关键时候祈祷或者复制你的前锋部队,水系魔法的威力就显示出来了,水系魔法也还是需要一定的经验才能达到一个良性状态。
召魂术(Necromancy):网络攻击与安全。一个最具争议性的技能,但只有极少数的程序员能掌握,如果能掌握,在某些应用场合能大放异彩,但该技能对工具的依赖比较严重,一个网络安全人员如果没有“鬼王斗篷”之类的工具,他也只能干瞪眼。
寻路术(Pathfinding):对你的IDE和帮助的使用。寻路术能让你减少地形对你的影响,一个好的IDE能让你工作事半功倍,我至今没有学好火系魔法(JAVA)的原因是一直没有一个好的IDE和帮助,我认为一个好的编辑环境的标准就是你感觉不到他的存在,当你需要用某一个东西IDE就会自己蹦出来,但我现在还在eclipse做斗争。
理财术(Estates):做兼职。好象学习理财术的程序员很少,在游戏初期如果有一个会理财术的英雄,好象还是有一点点用处,但到中后期实在是杯水车薪,和兼职一样是鸡肋。如果你想发大财,我建议你去当老板,做什么兼职啊。
神秘学(Mysticism):好象初级是每天恢复一点魔法值,高级是两点,专家是三点,这有什么用啊,还不如我用个回城术到黑龙城看一下就够了,所以程序员就不要学习神秘术了,光明正大多好。
智力(Intelligence):熟悉类库。专家级智力能让你的英雄的mana翻倍,对程序员来讲,熟悉一套类库是很有必要的,也许是MFC,也许是Framework或者Java标准库,尽管你可以临时再去查询,但如果很熟悉的话可以省却更多的时间和获得更好的性能,为什么不呢?
医疗术(First Aid):帮助别人。帮助别人和医疗术都是听起来很有社会责任感或者很阳光的词汇。可事实上是,这两个都是垃圾,属于最差的技能之一。你经理评价你的能力绝对不会首先想到你有没有帮助别人,可能他会列举完你所有的特点之后才会想到:“哦,他还有医疗术”。相信我吧,做什么事都要靠自己,别人对你的帮助和你对别人的帮助只是顺手能做就做的,是一个不可靠的协议,千万不要相信他,一般我都会这么用:try{你能帮助吗?}catch(对不起…)。如果你非要学习医疗术,我建议你还不如学习学者(Scholar)这个技能,学者这个技能更加现实,至少他体现了相互平等的思想:“帮助也讲究相互”。
气系魔法技能(Air Magic):.Net。喜欢气系魔法的人太多了,也是最好学习的一种魔法。气系魔法出生的英雄向来是全能选手,或者说可以发展为全能英雄。从初期的“闪电”到中期的“闪电连锁”到后期的“飞行”、“ 时空之门”都是拿得出手的。但气系魔法对环境的适应能力很差,对寻路术的要求太高,所以气系魔法英雄能走多远问题是取决对环境的适应性。
箭术(Archery):程序测试。对一个普通程序员来说,测试并不是一项讨人喜欢的工作,但如果对一个专业的测试员或者箭手来说,程序测试是必须要学习的,能让你的测试能力有更大的提高。
魔力(Sorcery)和进攻学(Offense):算法和设计模式。学习此两种技能能使你物理攻击力和魔法攻击力上升,算法和设计模式也是如此,程序级别的优秀算法能显著提高你的程序效率,设计模式并是大家都能接受,有人设置认为设计模式阻碍了效率,但如果牺牲一小部分性能,能换来整个软件的结构更加协调、体系更加健壮也是值得的。
抵抗学(Resistance)和防御学(Armorer):软件保护。中国的程序员似乎很注重软件保护,软件保护真有那么重要吗?微软好象很喜欢别人用他的翻版软件,我却不只一次看到国内一个看似不起眼的软件层层加密,又是保护锁又是加密狗,其实没有很多人对你的软件感兴趣的,如果给我一个没有任何文挡的源代码,我愿意自己重新写一遍也不想去看他的。人各有志,但对银行、电信等等来说,抵抗学(Resistance)和防御学(Armorer)应该很重要的。
炮术(Artillery)和弹道学(Ballistics):最垃圾的技能了,程序员的工作内容中实在找不到这么差劲的技能要求