打個(gè)比方吧,這位牛人23歲畢業(yè)摔握,做了兩年嵌入式C編程寄狼,25歲時(shí),突然對(duì)Java的優(yōu)雅設(shè)計(jì)情有獨(dú)鐘氨淌,而正好這時(shí)泊愧,公司有個(gè)Java項(xiàng)目,Java技術(shù)之旅開始了盛正。
1删咱、最開始三個(gè)月,開始接觸Java豪筝,比如接口痰滋、繼承、封裝等续崖,買了本《Think in Java》天天啃敲街,并且同時(shí)做項(xiàng)目實(shí)踐。猛學(xué)了三個(gè)月后严望,對(duì)面向?qū)ο缶幊蘋OP熟悉了聪富,原來腳本式思維和對(duì)象思維確實(shí)有差別。
2著蟹、三個(gè)月后墩蔓,開始啃《Core Java》,《Effective Java》萧豆,對(duì)Java有了更深入的了解奸披,回調(diào)的概念也有了,逐漸接觸到更高的層次涮雷,面向?qū)ο笤O(shè)計(jì)OOD阵面,這時(shí)又看了一本書《Head First Design Patterns》,感覺設(shè)計(jì)模式特別有趣。再寫代碼样刷,已經(jīng)不是面向?qū)崿F(xiàn)編程仑扑,而是面向設(shè)計(jì)編程。感覺寫Java代碼太簡(jiǎn)單了置鼻。?因?yàn)槊刻爝€有Java的Web項(xiàng)目開發(fā)镇饮,逐漸了解了WebWork等Web框架的使用。
3箕母、六個(gè)月過去了储藐,Java癮越來越大,逐漸開始往更高層次攀登嘶是,這時(shí)钙勃,又看到兩本書《企業(yè)應(yīng)用架構(gòu)模式》、《UML和模式應(yīng)用:面向?qū)ο蠓治雠c設(shè)計(jì)導(dǎo)論》聂喇,已經(jīng)開始從設(shè)計(jì)往面向?qū)ο蠓治鯫OA辖源、架構(gòu)攀登了。?因?yàn)榇蟀肽甑腏ava企業(yè)開發(fā)希太,Hibernate已經(jīng)比較熟悉了克饶,了解Hibernate背后的持久化技術(shù)、Spring背后的IoC容器跛十、組裝技術(shù)原理彤路。
4、一年后芥映,他逐漸脫離了Java語(yǔ)言洲尊,開始看這類書《面向模式的軟件體系結(jié)構(gòu) 卷1》。這個(gè)階段持續(xù)了一年奈偏,并且對(duì)以前的學(xué)過的設(shè)計(jì)模式坞嘀,如命令模式、觀察家模式有一個(gè)更深入的了解惊来。?因?yàn)閮赡甑钠髽I(yè)應(yīng)用開發(fā)丽涩,他已經(jīng)熟悉了Java EE的十來種規(guī)范,對(duì)Web容器和Servlet規(guī)范的關(guān)系有很深的理解裁蚁,對(duì)JDBC規(guī)范和數(shù)據(jù)庫(kù)驅(qū)動(dòng)程序的關(guān)系也很了解矢渊。
他正在經(jīng)歷Java開發(fā)的快速上升期,對(duì)應(yīng)于曲線的一年時(shí)間點(diǎn)枉证。
5矮男、兩年后,他突然發(fā)現(xiàn)室谚,他學(xué)的很多東西都沒用毡鉴,都是紙上談兵崔泵,比如,在自己的企業(yè)應(yīng)用開發(fā)中猪瞬,Command模式憎瘸、Template從來沒有用過。?他還發(fā)現(xiàn)陈瘦,本來100行寫的一個(gè)功能幌甘,花了1000行,就是為了所謂的設(shè)計(jì)優(yōu)雅性:可擴(kuò)展甘晤。而實(shí)際上含潘,還沒有等到擴(kuò)展饲做,該系統(tǒng)就已經(jīng)廢掉了线婚。?他發(fā)現(xiàn)原來設(shè)計(jì)模式主要用在系統(tǒng)框架開發(fā),而不是應(yīng)用開發(fā)盆均,一般開發(fā)人員不用塞弊,只需要理解。?他還發(fā)現(xiàn)泪姨,他認(rèn)真學(xué)過的JMS游沿、JCA、JTA肮砾、EJB像是從來沒有用過诀黍。突然他想通了,JMS仗处、JTA可能是一種無(wú)奈的選擇:處理遺留系統(tǒng)眯勾。
當(dāng)他開始對(duì)自己兩年學(xué)到的知識(shí)進(jìn)行反省、批駁時(shí)婆誓,他已經(jīng)有了技術(shù)辨別能力吃环,知道技術(shù)推廣也不是那么純潔,也有商業(yè)炒作洋幻。?知道Java雖然是Sun公司發(fā)明的郁轻,但Sun公司沒有賺到錢,IBM卻賺得盆滿缽滿文留,最后Sun公司竟然賣給了技術(shù)商人Ellison所創(chuàng)立的Oracle了好唯,Java之父James Gosling也混得并不好,從Sun公司到Oracle燥翅,最后還不歡離開了骑篙。
這時(shí)候,他已經(jīng)不限于Java了权旷,開始了解C#替蛉,Ruby贯溅,發(fā)現(xiàn)Java可能并不太適合互聯(lián)網(wǎng)開發(fā),PHP可能更適合躲查,ROR開發(fā)更快但需要在牛人的手里它浅。兩年后的這個(gè)時(shí)候,他才開始真正駕馭Java镣煮,他已經(jīng)不再限于Java姐霍,而是企業(yè)應(yīng)用。
這個(gè)時(shí)候典唇,技術(shù)提升的速度越來越慢了(曲線的三年分界點(diǎn))镊折,因?yàn)椴恢肋€可以學(xué)習(xí)什么新技術(shù)。因?yàn)樗l(fā)現(xiàn)介衔,原來這些東西恨胚,最深層次的,都是幾十年前的技術(shù)概念:消息系統(tǒng)炎咖、異步通訊赃泡、事件機(jī)制等等....
6、三年過去后乘盼,他已經(jīng)不再限于企業(yè)應(yīng)用升熊,而是解決方案,技術(shù)只是一種解決問題的方式绸栅,比如企業(yè)信息化成功的關(guān)鍵级野,恐怕不是技術(shù),而是企業(yè)本身的業(yè)務(wù)流程成熟度粹胯;企業(yè)信息化成功的關(guān)鍵蓖柔,不是處理好了技術(shù),而是處理好了幾位企業(yè)高官的利益矛双。?這時(shí)候渊抽,對(duì)IT行業(yè)新聞,逐漸有判斷力和免疫力议忽。
他突然發(fā)現(xiàn)懒闷,技術(shù)的力量很有限,商業(yè)才是最大的驅(qū)動(dòng)力量栈幸。而此時(shí)愤估,他已經(jīng)不再鉆研技術(shù)細(xì)節(jié),比如JVM的垃圾回收機(jī)制速址,如果他在一個(gè)技術(shù)研發(fā)型公司玩焰,比如普元,可能還會(huì)深入挖掘技術(shù)芍锚。如果他在東軟這類行業(yè)應(yīng)用開發(fā)企業(yè)昔园,這類企業(yè)的口號(hào)是Beyond Technology蔓榄,這時(shí)候他再執(zhí)迷于技術(shù)而輕業(yè)務(wù),恐怕不太受歡迎默刚。
這個(gè)時(shí)候甥郑,技術(shù)的提升,就會(huì)進(jìn)入一個(gè)平臺(tái)期荤西,也就是曲線的水平部分澜搅。再平穩(wěn)發(fā)展,技術(shù)大牛就開始煉成了邪锌。