随笔-67  评论-522  文章-0  trackbacks-0
    最近看了《浪潮之巅》第二版,对我这个IT从业者触动很大,同时也有一些感悟,就想写出来,给自己一个提醒,同时也给一些新入行的朋友一些参考。
    这本书通过分析世界上非常著名的一些大公司他们的商业发展历史,透过现象看本质,吴军博士他向我们着重阐述了IT领域非常重要的几个定律:   
    摩尔定律:集成电路的集成度每18个月翻一番,或者说相同性能的计算机等IT产品,每18个月价钱会降一半。
    安迪-比尔定律:指以微软的比尔·盖茨为首的软件商通过不断增加软件占用硬件的资源,消耗掉了安迪·格鲁夫的英特尔以摩尔定律创造的硬件性能,使硬件的提升同时被软件的升级给中和了。
    反摩尔定律:可以理解为,如果达不到摩尔定律中的发展速度,就离死不远了。
    诺威格定律:一家公司的市场占有率超过50%后,就无法再使市场占有率翻番了。
    70-20-10定律:一个成熟的领域,一般在全球最多只会有三个主要竞争对手,而他们所占的市场份额的比例差不多就是70:20:10这样子。
    基因定律:每家公司都有自己的企业文化、做事方式、商业模式、市场定位等因素,这些东西会深深植入这家公司,会形成一种模式,一种本能。
    上面这些定律也可以说是决定一个公司成败的关键因素之一,当然其它方面还有历史机遇、商业模式、领导才能等等因素。大象是做Java的,主要是想根据这些定律结合我从事的职业去分析,它如何与我们IT从业者相关。
    我们投身在IT行业,公司的兴衰与我们息息相关,我们努力工作为公司创造价值,公司也会回报我们相应的价值。但是,如果公司的决策与发展违背了客观规律,违背了上述的这些定律,那么它的情况就会不妙了,而我们也同样会陷入失业的危机中,特别是刚刚进入这个行业的童鞋,他们还没有很多经验,会对他们的生活造成不小的麻烦。因此我们有必要在进入一家公司前擦亮自己的眼睛,或者在公司向错误方向前进后,能够及时的看清形势,选择更好的发展平台。
    其实不光在硬件领域有摩尔定律,我认为在软件领域也有摩尔定律,尤其是对开源的Java更是如此。虽然Sun公司不在了,但它创造的Java确是真正的影响了全世界的编程开发与互联网的发展。而基于Java的开源软件更是得到了蓬勃发展,Java1995年到现在一共经历了8个重大版本的发布(1996-2011),比摩尔定律的速度慢了两个数量级,而从时间上看前面几个版本基本上都满足了摩尔定律的发展速度,转折点是在2006年,这一年Sun公司发布了Java 6,而直到2011Oracle收购Sun一年后才发布Java 7,这中间差不多间隔了5年之久!当然Sun的没落和Java语言本身的发展没关系,大象只是想说明软件的发展也在遵循着摩尔定律。如果不能达到这个速度,必然会出现新的软件来取代旧的软件。在开源项目方面表现得更明显,这里面一个典型例子就是Struts1这个Web框架,曾经占据Java Web开发的半壁江山,而且时间长达数年之久,但后来由于越来越慢的更新速度,让大量开发者非常不满,到了200812月彻底关闭了这个项目。而Struts2就成了替代Struts1的第二代产品,但由于这两个框架根本就是两个不同的东西,不能平滑迁移,并且Struts2的更新速度还是慢得令人发疯,而Spring200912月发布了非常具有里程碑的Spring MVC 3.0版本,让Web开发变得非常方便,这些都使得很多项目的技术选型发生了变化。这也从侧面体现了摩尔定律与反摩尔定律在影响着软件行业。
    再来看看安迪-比尔定律,我在这里只谈Intel的多核处理器,因为最早的双核处理器可以追溯到2003年苹果发布的Power Mac G5电脑上面搭载的IBM PowerPC 970双核处理器,大家都知道苹果的东西是出了名的贵,用的多的还是IntelAMD这两家的,之所以不谈AMD,是因为它与Intel相比实在不是一个级别的对手,另外Intel也是为了避免美国的反垄断法才一直让AMD存在着。Intel2006年推出了基于酷睿(Core)架构的双核CPU后,正式开启了电脑多核时代。而早在2004930日,Java发布了代号为TigerJDK 5.0版本,新增的java.util.concurrent并发包为多线程编程提供了非常大的帮助,在服务器相继用上多核CPU后,如何在多线程并发上面充分利用多核优势,提高性能,提高资源利用率,是开发者最关注的问题。所以看似电脑有了多核CPU,性能提升非常爽,但是软件也会想方设法的利用这些提升带来的好处,显然不全是微软的操作系统在消耗。
    Java开源项目里面,和70-20-10定律也很像,每块领域都由几个著名的软件引导着,然后还有很多其它的小项目,不能说这些项目不好,只是使用人数不多,比较小众。我列出一些仅供参考:
    开发工具:EclipseNetBeansIntelliJ IDEA(它分免费和收费两个版本)
    Eclipse版本控制插件:SubclipseEGit
    Web框架:Spring MVCStruts2
    ORM框架:HibernateMyBatis(iBATIS3.0之后改名)
    
