本文目錄一覽:
- 1、JAVA學習
- 2、初學Java一般要學習幾個月?
- 3、Java學習路線
- 4、java學習哪些課程?總共周期是大概是多久?
- 5、java學習之路
- 6、java學習心得?
JAVA學習
零基礎學習java可按照這份大綱來進行學習
第一階段:Java專業基礎課程
———-
階段目標:
1. 熟練掌握Java的開發環境與編程核心知識
2. 熟練運用Java面向對象知識進行程序開發
3. 對Java的核心對象和組件有深入理解
4. 熟練應用JavaAPI相關知識
5. 熟練應用JAVA多線程技術
6. 能綜合運用所學知識完成一個項目
知識點:
1、基本數據類型,運算符,數組,掌握基本數據類型轉換,運算符,流程式控制制。
2、數組,排序演算法,Java常用API,類和對象,了解類與對象,熟悉常用API。
3、面向對象特性,集合框架,熟悉面向對象三大特性,熟練使用集合框架。
4、IO流,多線程。
5、網路協議,線程運用。
———
第二階段:JavaWEB核心課程
階段目標:
1. 熟練掌握資料庫和MySQL核心技術
2. 深入理解JDBC與DAO資料庫操作
3. 熟練運用JSP及Servlet技術完成網站後台開發
4. 深入理解緩存,連接池,註解,反射,泛型等知識
5. 能夠運用所學知識完成自定義框架
知識點:
1、資料庫知識,範式,MySQL配置,命令,建庫建表,數據的增刪改查,約束,視圖,存儲過程,函數,觸發器,事務,游標,建模工具。
2、深入理解資料庫管理系統通用知識及MySQL資料庫的使用與管理。為Java後台開發打下堅實基礎。Web頁面元素,布局,CSS樣式,盒模型,JavaScript,jQuery。
3、掌握前端開發技術,掌握jQuery。
4、Servlet,EL表達式,會話跟蹤技術,過濾器,FreeMarker。
5、掌握Servlet相關技術,利用Servlet,JSP相關應用技術和DAO完成B/S架構下的應用開發。
6、泛型,反射,註解。
7、掌握JAVA高級應用,利用泛型,註解,枚舉完成自己的CRUD框架開發為後續框架學習做鋪墊。
8、單點登錄,支付功能,項目整合,分頁封裝熟練運用JSP及Servlet核心知識完成項目實戰。
———
第三階段:JavaEE框架課程
階段目標:
1. 熟練運用Linux操作系統常見命令及完成環境部署和Nginx伺服器的配置
2. 熟練運用JavaEE三大核心框架:Spring,SpringMVC,MyBatis
3. 熟練運用Maven,並使用SpringBoot進行快速框架搭建
4. 深入理解框架的實現原理,Java底層技術,企業級應用等
5. 使用Shiro,Ztree和Spring,SpringMVC,Mybaits完成企業項目
知識點:
1、Linux安裝配置,文件目錄操作,VI命令,管理,用戶與許可權,環境部署,Struts2概述,hiberante概述。
2、Linux作為一個主流的伺服器操作系統,是每一個開發工程師必須掌握的重點技術,並且能夠熟練運用。
3、SSH的整合,MyBatis,SpringMVC,Maven的使用。
4、了解AOP原理,了解中央控制器原理,掌握MyBatis框架,掌握SSM框架的整合。
5、Shiro,Ztree,項目文檔,項目規範,需求分析,原型圖設計,資料庫設計,工程構建,需求評審,配置管理,BUG修復,項目管理等。
6、獨立自主完成一個中小型的企業級綜合項目的設計和整體架構的原型和建模。獨立自主完成一個大型的企業級綜合項目,並具備商業價值
初學Java一般要學習幾個月?
初學java分為兩種情況,一是自學,自學Java至少需要一年以上的時間才能達到找工作的水平。二是報班學習,報班培訓四到六個月的時間就可以找到一份不錯的工作。千鋒教育就有線上免費Java線上公開課因為Java自學相對比較難,正確的學習資料的獲取、學習中遇到的問題以及如何合理運用學到的知識等都是自學中常會遇到的問題,最主要的還是作為初學者沒有人指導帶著入門,而且也沒有足夠的項目經驗,所以找工作的時候可能會處處碰壁。而培訓機構有系統的教學體系和經驗豐富的講師,會容易很多。 我們在選擇java培訓機構的過程中,最好能夠進行實地考察,進行細緻全面的了解,試聽Java課程,看自己能否聽懂老師所講的內容,並且進行多家對比,從中選出適合自己的,那就是最好的。如果想了解更多相關知識,建議到千鋒教育了解一下。千鋒教育目前在18個城市擁有22個校區,年培養優質人才20000餘人,與國內20000餘家企業建立人才輸送合作關係,院校合作超600所。
Java學習路線
根據個人實際的經歷,結合多種書籍,特別整理出了下面的java學習路線:
一、Java SE部分
1、java基礎:基礎語法;面向對象(重點);集合框架(重點);常見類庫API;
2、java界面編程:AWT;事件機制;Swing;
3、java高級知識:Annotation;IO和NIO、AIO;多線程、線程池;阻塞、非阻塞、非同步網路通信;反射、動態代理;
二、JDBC編程
4、SQL基礎:基礎SQL語句;基本查詢;多表查詢;子查詢;結果集的交、並、差運算;
5、JDBC基礎:常見資料庫用法;JDBC操作常見資料庫;RowSet與離線結果集;資料庫連接池;事務管理、批處理;
6、JDBC進階:存儲過程、函數;觸發器;理解JCBC的不足;掌握ORM工具優勢和設計;
三、DHTML編程
7、HTML基礎:基本HTML標籤;常見表單標籤;DIV+CSS布局;
8、JavaScript知識:javascript基本語法;javascript基本對象特徵;Json語法;深刻理解javascript的動態特徵;
9、Dom和事件機制:DOM操作、編程;常見瀏覽器事件機制;掌握用戶交互技巧;
四、XML編程
10、XML基礎:XML基礎規則;DTD和SCheme;XML和樣式單;
11、XML進階:DOM、SAX和JAXP;dom4j、JDOM等工具;XQuery和XQJ;基於XML的數據交換;
12、Web Service:JAX_WS2、SAAJ規範;WSDL和SOAP協議;CXF框架、攔截器;CXF整合Spring;
五、Java Web編程
13、Web編程基礎:Tomcat伺服器;Jsp語法、EL、內置對象;Servlet API;Servlet 3.0註解;Listener和Filter;
14、Web編程進階:自定義標籤庫;MVC和DAO、Servlet、標籤的作用;JSTL、DisplayTag等常見標籤庫用法;
15、Web編程原理:請求/響應、架構;Http協議;深刻理解Jsp運行原理;掌握Web容器底層的線程池、socket通信、調用Servlet的命令模式;
六、Ajax編程:
16、Ajax編程:XML HttpRequest和非同步請求;發送請求和處理響應;常見Ajax庫(Prototype、Jquery、ExtJs、DWR)用法;結合Http協議、非同步請求深入研究ajax庫的設計;
七、Android開發
17、Android基礎:Android開發調試環境;Android應用結構;界面組件與界面編程;資源管理;四大組件;
18、Android中級:文件IO和SQLite;圖形、圖像與動畫;音頻、視頻的錄製與播放;感測器編程;GPS應用;
19、Android高級:網路編程與Web Service;OpenGL_ES 3D開發;整合Google服務;使用NDK開發;java和c相互調試;
八、輕量級Java EE
17、Struts2:MVC與struts體系;Action和Result;國際化和標籤庫;文件上傳、下載;類型轉換和輸入檢驗;攔截器與插件開發;
18、Hibernate:ORM與持久化映射;關係映射、繼承映射;延遲載入、性能調優;HQL查詢、條件查詢、SQL查詢;二級緩存和查詢緩存;
19、Spring:IoC與Bean配置、管理;Bean生命周期;SP、EL;AOP與事務許可權控制;S2SH整合開發;Spring整合Jpa;
九、經典Java EE
20、JSF選學:MVC與JSF設計理念;託管Bean與導航模型;JSF流程與事件機制;JSF標籤庫;類型轉換與輸入檢驗;
21、EJB及相關技術:JNPI與RMI;會話Bean及其生命周期;IoC與EJB攔截器;JMS與MDB;會話Bean與Web Service;
22、JPA:ORM框架與JPA規範;JPA註解與常用API;JTA事務與事務管理;JPQL查詢;EJB、JPA整合;
十、Java 拓展、進階:
23、Java EE實踐與架構:Ant+Ivy或Maven;SVN、CVS;深刻理解10種以上設計模式;掌握各種Java EE架構及各自優勢;
24、Workflow:Workflow規範及功能;JBPM等workflow框架;多次重構、反覆思考;大型項目經驗;
25、Java EE進階:掌握各MVC框架運行原理、能開發類似框架;掌握Spring、HiveMind、AspectJ等框架原理、能開發類似工具;掌握Hibernate、iBatis等框架原理,能開發類似工具;深入研究EJB機制、大致了解應用伺服器的實現;
希望對您有所幫助!~
java學習哪些課程?總共周期是大概是多久?
java培訓行業的培訓周期各不相同,但大多數的培訓周期為5個月的時間。如需java培訓推薦選擇【達內教育】,該機構與學員簽訂《指定授課講師承諾書》,確保學員利益。
【達內Java培訓班】課程內容包括以下幾個方面:
1、Java語言基礎。這階段主要包括:計算機概述、Java基礎、面向對象編程實戰。
2、JavaSE核心。這階段主要包括:項目需求概述/IDEA、JavaSE核心API、Java8高級API、Maven/Git、核心API綜合實戰。
3、WEB全棧及資料庫。這個階段包括:項目需求概述/IDEA、WEB前端核心、WEB前端高級框架、前端項目實戰等。
4、微服務及超高並發互聯網架構。這個階段包括:項目需求概述、SSM框架技術、分散式微服務/SpringCloud、互聯網架構技術、互聯網項目實戰、項目峰會。感興趣的話點擊此處,免費學習一下
想了解更多有關java培訓的相關信息,推薦諮詢【達內教育】。該機構已從事19年IT技術培訓,並且獨創TTS8.0教學系統,1v1督學,跟蹤式學習,有疑問隨時溝通。該機構26大課程體系緊跟企業需求,企業級項目,課程穿插大廠真實項目講解,對標企業人才標準,制定專業學習計劃,囊括主流熱點技術,助力學員更好的提升。達內IT培訓機構,試聽名額限時搶購。
java學習之路
找完工作了,offer不大不小,還算滿意,我將我的學習經驗寫下,希望給後來人一些啟發,更希望Java能夠長盛不衰。
如有謬誤請見諒
聲明:
我是一個普通本科生
以下僅個人見解,如有反對意見,勿人肉我
覺得寫代碼是軟體工程師中混得最銼的人請繞過
覺得Java就是用來做網站的請繞過
覺得SSH就是*鳥的同學培訓學習的請繞過
第一階段 熟悉語言
在這個階段,你是這個領域絕對的新手,你什麼都不懂,什麼都不知道,沒有別的辦法,看書,寫代碼,請教大牛。
在這個階段你需要深入了解Java語言的語法,能夠用它來做一些小東西,比如鬧鐘之類。並且隨著你的學習深入,對自己未來的學習方向做出選擇,SE,EE,ME?選擇好自己
的方向然後努力吧!我的方向是EE。
目標:紮實基礎,對語法和整個Java的宏觀有一定的理解,具備一定的編碼能力。
第二階段 熟悉開源框架
在這個階段,你具備了一定的能力,也是最容易滿足的時候,這個時候你需要不斷看書不斷學習,否則你將很難跨過此階段成為大牛。
在這個階段你需要對各種框架的使用非常熟悉,怎麼樣熟悉呢?不是看書,而是做項目,只要你想做,你會有一大把的時間和機會去做項目,運氣好的話,money哦 -_-
目標:熟練使用各種開源框架,著重但不限於SSH,lucene等,積累一定的項目經驗。順利的話這個時候你將有一套***完整的知識體系****:
JS,AS,CSS
|
SSH等等各種框架
|
各種資料庫(包括但不限於sql及其優化,存儲過程,各種索引,分區……太多了)
千萬必須一定保證能單挑20000代碼量以上的項目
第三階段 閱讀源碼
當你到這個階段的時候,如果前幾個階段過渡得好,那麼不出意外你已經可以告訴別人你有10w行代碼量了,接下來呢?讓我們回歸。
這是一個沒有人幫助你的階段,踏實地看源碼,踏實地總結,在這個階段的完結時候,你基本能總結出一本書那麼厚的經驗了。
這是一個很重要的階段,因為前兩個階段的人將佔絕大部分,你如果不通過此階段,你將和他們毫無差別,不管你曾經付出多少努力。
目標:閱讀JDK源碼,了解各種類的設計及應用場景。閱讀各種框架源碼,了解各種開源框架的設計和實現原理(不要在網上看了一篇文章就說IOC,AOP精通了),最好能研究一下JVM(這個大公司非常看重),並能夠反思自己做過的項目中,這些框架的缺點和你的改進的方法。
第四階段 深入架構
不得不說,這個時候你會很孤獨,因為很少有人堅持到這個階段,為了未來,你必須在這時尋找到一位和你相當的朋友,相互交流(thanks wkx-_-)。
這個時候你需要跳出”二手貨交易市場”,來到真正的互聯網大型應用,這個時候你接觸的不僅限於語言,還有集群,分散式文件系統,分散式緩存,負載均衡LB,高可用性HA,主備拓撲應用,數據、頁面、動態緩存,資料庫分庫分表,水平垂直擴展。那麼很高興的告訴你,這個時候你會發現以前的編譯原理,操作系統原理,網路原理這些課終於有了用
武之地。
目標:對於大型網站架構具備很強的理論水平,並且能根據(模擬)測試結果判斷系統瓶頸所在並進行性能調優(這點幾乎可以使你無敵於天下),熟悉但不限於以下名詞:
ab,nmon,reverse proxy,lighttpd,apache prefork,epoll,sendfile,opcode,squid,memcached,LVS,hadoop,map/reduce,hessian ,OSGI,mysql master-slave,Oracle Standby Database,完了,太多太多了……
以上的1/5你一旦熟練掌握,那麼,你將不弱於絕大部分研究生,並能和一位不懂Java的面試官時,讓對方意猶未盡的跟你談50分鐘。
什麼叫走完這四個階段,前提是你的簡歷上應該有以下幾句話:
10萬行代碼量
極高的壓力承受能力
對技術的執著追求
不出意外(前提是我表達沒問題),讀完這篇文章,大家應該對於自己的課程安排和學習曲線有了一定的了解,並能分辨哪些東西對於自己很重要,這樣你的學習之路將會平坦一些吧。
總結如下:
1.沒有最強的英雄只有最強的玩家。(整天抱怨這不好那不好的同學知道原因了吧)
2.代碼量是王道。(當然不是指反向生成的DAO)
3.完美的學習曲線。(公司比較注重你自學的學習曲線是否合理)
4.恆心。(中途放棄你將一事無成)
java學習心得?
Java學習心得
引言
軟體開發之路是充滿荊棘與挑戰之路,也是充滿希望之路。Java學習也是如此,沒有捷徑可走。夢想像《天龍八部》中虛竹一樣被無崖子醍醐灌頂而輕鬆獲得一甲子功力,是很不現實的。每天仰天大叫”天神啊,請賜給我一本葵花寶典吧”,殊不知即使你獲得了葵花寶典,除了受自宮其身之苦外,你也不一定成得了”東方不敗”,倒是成”西方失敗”的幾率高一點。
“不走彎路,就是捷徑”,佛經說的不無道理。
1.如何學習程序設計?
Java是一種平台,也是一種程序設計語言,如何學好程序設計不僅僅適用於Java,對C++等其他程序設計語言也一樣管用。有編程高手認為,Java也好C也好沒什麼分別,拿來就用。為什麼他們能達到如此境界?我想是因為編程語言之間有共通之處,領會了編程的精髓,自然能夠做到一通百通。如何學習程序設計理所當然也有許多共通的地方。
1.1 培養興趣
興趣是能夠讓你堅持下去的動力。如果只是把寫程序作為謀生的手段的話,你會活的很累,也太對不起自己了。多關心一些行業趣事,多想想蓋茨。不是提倡天天做白日夢,但人要是沒有了夢想,你覺得有味道嗎?可能像許多深圳本地農民一樣,打打麻將,喝喝功夫茶,拜拜財神爺;每個月就有幾萬十幾萬甚至更多的進帳,憑空多出個”食利階層”。你認為,這樣有味道嗎?有空多到一些程序員論壇轉轉,你會發現,他們其實很樂觀幽默,時不時會冒出智慧的火花。
1.2 慎選程序設計語言
男怕入錯行,女怕嫁錯郎。初學者選擇程序設計語言需要謹慎對待。軟體開發不僅僅是掌握一門編程語言了事,它還需要其他很多方面的背景知識。軟體開發也不僅僅局限於某幾個領域,而是已經滲透到了各行各業幾乎每一個角落。
如果你對硬體比較感興趣,你可以學習C語言/彙編語言,進入硬體開發領域。如果你對電信的行業知識及網路比較熟悉,你可以在C/C++等之上多花時間,以期進入電信軟體開發領域。如果你對操作系統比較熟悉,你可以學習C/Linux等等,為Linux內核開發/驅動程序開發/嵌入式開發打基礎。
如果你想介入到應用範圍最廣泛的應用軟體開發(包括電子商務電子政務系統)的話,你可以選擇J2EE或.NET,甚至LAMP組合。每個領域要求的背景知識不一樣。做應用軟體需要對資料庫等很熟悉。總之,你需要根據自己的特點來選擇合適你的編程語言。
1.3 要腳踏實地,快餐式的學習不可取
先分享一個故事。
有一個小朋友,他很喜歡研究生物學,很想知道那些蝴蝶如何從蛹殼裡出來,變成蝴蝶便會飛。有一次,他走到草原上面看見一個蛹,便取了回家,然後看著,過了幾天以後,這個蛹出了一條裂痕,看見裡面的蝴蝶開始掙扎,想抓破蛹殼飛出來。這個過程達數小時之久,蝴蝶在蛹裡面很辛苦地拚命掙扎,怎麼也沒法子走出來。這個小孩看著看著不忍心,就想不如讓我幫幫它吧,便隨手拿起剪刀在蛹上剪開,使蝴蝶破蛹而出。但蝴蝶出來以後,因為翅膀不夠力,變得很臃腫,飛不起來。
這個故事給我們的啟示是:欲速則不達。
浮躁是現代人最普遍的心態,能怪誰?也許是貧窮落後了這麼多年的緣故,就像當年的大躍進一樣,都想大步跨入***主義社會。現在的軟體公司、客戶、政府、學校、培訓機構等等到處瀰漫著浮躁之氣。就拿我比較熟悉的大連大工IT職業培訓來說吧,居然打廣告宣稱”20多年的計算機職業教育,遼寧省十佳學校”,殊不知中國計算機發展才幾年,軟體發展才幾年,居然去報名的學生不少,簡直是藐視天下程序員。培訓出來的「程序員」大多不知道OO,OP為何物?社會環境如是,我們不能改變,只能改變自己,鬧市中的安寧,彌足珍貴。許多初學者C++/Java沒開始學,立馬使用VC/JBuilder,會使用 VC/JBuilder開發一個Hello World程序,就忙不迭的向世界宣告,”我會軟體開發了”,簡歷上也大言不慚地寫上”精通VC/Java”。結果到軟體公司面試時要麼被三兩下打發走了,要麼被駁的體無完膚,無地自容。到處碰壁之後才知道捧起《C++編程思想》《Java編程思想》仔細鑽研,早知如此何必當初呀。
“你現在講究簡單方便,你以後的路就長了”,好象也是佛經中的勸戒。
1.4 多實踐,快實踐
彭端淑的《為學一首示子侄》中有窮和尚與富和尚的故事。
從前,四川邊境有兩個和尚,一個貧窮,一個有錢。一天,窮和尚對富和尚說:”我打算去南海朝聖,你看怎麼樣?”富和尚說:”這裡離南海有幾千里遠,你靠什麼去呢?”窮和尚說:”我只要一個水缽,一個飯碗就夠了。”富和尚為難地說:”幾年前我就打算買條船去南海,可至今沒去成,你還是別去吧!” 一年以後,富和尚還在為租賃船隻籌錢,窮和尚卻已經從南海朝聖回來了。
這個故事可解讀為:任何事情,一旦考慮好了,就要馬上上路,不要等到準備周全之後,再去幹事情。假如事情準備考慮周全了再上路的話,別人恐怕捷足先登了。軟體開發是一門工程學科,注重的就是實踐,”君子動口不動手”對軟體開發人員來講根本就是錯誤的,他們提倡”動手至上”,但別害怕,他們大多溫文爾雅,沒有暴力傾向,雖然有時候蓬頭垢面的一副”比爾蓋茨”樣。有前輩高人認為,學習編程的秘訣是:編程、編程、再編程,筆者深表贊同。不僅要多實踐,而且要快實踐。我們在看書的時候,不要等到你完全理解了才動手敲代碼,而是應該在看書的同時敲代碼,程序運行的各種情況可以讓你更快更牢固的掌握知識點。
1.5 多參考程序代碼
程序代碼是軟體開發最重要的成果之一,其中滲透了程序員的思想與靈魂。許多人被《仙劍奇俠傳》中凄美的愛情故事感動,悲劇的結局更有一種缺憾美。為什麼要以悲劇結尾?據說是因為寫《仙劍奇俠傳》的程序員失戀而安排了這樣的結局,他把自己的感覺融入到遊戲中,卻讓眾多的仙劍迷扼腕嘆息。
多多參考代碼例子,對Java而言有參考文獻[4.3],有API類的源代碼(JDK安裝目錄下的src.zip文件),也可以研究一些開源的軟體或框架。
1.6 加強英文閱讀能力
對學習編程來說,不要求英語, 但不能一點不會,。最起碼像Java API文檔(參考文獻[4.4])這些東西還是要能看懂的,連猜帶懵都可以;旁邊再開啟一個”金山詞霸”。看多了就會越來越熟練。在學Java的同時學習英文,一箭雙鵰多好。另外好多軟體需要到英文網站下載,你要能夠找到它們,這些是最基本的要求。英語好對你學習有很大的幫助。口語好的話更有機會進入管理層,進而可以成為剝削程序員的”周扒皮”。
1.7 萬不得已才請教別人
筆者在Martix與Java論壇的在線輔導系統中解決學生問題時發現,大部分的問題學生稍做思考就可以解決。請教別人之前,你應該先回答如下幾個問題。
你是否在google中搜索了問題的解決辦法?
你是否查看了Java API文檔?
你是否查找過相關書籍?
你是否寫代碼測試過?
如果回答都是”是”的話,而且還沒有找到解決辦法,再問別人不遲。要知道獨立思考的能力對你很重要。要知道程序員的時間是很寶貴的。
1.8 多讀好書
書中自有顏如玉。比爾蓋茨是一個飽讀群書的人。雖然沒有讀完大學,但九歲的時候比爾蓋茨就已經讀完了所有的百科全書,所以他精通天文、歷史、地理等等各類學科,可以說比爾?茨不僅是當今世界上金錢的首富,而且也可以稱得上是知識的巨富。
筆者在給學生上課的時候經常會給他們推薦書籍,到後來學生實在忍無可忍開始抱怨,”天吶,這麼多書到什麼時候才能看完了”,”學軟體開發,感覺上了賊船 “。這時候,我的回答一般是,”別著急,什麼時候帶你們去看看我的書房,到現在每月花在技術書籍上的錢400元,這在軟體開發人員之中還只能夠算是中等的 “,學生當場暈倒。(註:這一部分學生是剛學軟體開發的)
1.9 使用合適的工具
工欲善其事必先利其器。軟體開發包含各種各樣的活動,需求收集分析、建立用例模型、建立分析設計模型、編程實現、調試程序、自動化測試、持續集成等等,沒有工具幫忙可以說是寸步難行。工具可以提高開發效率,使軟體的質量更高BUG更少。組合稱手的武器。到飛花摘葉皆可傷人的境界就很高了,無招勝有招,手中無劍心中有劍這樣的境界幾乎不可企及。
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 學習軟體工程
對小型項目而言,你可能認為軟體工程沒太大的必要。隨著項目的複雜性越來越高,軟體工程的必要性才會體現出來。參見”軟體開發學習路線”小節。
3.2學習要點
確立的學習路線之後,我們還需要總結一下Java的學習要點,這些要點在前文多多少少提到過,只是筆者覺得這些地方特別要注意才對它們進行匯總,不要嫌我婆婆媽媽啊。
3.2.1勤查API文檔
當程序員編寫好某些類,覺得很有成就感,想把它貢獻給各位苦難的同行。這時候你要使用”Javadoc”工具(包含在JDK中)生成標準的Java DOC文檔,供同行使用。J2SE/J2EE/J2ME的DOC文檔是程序員與程序員交流的工具,幾乎人手一份,除了菜鳥之外。J2SE DOC文檔官方下載地址:,你可以到google搜索CHM版本下載。也可以在線查看:。
對待DOC文檔要像毛語錄,早上起床念一遍,吃飯睡覺前念一遍。
當需要某項功能的時候,你應該先查相應的DOC文檔看看有沒有現成的實現,有的話就不必勞神費心了直接用就可以了,找不到的時候才考慮自己實現。使用步驟一般如下:
●找特定的包,包一般根據功能組織。
●找需要使用類,類命名規範的話我們由類的名字可猜出一二。
●選擇構造器,大多數使用類的方式是創建對象。
●選擇你需要的方法。
3.2.2 查書/google-寫代碼測試-查看源代碼-請教別人
當我們遇到問題的時候該如何解決?
這時候不要急著問別人,太簡單的問題,沒經過思考的問題,別人會因此而瞧不起你。可以先找找書,到google中搜一下看看,絕大部分問題基本就解決了。而像”某些類/方法如何使用的問題”,DOC文檔就是答案。對某些知識點有疑惑是,寫代碼測試一下,會給你留下深刻的印象。而有的問題,你可能需要直接看 API的源代碼驗證你的想法。萬不得已才去請教別人。
3.2.3學習開源軟體的設計思想
Java領域有許多源代碼開放的工具、組件、框架,JUnit、ANT、Tomcat、Struts、Spring、Jive論壇、PetStore寵物店等等多如牛毛。這些可是前輩給我們留下的瑰寶呀。入寶山而空手歸,你心甘嗎?對這些工具、框架進行分析,領會其中的設計思想,有朝一日說不定你也能寫一個XXX框架什麼的,風光一把。分析開源軟體其實是你提高技術、提高實戰能力的便捷方法。
3.2.4 規範的重要性
沒有規矩,不成方圓。這裡的規範有兩層含義。第一層含義是技術規範,多到下載JSRXXX規範,多讀規範,這是最權威準確最新的教材。第二層含義是編程規範,如果你使用了大量的獨特演算法,富有個性的變數及方法的命名方式;同時,沒給程序作注釋,以顯示你的編程功底是多麼的深厚。這樣的代碼別人看起來像天書,要理解談何容易,更不用說維護了,必然會被無情地掃入垃圾堆。Java編碼規範到此查看或下載,中文的也有,啊,還要問我在哪,請參考3.2.2節。
3.2.5 不局限於Java
很不幸,很幸運,要學習的東西還有很多。不幸的是因為要學的東西太多且多變,沒時間陪老婆家人或女朋友,導致身心疲憊,嚴重者甚至導致抑鬱症。幸運的是別人要搶你飯碗絕非易事,他們或她們需要付出很多才能達成心愿。
Java不要孤立地去學習,需要綜合學習數據結構、OOP、軟體工程、UML、網路編程、資料庫技術等知識,用橫向縱向的比較聯想的方式去學習會更有效。如學習Java集合的時候找數據結構的書看看;學JDBC的時候複習資料庫技術;採取的依然是”需要的時候再學”的原則。
4.結束語
需要強調的是,學習軟體開發確實有一定的難度,也很辛苦,需要付出很多努力,但千萬不要半途而廢。本文如果能對一直徘徊在Java神殿之外的朋友有所幫助的話,筆者也欣慰了。哈哈,怎麼聽起來老氣橫秋呀?沒辦法,在電腦的長期輻射之下,都快變成小老頭了。最後奉勸各位程序員尤其是MM程序員,完成工作後趕快遠離電腦,據《胡播亂報》報道,電腦輻射會在白皙的皮膚上面點綴一些小黑點,看起來鮮艷無比…… 拖起明天的夢想還得靠自己!
原創文章,作者:FASWV,如若轉載,請註明出處:https://www.506064.com/zh-tw/n/129810.html