JAVA學習之路:不走彎路,就是捷徑(二)
阿新 • • 發佈:2019-02-04
備註:
本文選自ChinaITLab網校課程《劉曉濤Java就業直通班V2.0》之預備知識,點選這裡瞭解更多!
JAVA學習之路---學習路線及要點
2.軟體開發學習路線
兩千多年的儒家思想孔孟之道,中庸的思想透入骨髓,既不冒進也不保守並非中庸之道,而是找尋學習軟體開發的正確路線與規律。
從軟體開發人員的生涯規劃來講,我們可以大致分為三個階段,軟體工程師→軟體設計師→架構設計師或專案管理師。不想當元帥的士兵不是好士兵,不想當架構設計師或專案管理師的程式設計師也不是好的程式設計師。我們應該努力往上走。讓我們先整理一下開發應用軟體需要學習的主要技術。
A.基礎理論知識,如作業系統、編譯原理、資料結構與演算法、計算機原理等,它們並非不重要。如不想成為電腦科學家的話,可以採取"用到的時候再來學"的原則。
B.一門程式語言,現在基本上都是面向物件的語言,JAVA/C++/C#等等。如果做WEB開發的話還要學習HTML/JavaScript等等。
C.一種方法學或者說思想,現在基本都是面向物件思想(OOA/OOD/設計模式)。由此而衍生的基於元件開發CBD/面向方面程式設計AOP等等。
D.一種關係型資料庫,ORACLE/SqlServer/DB2/MySQL等等
E.一種提高生產率的IDE整合開發環境JBuilder/Eclipse/VS.NET等。
F.一種UML建模工具,用ROSE/VISIO/鋼筆進行建模。
G.一種軟體過程,RUP/XP/CMM等等,通過軟體過程來組織軟體開發的眾多活動,使開發流程專業化規範化。當然還有其他的一些軟體工程知識。
H.專案管理、體系結構、框架知識。
正確的路線應該是:B→C→E→F→G→H。
還需要補充幾點:
1).對於A與C要補充的是,我們應該在實踐中逐步領悟程式設計理論與程式設計思想。新技術雖然不斷湧現,更新速度令人眼花燎亂霧裡看花;但萬變不離其宗,程式設計理論與程式設計思想的變化卻很慢。掌握了程式設計理論與程式設計思想你就會有撥雲見日之感。面向物件的思想在目前來講是相當關鍵的,是強勢技術之一,在上面需要多投入時間,給你的回報也會讓你驚喜。
2).對於資料庫來說是獨立學習的,這個時機就由你來決定吧。
3).程式語言作為學習軟體開發的主線,而其餘的作為輔線。
4).軟體工程師著重於B、C、E、 D;軟體設計師著重於B、C、E、 D、F;架構設計師著重於C、F、H。
3.如何學習JAVA?
3.1 JAVA學習路線
3.1.1 基礎語法及JAVA原理
基礎語法和JAVA原理是地基,地基不牢靠,猶如沙地上建摩天大廈,是相當危險的。學習JAVA也是如此,必須要有紮實的基礎,你才能在J2EE、J2ME領域遊刃有餘。參加SCJP(SUN公司認證的JAVA程式設計師)考試不失為一個好方法,原因之一是為了對得起你交的1200大洋考試費,你會更努力學習,原因之二是SCJP考試能夠讓你把基礎打得很牢靠,它要求你跟JDK一樣熟悉JAVA基礎知識;但是你千萬不要認為考過了SCJP就有多了不起,就能夠獲得軟體公司的青睞,就能夠獲取高薪,這樣的想法也是很危險的。獲得"真正"的SCJP只能證明你的基礎還過得去,但離實際開發還有很長的一段路要走。
3.1.2 OO思想的領悟
掌握了基礎語法和JAVA程式執行原理後,我們就可以用JAVA語言實現面向物件的思想了。面向物件,是一種方法學;是獨立於語言之外的程式設計思想;是CBD基於元件開發的基礎;屬於強勢技術之一。當以後因工作需要轉到別的面嚮物件語言的時候,你會感到特別的熟悉親切,學起來像喝涼水這麼簡單。
使用面向物件的思想進行開發的基本過程是:
●調查收集需求。
●建立用例模型。
●從用例模型中識別分析類及類與類之間的靜態動態關係,從而建立分析模型。
●細化分析模型到設計模型。
●用具體的技術去實現。
●測試、部署、總結。
3.1.3 基本API的學習
進行軟體開發的時候,並不是什麼功能都需要我們去實現,也就是經典名言所說的"不需要重新發明輪子"。我們可以利用現成的類、元件、框架來搭建我們的應用,如SUN公司編寫好了眾多類實現一些底層功能,以及我們下載過來的JAR檔案中包含的類,我們可以呼叫類中的方法來完成某些功能或繼承它。那麼這些類中究竟提供了哪些方法給我們使用?方法的引數個數及型別是?類的構造器需不需要引數?總不可能SUN公司的工程師打國際長途甚至飄洋過海來告訴你他編寫的類該如何使用吧。他們只能提供文件給我們檢視,JAVA DOC文件(參考文獻4.4)就是這樣的文件,它可以說是程式設計師與程式設計師交流的文件。
基本API指的是實現了一些底層功能的類,通用性較強的API,如字串處理/輸入輸出等等。我們又把它成為類庫。熟悉API的方法一是多查JAVA DOC文件(參考文獻4.4),二是使用JBuilder/Eclipse等IDE的程式碼提示功能。
3.1.4 特定API的學習
JAVA介入的領域很廣泛,不同的領域有不同的API,沒有人熟悉所有的API,對一般人而言只是熟悉工作中要用到的API。如果你做介面開發,那麼你需要學習Swing/AWT/SWT等API;如果你進行網路遊戲開發,你需要深入瞭解網路API/多媒體API/2D3D等;如果你做WEB開發,就需要熟悉Servlet等API啦。總之,需要根據工作的需要或你的興趣發展方向去選擇學習特定的API。
3.1.5 開發工具的用法
在學習基礎語法與基本的面向物件概念時,從鍛鍊語言熟練程度的角度考慮,我們推薦使用的工具是Editplus/JCreator+JDK,這時候不要急於上手JBuilder/Eclipse等整合開發環境,以免過於關注IDE的強大功能而分散對JAVA技術本身的注意力。過了這一階段你就可以開始熟悉IDE了。
程式設計師日常工作包括很多活動,編輯、編譯及構建、除錯、單元測試、版本控制、維持模型與程式碼同步、文件的更新等等,幾乎每一項活動都有專門的工具,如果獨立使用這些工具的話,你將會很痛苦,你需要在堆滿工具的工作列上不斷的切換,效率很低下,也很容易出錯。在JBuilder、Eclipse等IDE中已經自動整合編輯器、編譯器、偵錯程式、單元測試工具JUnit、自動構建工具ANT、版本控制工具CVS、DOC文件生成與更新等等,甚至可以把UML建模工具也整合進去,又提供了豐富的嚮導幫助生成框架程式碼,讓我們的開發變得更輕鬆。應該說IDE發展的趨勢就是整合軟體開發中要用到的幾乎所有工具。
從開發效率的角度考慮,使用IDE是必經之路,也是從一個學生到一個職業程式設計師轉變的里程碑。
JAVA開發使用的IDE主要有Eclipse、JBuilder、JDeveloper、NetBeans等幾種;而Eclipse、JBuilder佔有的市場份額是最大的。JBuilder在近幾年來一直是JAVA整合開發環境中的霸主,它是由備受程式設計師尊敬的Borland公司開發,在硝煙瀰漫的JAVA IDE大戰中,以其快速的版本更新擊敗IBM的Visual Age for JAVA等而成就一番偉業。IBM在Visual Age for JAVA上已經無利可圖之下,乾脆將之貢獻給開源社群,成為Eclipse的前身,真所謂"柳暗花明又一村"。浴火重生的Eclipse以其開放式的外掛擴充套件機制、免費開源獲得廣大程式設計師(包括幾乎所有的骨灰級程式設計師)的青睞,極具發展潛力。
3.1.6 學習軟體工程
……
……
……
……
4.結束語
需要強調的是,學習軟體開發確實有一定的難度,也很辛苦,需要付出很多努力,但千萬不要半途而廢。本文如果能對一直徘徊在JAVA神殿之外的朋友有所幫助的話,筆者也欣慰了。哈哈,怎麼聽起來老氣橫秋呀?沒辦法,在電腦的長期輻射之下,都快變成小老頭了。最後奉勸各位程式設計師尤其是MM程式設計師,完成工作後趕快遠離電腦,據《胡播亂報》報道,電腦輻射會在白皙的面板上面點綴一些小黑點,看起來鮮豔無比……
5.參考文獻
4.1《JAVA夜未眠》
4.2
本文選自ChinaITLab網校課程《劉曉濤Java就業直通班V2.0》之預備知識,點選這裡瞭解更多!
JAVA學習之路---學習路線及要點
2.軟體開發學習路線
兩千多年的儒家思想孔孟之道,中庸的思想透入骨髓,既不冒進也不保守並非中庸之道,而是找尋學習軟體開發的正確路線與規律。
從軟體開發人員的生涯規劃來講,我們可以大致分為三個階段,軟體工程師→軟體設計師→架構設計師或專案管理師。不想當元帥的士兵不是好士兵,不想當架構設計師或專案管理師的程式設計師也不是好的程式設計師。我們應該努力往上走。讓我們先整理一下開發應用軟體需要學習的主要技術。
A.基礎理論知識,如作業系統、編譯原理、資料結構與演算法、計算機原理等,它們並非不重要。如不想成為電腦科學家的話,可以採取"用到的時候再來學"的原則。
B.一門程式語言,現在基本上都是面向物件的語言,JAVA/C++/C#等等。如果做WEB開發的話還要學習HTML/JavaScript等等。
C.一種方法學或者說思想,現在基本都是面向物件思想(OOA/OOD/設計模式)。由此而衍生的基於元件開發CBD/面向方面程式設計AOP等等。
D.一種關係型資料庫,ORACLE/SqlServer/DB2/MySQL等等
E.一種提高生產率的IDE整合開發環境JBuilder/Eclipse/VS.NET等。
F.一種UML建模工具,用ROSE/VISIO/鋼筆進行建模。
G.一種軟體過程,RUP/XP/CMM等等,通過軟體過程來組織軟體開發的眾多活動,使開發流程專業化規範化。當然還有其他的一些軟體工程知識。
H.專案管理、體系結構、框架知識。
正確的路線應該是:B→C→E→F→G→H。
還需要補充幾點:
1).對於A與C要補充的是,我們應該在實踐中逐步領悟程式設計理論與程式設計思想。新技術雖然不斷湧現,更新速度令人眼花燎亂霧裡看花;但萬變不離其宗,程式設計理論與程式設計思想的變化卻很慢。掌握了程式設計理論與程式設計思想你就會有撥雲見日之感。面向物件的思想在目前來講是相當關鍵的,是強勢技術之一,在上面需要多投入時間,給你的回報也會讓你驚喜。
2).對於資料庫來說是獨立學習的,這個時機就由你來決定吧。
3).程式語言作為學習軟體開發的主線,而其餘的作為輔線。
4).軟體工程師著重於B、C、E、 D;軟體設計師著重於B、C、E、 D、F;架構設計師著重於C、F、H。
3.如何學習JAVA?
3.1 JAVA學習路線
3.1.1 基礎語法及JAVA原理
基礎語法和JAVA原理是地基,地基不牢靠,猶如沙地上建摩天大廈,是相當危險的。學習JAVA也是如此,必須要有紮實的基礎,你才能在J2EE、J2ME領域遊刃有餘。參加SCJP(SUN公司認證的JAVA程式設計師)考試不失為一個好方法,原因之一是為了對得起你交的1200大洋考試費,你會更努力學習,原因之二是SCJP考試能夠讓你把基礎打得很牢靠,它要求你跟JDK一樣熟悉JAVA基礎知識;但是你千萬不要認為考過了SCJP就有多了不起,就能夠獲得軟體公司的青睞,就能夠獲取高薪,這樣的想法也是很危險的。獲得"真正"的SCJP只能證明你的基礎還過得去,但離實際開發還有很長的一段路要走。
3.1.2 OO思想的領悟
掌握了基礎語法和JAVA程式執行原理後,我們就可以用JAVA語言實現面向物件的思想了。面向物件,是一種方法學;是獨立於語言之外的程式設計思想;是CBD基於元件開發的基礎;屬於強勢技術之一。當以後因工作需要轉到別的面嚮物件語言的時候,你會感到特別的熟悉親切,學起來像喝涼水這麼簡單。
使用面向物件的思想進行開發的基本過程是:
●調查收集需求。
●建立用例模型。
●從用例模型中識別分析類及類與類之間的靜態動態關係,從而建立分析模型。
●細化分析模型到設計模型。
●用具體的技術去實現。
●測試、部署、總結。
3.1.3 基本API的學習
進行軟體開發的時候,並不是什麼功能都需要我們去實現,也就是經典名言所說的"不需要重新發明輪子"。我們可以利用現成的類、元件、框架來搭建我們的應用,如SUN公司編寫好了眾多類實現一些底層功能,以及我們下載過來的JAR檔案中包含的類,我們可以呼叫類中的方法來完成某些功能或繼承它。那麼這些類中究竟提供了哪些方法給我們使用?方法的引數個數及型別是?類的構造器需不需要引數?總不可能SUN公司的工程師打國際長途甚至飄洋過海來告訴你他編寫的類該如何使用吧。他們只能提供文件給我們檢視,JAVA DOC文件(參考文獻4.4)就是這樣的文件,它可以說是程式設計師與程式設計師交流的文件。
基本API指的是實現了一些底層功能的類,通用性較強的API,如字串處理/輸入輸出等等。我們又把它成為類庫。熟悉API的方法一是多查JAVA DOC文件(參考文獻4.4),二是使用JBuilder/Eclipse等IDE的程式碼提示功能。
3.1.4 特定API的學習
JAVA介入的領域很廣泛,不同的領域有不同的API,沒有人熟悉所有的API,對一般人而言只是熟悉工作中要用到的API。如果你做介面開發,那麼你需要學習Swing/AWT/SWT等API;如果你進行網路遊戲開發,你需要深入瞭解網路API/多媒體API/2D3D等;如果你做WEB開發,就需要熟悉Servlet等API啦。總之,需要根據工作的需要或你的興趣發展方向去選擇學習特定的API。
3.1.5 開發工具的用法
在學習基礎語法與基本的面向物件概念時,從鍛鍊語言熟練程度的角度考慮,我們推薦使用的工具是Editplus/JCreator+JDK,這時候不要急於上手JBuilder/Eclipse等整合開發環境,以免過於關注IDE的強大功能而分散對JAVA技術本身的注意力。過了這一階段你就可以開始熟悉IDE了。
程式設計師日常工作包括很多活動,編輯、編譯及構建、除錯、單元測試、版本控制、維持模型與程式碼同步、文件的更新等等,幾乎每一項活動都有專門的工具,如果獨立使用這些工具的話,你將會很痛苦,你需要在堆滿工具的工作列上不斷的切換,效率很低下,也很容易出錯。在JBuilder、Eclipse等IDE中已經自動整合編輯器、編譯器、偵錯程式、單元測試工具JUnit、自動構建工具ANT、版本控制工具CVS、DOC文件生成與更新等等,甚至可以把UML建模工具也整合進去,又提供了豐富的嚮導幫助生成框架程式碼,讓我們的開發變得更輕鬆。應該說IDE發展的趨勢就是整合軟體開發中要用到的幾乎所有工具。
從開發效率的角度考慮,使用IDE是必經之路,也是從一個學生到一個職業程式設計師轉變的里程碑。
JAVA開發使用的IDE主要有Eclipse、JBuilder、JDeveloper、NetBeans等幾種;而Eclipse、JBuilder佔有的市場份額是最大的。JBuilder在近幾年來一直是JAVA整合開發環境中的霸主,它是由備受程式設計師尊敬的Borland公司開發,在硝煙瀰漫的JAVA IDE大戰中,以其快速的版本更新擊敗IBM的Visual Age for JAVA等而成就一番偉業。IBM在Visual Age for JAVA上已經無利可圖之下,乾脆將之貢獻給開源社群,成為Eclipse的前身,真所謂"柳暗花明又一村"。浴火重生的Eclipse以其開放式的外掛擴充套件機制、免費開源獲得廣大程式設計師(包括幾乎所有的骨灰級程式設計師)的青睞,極具發展潛力。
3.1.6 學習軟體工程
……
……
……
……
4.結束語
需要強調的是,學習軟體開發確實有一定的難度,也很辛苦,需要付出很多努力,但千萬不要半途而廢。本文如果能對一直徘徊在JAVA神殿之外的朋友有所幫助的話,筆者也欣慰了。哈哈,怎麼聽起來老氣橫秋呀?沒辦法,在電腦的長期輻射之下,都快變成小老頭了。最後奉勸各位程式設計師尤其是MM程式設計師,完成工作後趕快遠離電腦,據《胡播亂報》報道,電腦輻射會在白皙的面板上面點綴一些小黑點,看起來鮮豔無比……
5.參考文獻
4.1《JAVA夜未眠》
4.2