Web服务器:Tomcat、Jetty、Resin、JBoss、GlassFish
    构建/集成:MavenAntHudsonContinuumJenkins(前身为Hudson)
    消息中间件:ActiveMQHornetQ
    模板引擎FreeMarkerVelocity
    工作流:ActivitijBPM
    任务调度:Quartz
    网络应用框架:NettyMINA
    WebService:Hessian、CXF、XFire、Axis
    NoSQLMemcachedRedisMongoDBCassandraHBase
    搜索引擎:LuceneSolrNutch
    …………
    当你刚刚进入软件行业,你需要考虑一下技术选型,我应该朝哪个方向发展。每次TIOBE公布编程语言排行版的时候,总是大打口水战,每个从事不同开发领域的人都觉得自己这行是最好的,所以争论这个没有必要,还是应该根据自己的想法来做出选择。另外在选择公司的时候,特别要注意这家公司是做什么业务的,这个业务的市场规模,采取的是什么商业模式(商业模式非常重要,吴军博士曾在书中反复强调过),有哪些主要的竞争对手,当前有没有已经比较成功可以领导行业的统治者(70-20-10),还有公司的企业文化,晋升机制等等等等。
    对于已经有工作经验想换工作的童鞋,我觉得应该首先考虑的是发展发向,其次才是公司。现在大的方向主要分为企业应用开发和互联网开发。是继续当前行业还是换个行业做?这都是需要考虑的。
    还有一些比较求稳的童鞋,在公司做的不错,公司的发展也比较平稳,也不打算跳槽,这时应该关注下公司的战略,这些东西虽然是公司高层决定,但一旦决定后肯定会召开员工大会,传达这些内容。在了解这些后仔细分析它会对公司带来什么,未雨绸缪永远不是坏事。
    我们既然处在这个时代,又在IT行业工作,真的是一刻都不能让自己放松下来。必须要擦亮自己的眼睛,紧盯行业的变化。大象深深的感受到,IT真他妈不是一般人能干的,而且经常看到过劳死的消息。虽说很累,但我真的很喜欢写代码,研究技术,我还是会继续在这个行业里走下去。为了生活,为了家庭,为了孩子,还有为了自己热爱的事业。
    文章开头说是自己的一些感悟,现在完全变成了唠叨,不爽的童鞋请不要喷我,写的不对的地方还请帮我指出来,大象鞠躬感谢。
    本文为菠萝大象原创,如要转载请注明出处。http://www.blogjava.net/bolo
posted on 2013-10-31 21:12 菠萝大象 阅读(1036) 评论(3)  编辑  收藏 所属分类: 随笔

评论:
# re: 擦亮自己的眼睛[未登录] 2013-11-04 10:46 | 石头
对于一个已经工作7年,但还是很迷茫的石头来说,大象童鞋真的写到我心坎里去了,由于最近刚刚跳槽,我也深刻的感觉到公司的战略,其实对于每一个员工都很非常有用,有些时候哪怕是一个不错的公司,但你在一个边缘部门,即使你再努力也没用。由于你并不是核心产品部门,只要部门没有盈利,就会被悲催的砍掉。  回复  更多评论
  
# re: 擦亮自己的眼睛 2013-11-05 15:59 | 菠萝大象
@石头
首先谢谢你的认同。每个公司都会有一个核心业务,然后在核心业务的基础上横向发展,如果没有收益,立马砍掉,好一点的公司会将人员转岗,不好的公司直接裁掉,这种现象在大公司尤其明显,因为这些公司已经非常成熟,已经有了自己的基因,完全是在按部就班执行,只要高层的决策不出大问题,就能像这样一直走下去,除非因技术浪潮的出现错过机遇被淘汰掉,或被迫转型失败。诺基亚就是这样一个典型例子。  回复  更多评论
  
# re: 擦亮自己的眼睛 2013-11-19 09:35 | BLUE ICE CREAM
大象兄,应该多向你学习,多抽时间看书写代码啊。以后多来逛逛。  回复  更多评论
  

只有注册用户登录后才能发表评论。


网站导航: