• 技术路线的选择重要但不具有决定性
    时间:2012-02-25   作者:myan   出处:csdn.net

    最近微软在技术上连续有大动作,在PDC上发布了Windows Azure云计算平台,预告了Visual Studio 2010、.NET 4.0和C# 4.0。如果放在几年前,我相信微软粉丝们一定是欢声雷动,不过这次情况有点不太一样,在网上看到有人在抱怨微软技术更新速度太快而且四面出击,还有人扬言要改弦更张,投奔Linux或者Java阵营。我本人也收到一封来信,写信人大意是说自己大学时选择.NET路线,一路跟下来很辛苦,2.0还没学好,人家已经4.0预览了,感到很困惑,问我该怎么办。老实讲,这样的问题我无法回答,每个人具体情况不同,所应该采取的态度和解决方案也不同。从我自己来讲,其实技术路线问题也曾长时间地困扰我,所以我想把我现在的一些想法摊出来跟大家分享一下。罗列如下:

    1. 根据我长期的观察,做开发技术的人按照其人生路线设计,可以分成几类。第一类是把自己的命运寄托在一项事业上。这样的人知道自己想干什么,而且有能力把技术当工具来实现自己的想法和事业。这里所说的事业是广义的,并不是说你非要自己开公司当老板,而是说你认可一件事情,比如促进人们交流和言论自由,带给大家更多娱乐,提升大众身心健康水平,增强国家国防实力,或者提升某个行业的信息化水平,然后你能够以技术为手段,在这个事情上做出成绩。这种人做着自己认为值得一生投入的事情,愿意领略这一追求带来的人生起伏并且无怨无悔,我认为这是做技术的最高层次。第二类是把自己的命运寄托在组织和团队上。这种人虽然不知道自己到底想干什么,但是技术水平出色,而且综合素质突出,勇于变化,能够把技术当敲门砖进入某个优秀的团队,以团队的目标为目标,依据团队的需求而转型或者坚持,跟团队一起干出一番成绩。这类人有令人羡慕的职业背景,在大公司里高薪厚禄,生活比较安定舒适,但是中年以后会经常自问到底做了什么自己想做的事情,为自己过于风平浪静的人生感到惆怅。但总的来说,这个层次也是比较高的。第三种是把命运寄托在技术上。这种人有能力成为技术的专家,然后就希望奇货可居,待价而沽,把技能当商品出售谋求富足人生。这种人没有大的人生目标,不想把自己的命运跟企业和组织绑定在一起,也不愿意做什么改变,只是满足于技术高手的层面,寄希望于其技术专长能够长期值钱,有点投机主义者的意思。第四种是还处于出卖劳动力的阶段,在这里就不多说了。

    我想说的是,在过去很多年里,很多技术人实际上是把自己定位在第三种人里。而实际上,只有成为第一类和第二类人,才算达到了比较成功的状态。第三类人实际上最危险,因为技术的变迁不但是可能的,而且是一定的。他们要么马上被淘汰,要么追得老了累了追不动了以后被淘汰,被淘汰只是时间问题。 因此,如果你认为某个软件技术的兴起或者衰落对你个人的职业生涯构成了决定性的影响,那么你可能正走在错误的路线上,应当尽快改弦更张。

    2. 对个体软件人来说,什么是核心竞争力?不是时间差,不是技术,不是基本功,不是什么思想,也不是聪明脑瓜,而是你独特的个性知识经验组合。

    有人看到新技术出来了,急急忙忙赶上去尝鲜,以为自己快人一步,就能如何如何,实际上这种想法根本不靠谱,最多在论坛博客上风光两天,等这项技术投入实际应用以后一点便宜也占不到。

    有人把某个技术、框架、平台研究得里外通透,以为这样就能奇货可居。实践中,这种人能红火一时,但很难超过5年。这是现阶段技术发展生命周期所决定的。此外,现在越来越多人意识到了,能够靠读书看文章读代码做练习学会的东西没什么门槛,智力正常的人只要愿意花功夫,都不难达到你的程度。有的人认为,自己有能力驾驭技术潮流,哪个红学哪个。我在技术行业里不敢说阅人无数,见过的高手上百是有的,说句不怕得罪人的话,能够连续抓住两个以上的潮流并且始终处于领先位置的人及其少见,一只手就数的过来。更常见的情况是,上一个阶段的成功会成为下一个阶段的障碍,所谓随机应变屹立潮头之说,往往只不过是当红小生给自己壮胆的狂言,时过境迁之后,他就只能听着新一代当红小生的豪言壮语而默默苦笑。

    有人强调基本功,这是对的。在任何技术性行业里都一样,基础打得多深,上面就能造得多高。现实中,基本功扎实的人很少见,这跟中国教育的弊病有关,所以基本功好的人,一般应变能力强,学习速度快,比较受欢迎。但说基本功是核心竞争力,还是没有抓住本质。我们经常能看到基本功差不多的两个人,一个发展的很好,一个发展平平,这表明基本功成功职业生涯的是重要条件,但不是决定因素。

    有人强调这个那个思想,实际上软件行业里的伟大的思想就那么屈指可数的几个,窗户纸一点就破,其他衍生出来的思想,就跟技术风潮一样,各领风骚三五年,成不了你核心竞争力。

    还有人强调自己的智商,聪明脑瓜,觉得自己比别人聪明,自己的聪明是核心竞争力。大学生、刚毕业的人持这个观点的比较多,然而有过人生阅历以后,自然会对这种观点不以为然。本质上这是因为社会对于“聪明”的定义与学校不同,一个解题高手在学校里可能是受人仰慕的聪明脑瓜,但在职业人生中则可能是个大傻蛋。我们身边很多人走了一条不尽如意的人生道路,往往不是因为他们不够“聪明”,而是因为他们太“聪明”了,聪明反被聪明误。我想这也是为什么人们要发明“智慧”这个词以区别于“聪明”的原因。另外,关于这种观点,还有一点不得不指出,那就是在软件这个行当里,一般聪明就可以了,绝顶聪明占不到多少便宜。

    那么核心竞争力是什么?我观察圈子里很多成功和不成功的技术人,提出一个观点,那就是个人的核心竞争力是是他独特的个性知识经验组合。这个行业里拥挤着上百万聪明人,彼此之间真正的不同在哪里?不在于你学的是什么技术,学得多深,IQ多少,而在于你身上有别人没有的独特的个性、背景、知识和经验的组合。如果这种组合,1,绝无仅有;2,在实践中有价值,3,具有可持续发展性,那你就具备核心竞争力。因此,当设计自己的发展路线时,应当最大限度地加强和发挥自己独特的组合,而不是寻求单项的超越。而构建自己独特组合的方式,主要是通过实践,其次是要有意识地构造。关于这个观点,话题太大,我不打算赘述。

    3. 虽然技术路线的选择不是核心竞争力,也不应该具有决定性,但对于个人职业路线还是具有比较重要的影响力。但这并不是说,我们应该煞有介事地把自己归于Java或者.NET技术阵营,整天捧本书吭哧吭哧啃。正确的态度应该是着重于你要干的事情,然后认真把这件事情做好,通过必要的学习将所需的知识体系构筑完整,在整个过程中及时更新知识体系。只有心理没谱的人,才会为新技术的推出感到惶恐,因为他不知道自己要干什么,也就不知道自己要学什么,看到什么东西出来了都以为如果不学就会落伍,才会觉得是个压力,日积月累,才会痛苦彷徨嚷嚷怎么办。相反,如果你很清楚地知道自己要做什么,就会发现,其实必须及时更新的知识变化并不频繁,大多数新鲜玩意根本不在自己关注范围内,任他三仙落地,五佛升天,与我何干?因此完全可以安步当车,稳扎稳打。

    4. 几年前我刚加入CSDN的时候,.NET和Java之争是最热门的话题。现在回过头看,其实当时无论你选择那条路,如果认真做下去,搞些实事,别玩虚活的话,现在都应该有成就了。当然,客观上来说,这几年微软技术变化是比较快,弯弯绕得比较多,相比之下,如果当时你选择的是Java,可能这几年过的比较幸福一些,这是事实。我对此并不是没有自己的看法,但是这毕竟不是多么大的问题,实际上Java这几年折腾得也够猛,只不过作为一个比较开放的领域,Java为其追随者保留了更多的自由度,而微软的追随者大多数有一种被驱赶的感觉而已。话说回来, 微软的技术变革并不是没有章法的,其今天的技术架构,早在2003年就已经明明白白地公诸于众,只不过因为某些微妙的原因,一些微软跟随者这几年被带着兜了一些圈子,浪费了一些精力,比较辛苦。不过,现在.NET技术体系的尘埃基本落定,从体系结构上看,相对稳定的时期已经到来,投资微软技术可以放心。

    5. 不过我相信未来不同技术流的应用领域会出现一些明显的分化。在中国,涉及国防、国家安全、命脉产业和关键行业的服务端要害系统,国产化改造是阻挡不住的潮流,长期来看,开源和Java将在这个领域占据主导低位。其他的领域,随着微软技术变革的的大势确定,相信微软的优势不可小觑。这里没有考虑中国政府可能做出的产业调整政策。这次微软黑屏事件,无论是否出于微软本意,其最大的效果在于向有关部门展示了一下其信息战力,中国政军内部有关机构对此不可能不加以警惕,这是否会引起中国国内IT产业政策的调整,现在还不得而知。但我相信,微软系统恐怕将在不长的时间里与中国关键要害领域的核心系统彻底说拜拜。未来中国IT系统的格局,很有可能是居庙堂之高则清一色Linux/Java,处江湖之远则Windows占主导。

    6. 几年前还有一个热烈争论,就是Java和C#之争。现在实际上尘埃已经落定,两个语言的定位已经分道扬镳。Java实际上已经落实了成为系统语言的诺言,在现在的计算机体系结构上,Java与15年前的C一样,可以成为构造基础设施的利器,而且其性能相当不错,完全突破了之前人们对虚拟机语言的认识局限性。我相信在未来,Java将有效地侵蚀C语言的一些曾经以为千秋万代永不变色的地盘。虽然同时Java也在向上发展,但是其力度与C#不可同日而语。相反,C#主要是在往上发展,即将成为超级瑞士军刀,微软版十全大补膏,所有于应用开发有意义的特性都要加上,从编程语言发展来看,它将成为一株奇葩。作为一个编程语言的爱好者,我正饶有兴致地注视着史上特性最丰富语言C#的发展动向。但是,不得不指出,C#的弱点在脚跟。自从用它开发Longhorn Avalon失败以后,微软暂时放弃了让C#成为系统语言的努力,专心专意让C#变成应用开发领域的超级无敌霸王3000,而在核心领域,仍然是C++、COM当关。这就出现了有趣的局面,在可见的未来,微软体系内真正的核心软件基础设施,还是将由微软自己用C++来构造,而组合装配的应用开发,则由C#完成。VB和CLR平台上的其他动态语言都不会有太多机会,因为C#将穷尽神智正常者一切关于语言的幻想。

    以上几点,如果有人现在要选择技术路线,可以参考一下。但切记,技术路线的选择重要,但不具有决定意义。

    网友留言/评论

    我要留言/评论

    相关文章

    给计算机系应届毕业生的一些建议:我最近参加了 Big Ivy University (BIU)的招聘会,和大约50位计算机专业的本科生交谈过。他们希望能到我的公司 10gen 来实习或者正式工作。我确信他们之中有很聪明的,但是他们没有学会如何把自己和别人区分出来。在我看来这些学生有类似的建立,类似的着装,类似的语言来和我聊天。计算机系的同学们,我想告诉你们如何让自己在招聘会上脱颖而出。假如你是一个很棒的黑客,你需要告诉我们,并且把这一点写入简历。否则我们找不到你!
    国内首个HTML5应用开发平台AppCan开启限量内测:2月15日消息,国内首个HTML5应用开发平台AppCan在经过1年多时间的研发和测试之后,今天向广大开发者开放内测,开发者可以登录AppCan内测专题页面领取邀请码。本次内测为限量测试,一共只发1000个邀请码,大家抓紧哦。
    Facebook 大会:扎克伯格的14句话:4月22日,据外国媒体报道,Facebook F8开发者大会近日在美国旧金山举行。创始人兼CEO马克.扎克伯格出席会议并作主要演讲和声明,以下是大会中总结的14个要旨。
    2011年最具影响力的16个开源项目:OpenLogic近日发布了2011年度开源软件趋势分析报告,Openlogic报告重点分析了现今流行以及活跃的用于企业基础架构中的核心应用程 序。同时报告将热门的开源项目主要分为了Web应用和应用服务器、应用程序框架以及数据库和大数据三大类别。以下为OpenLogic评选出的2011年 度最具影响力的16个开源项目。
    开发出成功iPhone游戏的几条准则:本文由一位游戏开发者所撰。iPhone游戏如此之多,设计iPhone游戏都该注意什么?又如何让让自己的游戏脱颖而出,吸引玩家并留住玩家,开发商如何从游戏中获得收入?下面介绍一下这几条准则。
    【牛】一个网页体验17种操作系统的关机/重启:折腾帝们,借助虚拟机在某一操作系统中在安装另一个系统的有木有?谁让如今操作系统这么多,体验不完呢。光是微软大人的操作系统,历数体验一遍也够耗费心血的了。
    关于年长程序员的几个误区:最近我刚过完40岁生日,一个朋友向我开玩笑地说“嘿,你已经老了,不适合做程序员了!”我虽然附和地笑了笑,但是却有所感触。在我们这行,年龄歧 视已经司空见惯。COBOL那些人在若干年前就已经遇到了这个问题,随着Java的流行和上升,我们这些写Java程序的人嘲笑他们留下的代码以及面对新 技术时的顽固不化。 现在同样的事情降临到我的头上。也许你也是。即使现在还没有,很快就会轮到你的。现在你还笑得出来吗?是的,我是这么认为的。
    分享50个使用非比寻常导航菜单设计的创意网站:导航在网站设计中起着举足轻重的作用。一个设计简易的导航相对于复杂的导航将能够很好的帮助用户探索网站内容。无论从网站设计功能的任何角度来看,导航都是首先我们需要设计和实现的。 实现一个无与伦比并且能成功满足导航需要的导航设计就好像是登上珠穆朗玛峰。设计一个具体有特别的功能的导航会使得网站导航对于用户非常有趣,并且能够提高用户的使用体验。
    2012年移动应用交互设计趋势:2011年涌现出诸多优秀设计,随着操作系统的更新和硬件性能的提升,交互设计又被提升到一个新的高度。不再是将内容从互联网搬至移动设备,而是解决设备本身的问题,根据用户需求从操作方式、信息架构和内容呈现等各个方面挖掘设计的可能性,为用户带来新颖的交互体验。
    江湖秘籍:如何用百度打击对手:如果你有一个直接对手金山,还有个多年宿敌百度,而金山和百度之间并无恩怨,如何能够借百度之手攻击金山呢?想到了《教父II》里Michael的一句话:“这很难,但没有事情是不可能的。”