|
記得在《程序員2006年合訂本》有個“華山論劍”的記錄了各種語言的優(yōu)點的優(yōu)勢,有興趣的可以看看。
我說這么多的意思就是,希望初學者不要盲目的去趕時髦,一味的追求新技術。 今天學java,然后c++,然后.net,還雄心勃勃的說:我要在短時間內精通“struts,hibinate,jsf,spring,applet”...... 過了幾天,發(fā)現(xiàn)現(xiàn)在公司或者論壇上看到現(xiàn)在流行JSF,又去研究JSF。 過了幾天,又是ruby,python......
簡直看花眼了。 所以要認定一門語言,認真打好基礎。語言本身并不重要,重要的是設計思想。 無論是c++還是java還是其他的動態(tài)語言,就程序控制來說,無非就是順序結構,循環(huán)結構,遞歸。 相比在上學的時候,我們學過c語言對這些基本的東西應該有所了解吧
我們所要學習的正是 繼承,重載,多態(tài),封裝等這些面向對象的精髓,需要具備的是把具體的事物抽象成具體的類的能力。 何時應該使用繼承,何時因該使用抽象類,何時應該使用接口,各個類之間通過什么來聯(lián)系,等等。
基礎學好了,然后可以開始學習一些API之類的東西,這些東西不要去研究它,只要達到能用就可以了。要用的時候再去查找它的具體用法。 實際項目中,需要用到的framework,apserver,xml之類東西的時候,再去學習他。 比如,項目中用 java + struts + jsp ,那我就學習struts。 項目中用到JSF,我就學JSF,用道Applet,我就學Applet。
有人會說,這樣的話,不是又變成什么都學,什么都不精通么? 最簡單的說句,公司請你來,是請你來做事情的,還是請你來學習的呢?
剛開始的時候,你們不能決定公司到底用什么技術架構,你所能做的就是適應公司,這個時候,你要做一個有心人,主動地去看看項目是如何利用這些framework,如何利用這些中間件的。 現(xiàn)在的主流無非就是個MVC思想,幾個項目下來,你肯定不具備這些架構的能力,但是只要你做個有心人,腳踏實地,你一定能有所收獲的。
技術始終在變,惟有思想永恒(有點唯心主義了)。
=========================================================
有人問: 因為不想一直做底層的程序員,希望最終能搞架構,所以就問問大家了,目的就是想知道,為達到最終目的,Java和C#哪一個更合適。
既然語言本身沒有高低貴賤之分,那么想要成為架構師,和你使用哪個語言似乎關系不大。 我覺得要成為一個合格的架構師,應該有這樣的過程: 1.有足夠的計算機基礎,包括數(shù)據結構,數(shù)據庫,C語言,匯編語言,軟件工程思想 2.選擇一門語言,通過這么語言學習一種思想,學習這種思想的精髓,無論是“面向對象”,還是現(xiàn)在的“SOA”。 3.參加實際的項目,這個時候不要過分的關注語言的本身,不要再在一些算法問題上鉆牛角尖了,算法是你在1和2中應該去重點掌握的內容。 我們要做的是結合項目實際,多想想為什么項目要用這樣的架構,這種架構如何將db,中間件,開發(fā)語言有機的結合起來的,這樣做有什么好處,這些中間件到底做了些什么事情。 這樣,通過不斷的遇到問題,不斷地思考,不斷地解決,你的能力自然就提高了。 4 不想做底層的程序員,3這個步驟是漫長的而且是痛苦的。3經歷的過程中,你可以開始看看“設計模式”,“UML”,“DB優(yōu)化”這些高級的書籍了。 有了面向對象的思想,和足夠的項目經歷,再加上你的努力,這些東西應該不難讀懂。這個時候,你可以想想,我以前做的一些項目,如果讓我來設計,我會如何去做。 5 如何把4學習的東西用到項目中去了。這個你不用擔心,中國不缺民工,缺乏的就是具備一定能力的設計人才。只要你具備這樣的能力,領導會看見,會給你機會的。 只要你做的還可以的,你會得到更多的機會去設計。做的不好,那你就還需要鍛煉,應為架構這東西很重要,搞得好,可以提高整個團隊的效率,減少項目風險。搞不好,呵呵,自己考慮。 6 有了5的水平,相信你把握式樣,跟客戶交流應該沒有什么問題了吧。
總之就是要腳踏實地,不要好高騖遠,不要抱怨領導不給你機會,而是要時刻提醒自己“領導給我機會的時候,我真的準備好了么”?
|