最近看了《浪潮之巔》第二版,對我這個IT從業(yè)者觸動很大,同時也有一些感悟,就想寫出來,給自己一個提醒,同時也給一些新入行的朋友一些參考。
這本書通過分析世界上非常著名的一些大公司他們的商業(yè)發(fā)展歷史,透過現(xiàn)象看本質(zhì),吳軍博士他向我們著重闡述了IT領(lǐng)域非常重要的幾個定律:
摩爾定律:集成電路的集成度每18個月翻一番,或者說相同性能的計算機等IT產(chǎn)品,每18個月價錢會降一半。
安迪-比爾定律:指以微軟的比爾·蓋茨為首的軟件商通過不斷增加軟件占用硬件的資源,消耗掉了安迪·格魯夫的英特爾以摩爾定律創(chuàng)造的硬件性能,使硬件的提升同時被軟件的升級給中和了。
反摩爾定律:可以理解為,如果達不到摩爾定律中的發(fā)展速度,就離死不遠了。
諾威格定律:一家公司的市場占有率超過50%后,就無法再使市場占有率翻番了。
70-20-10定律:一個成熟的領(lǐng)域,一般在全球最多只會有三個主要競爭對手,而他們所占的市場份額的比例差不多就是70:20:10這樣子。
基因定律:每家公司都有自己的企業(yè)文化、做事方式、商業(yè)模式、市場定位等因素,這些東西會深深植入這家公司,會形成一種模式,一種本能。
上面這些定律也可以說是決定一個公司成敗的關(guān)鍵因素之一,當(dāng)然其它方面還有歷史機遇、商業(yè)模式、領(lǐng)導(dǎo)才能等等因素。大象是做Java的,主要是想根據(jù)這些定律結(jié)合我從事的職業(yè)去分析,它如何與我們IT從業(yè)者相關(guān)。
我們投身在IT行業(yè),公司的興衰與我們息息相關(guān),我們努力工作為公司創(chuàng)造價值,公司也會回報我們相應(yīng)的價值。但是,如果公司的決策與發(fā)展違背了客觀規(guī)律,違背了上述的這些定律,那么它的情況就會不妙了,而我們也同樣會陷入失業(yè)的危機中,特別是剛剛進入這個行業(yè)的童鞋,他們還沒有很多經(jīng)驗,會對他們的生活造成不小的麻煩。因此我們有必要在進入一家公司前擦亮自己的眼睛,或者在公司向錯誤方向前進后,能夠及時的看清形勢,選擇更好的發(fā)展平臺。
其實不光在硬件領(lǐng)域有摩爾定律,我認為在軟件領(lǐng)域也有摩爾定律,尤其是對開源的Java更是如此。雖然Sun公司不在了,但它創(chuàng)造的Java確是真正的影響了全世界的編程開發(fā)與互聯(lián)網(wǎng)的發(fā)展。而基于Java的開源軟件更是得到了蓬勃發(fā)展,Java從1995年到現(xiàn)在一共經(jīng)歷了8個重大版本的發(fā)布(1996-2011),比摩爾定律的速度慢了兩個數(shù)量級,而從時間上看前面幾個版本基本上都滿足了摩爾定律的發(fā)展速度,轉(zhuǎn)折點是在2006年,這一年Sun公司發(fā)布了Java 6,而直到2011年Oracle收購Sun一年后才發(fā)布Java 7,這中間差不多間隔了5年之久!當(dāng)然Sun的沒落和Java語言本身的發(fā)展沒關(guān)系,大象只是想說明軟件的發(fā)展也在遵循著摩爾定律。如果不能達到這個速度,必然會出現(xiàn)新的軟件來取代舊的軟件。在開源項目方面表現(xiàn)得更明顯,這里面一個典型例子就是Struts1,這個Web框架,曾經(jīng)占據(jù)Java Web開發(fā)的半壁江山,而且時間長達數(shù)年之久,但后來由于越來越慢的更新速度,讓大量開發(fā)者非常不滿,到了2008年12月徹底關(guān)閉了這個項目。而Struts2就成了替代Struts1的第二代產(chǎn)品,但由于這兩個框架根本就是兩個不同的東西,不能平滑遷移,并且Struts2的更新速度還是慢得令人發(fā)瘋,而Spring在2009年12月發(fā)布了非常具有里程碑的Spring MVC 3.0版本,讓Web開發(fā)變得非常方便,這些都使得很多項目的技術(shù)選型發(fā)生了變化。這也從側(cè)面體現(xiàn)了摩爾定律與反摩爾定律在影響著軟件行業(yè)。
再來看看安迪-比爾定律,我在這里只談Intel的多核處理器,因為最早的雙核處理器可以追溯到2003年蘋果發(fā)布的Power Mac G5電腦上面搭載的IBM
PowerPC 970雙核處理器,大家都知道蘋果的東西是出了名的貴,用的多的還是Intel和AMD這兩家的,之所以不談AMD,是因為它與Intel相比實在不是一個級別的對手,另外Intel也是為了避免美國的反壟斷法才一直讓AMD存在著。Intel在2006年推出了基于酷睿(Core)架構(gòu)的雙核CPU后,正式開啟了電腦多核時代。而早在2004年9月30日,Java發(fā)布了代號為Tiger的JDK 5.0版本,新增的java.util.concurrent并發(fā)包為多線程編程提供了非常大的幫助,在服務(wù)器相繼用上多核CPU后,如何在多線程并發(fā)上面充分利用多核優(yōu)勢,提高性能,提高資源利用率,是開發(fā)者最關(guān)注的問題。所以看似電腦有了多核CPU,性能提升非常爽,但是軟件也會想方設(shè)法的利用這些提升帶來的好處,顯然不全是微軟的操作系統(tǒng)在消耗。
在Java開源項目里面,和70-20-10定律也很像,每塊領(lǐng)域都由幾個著名的軟件引導(dǎo)著,然后還有很多其它的小項目,不能說這些項目不好,只是使用人數(shù)不多,比較小眾。我列出一些僅供參考:
開發(fā)工具:Eclipse、NetBeans、IntelliJ IDEA(它分免費和收費兩個版本)
Eclipse版本控制插件:Subclipse、EGit
Web框架:Spring MVC、Struts2
ORM框架:Hibernate、MyBatis(iBATIS3.0之后改名)
Web服務(wù)器:Tomcat、Jetty、Resin、JBoss、GlassFish
構(gòu)建/集成:Maven、Ant、Hudson、Continuum、Jenkins(前身為Hudson)
消息中間件:ActiveMQ、HornetQ
模板引擎:FreeMarker、Velocity
工作流:Activiti、jBPM
任務(wù)調(diào)度:Quartz
網(wǎng)絡(luò)應(yīng)用框架:Netty、MINA
WebService:Hessian、CXF、XFire、Axis
NoSQL:Memcached、Redis、MongoDB、Cassandra、HBase
搜索引擎:Lucene、Solr、Nutch
…………
當(dāng)你剛剛進入軟件行業(yè),你需要考慮一下技術(shù)選型,我應(yīng)該朝哪個方向發(fā)展。每次TIOBE公布編程語言排行版的時候,總是大打口水戰(zhàn),每個從事不同開發(fā)領(lǐng)域的人都覺得自己這行是最好的,所以爭論這個沒有必要,還是應(yīng)該根據(jù)自己的想法來做出選擇。另外在選擇公司的時候,特別要注意這家公司是做什么業(yè)務(wù)的,這個業(yè)務(wù)的市場規(guī)模,采取的是什么商業(yè)模式(商業(yè)模式非常重要,吳軍博士曾在書中反復(fù)強調(diào)過),有哪些主要的競爭對手,當(dāng)前有沒有已經(jīng)比較成功可以領(lǐng)導(dǎo)行業(yè)的統(tǒng)治者(70-20-10),還有公司的企業(yè)文化,晉升機制等等等等。
對于已經(jīng)有工作經(jīng)驗想換工作的童鞋,我覺得應(yīng)該首先考慮的是發(fā)展發(fā)向,其次才是公司。現(xiàn)在大的方向主要分為企業(yè)應(yīng)用開發(fā)和互聯(lián)網(wǎng)開發(fā)。是繼續(xù)當(dāng)前行業(yè)還是換個行業(yè)做?這都是需要考慮的。
還有一些比較求穩(wěn)的童鞋,在公司做的不錯,公司的發(fā)展也比較平穩(wěn),也不打算跳槽,這時應(yīng)該關(guān)注下公司的戰(zhàn)略,這些東西雖然是公司高層決定,但一旦決定后肯定會召開員工大會,傳達這些內(nèi)容。在了解這些后仔細分析它會對公司帶來什么,未雨綢繆永遠不是壞事。
我們既然處在這個時代,又在IT行業(yè)工作,真的是一刻都不能讓自己放松下來。必須要擦亮自己的眼睛,緊盯行業(yè)的變化。大象深深的感受到,IT真他媽不是一般人能干的,而且經(jīng)常看到過勞死的消息。雖說很累,但我真的很喜歡寫代碼,研究技術(shù),我還是會繼續(xù)在這個行業(yè)里走下去。為了生活,為了家庭,為了孩子,還有為了自己熱愛的事業(yè)。
文章開頭說是自己的一些感悟,現(xiàn)在完全變成了嘮叨,不爽的童鞋請不要噴我,寫的不對的地方還請幫我指出來,大象鞠躬感謝。
本文為菠蘿大象原創(chuàng),如要轉(zhuǎn)載請注明出處。http://www.aygfsteel.com/bolo