Java自學之路

  一:學會選擇
 
爲了就業,不少同學參加各種各樣的培訓。
決心做軟件的,大多數人選的是java,或是.net,
也有一些選擇了手機、嵌入式、遊戲、3G、測試等。
  
那麼究竟應該選擇什麼方向呢?
我的意見是,不要太過相信各種培訓機構或是搶手文章的說法(包括我),
當你要走向社會的時候,就不要再把自己當成學生,
不要把自己的將來交給別人,學會運用自己的眼睛去觀察,去了解這個世界。 
 
每個培訓機構都會宣傳自己的好處,並不能說明大的趨勢。
一些新聞文章很有可能是槍手寫的,不必太過相信。
國外背景的教師和課程,未必適合你。
那麼怎麼才能確定自己將來的方向?
如何才能從紛繁複雜、或真或假的數據世界中挖出一條路? 
 
我講一個通過招聘網站的觀察方法。
可以到各種招聘的網站上查詢信息(可以到google上查詢招聘的網站),
例如:
http://www.51job.com  
http://www.chinahr.com  
http://www.zhaopin.com  
以及csdn的招聘頻道等
還有一個網站也不錯,http://www.jobui.com,綜合了各大招聘網站的數據。
  
這些數據都是最真實不摻假的原始數據,你可以每隔一段時間搜索一次,一些規律就會被總結出來了。
比如說我在http://www.jobui.com中搜索java,全國大概提供了3萬個職位。
然後要多翻幾頁,這樣不僅能夠看清楚大概有多少是有效的職位,
而且還可以看清楚用人單位最關心的技能是什麼,這個很重要,決定着你將來要花多少時間和精力在特定的知識點上,
比如說swing,搜了一下,全國只有700個左右的職位,
仔細讀一下,也並非全是有效的職位,花太多時間和精力在這個上面就不值得了,
當然自己感興趣或者爲了研究的話另當別論。
不過如果是爲了快速的就業,把太多時間和精力花在很多職業生涯的前一、二年用不到的知識上就太可惜了。 
 
同時,並非某一個行業的職位數目少,就不能當作一個方向進行選擇,
比如.NET,我搜索到的職位數是1.6萬左右,比java少,是不是就選java了呢?
不一定,因爲java職位雖然多,但是可能競爭者可能也多,
有些方向雖然職位數不多,但是和你競爭這些職位的人數量也少,不見得就不能選擇。
不過,如果某一個方向的職位數目過少,你可就要小心了,選擇這樣的方向風險會非常大,如J2ME。

 

我個人覺得java/J2EE、.net、嵌入式開發是不錯的三個方向。
如果非要在java和.net中選擇的話,我個人是推薦java的,
原因:
1:Java能夠開發linux、unix服務器上的程序
2:JavaEE和.NET在企業應用方面的關注點是差不多的,但是學習了java如果將來想轉到.net上會比較簡單,
幾天的學習然後上手開發應該是問題不大的,但是反之就不行了。 
當然如果有了些經驗之後,你就會發現語言或者平臺不再是技術上的阻礙,
一些原理性的東西學到手,然後再加上項目經驗,使用什麼平臺,反而不是最重要的。
不過如果非要用一種平臺進入企業開發的領域,至少在目前,2007年9月,我推薦java。

完全可以不同意我的觀點,
但是無庸置疑,如果是爲了就業,多到招聘網站閱讀閱讀職位的信息,對你將來的方向和學習是大有益處的。
選擇是最痛苦的,看看《天生購物狂》中的劉青雲就知道了,不過既然無法逃避,就作出自己的選擇吧。
每個人都會受到別人的影響,在作出決定之前,要想盡各種辦法讓自己理性一些。
這樣,你的選擇會離正確的方向更近一些。
 
二:JAVA自學路線圖

有不少的同學發信給我,和我探討java的自學過程應該是什麼樣的,
畢竟有很多人因爲各種各樣的原因不能參加培訓。我試着給出自己的見解,拋磚引玉吧。  
這個路線圖是給那些爲了就業的人準備的,如果只是興趣,不一定照這個走。
這裏只是講了路線圖,關於路線中的各個階段,學到什麼程度,如何學習等,
可以參考後面的JAVA自學之路 七:《路線圖明細》。

首先要學JavaSE,這是無庸置疑的。
與此同時,是的,與此同時,和JavaSE的學習同步,建議大家研究一下數據結構與算法。
在這兒之後,你可以選擇向J2ME、或者Java GUI、Socket編程等方向努力,
但是通過第一篇的辦法,你可以很容易就將這方向過濾掉,
(永遠不要忘了我們是爲了就業)好吧,暫時和它們訣別,還是向着J2EE的方向前進吧。
在JavaSE完成之後,可以試着完成一些小項目,同時關注一下設計模式的內容,
不必強求自己能夠完全掌握各種細節,往前走吧。
掌握一種編程工具,比如說Eclipse。
數據庫,可以選擇使用Oracle或者MySQL開始。
JDBC,用Java連接數據庫。
可以選擇在這個地方切入Hibernate,也可以選擇在Struts之後。  
HTML CSS javascript,這些東西是做web項目必需的內容。
Servlet JSP,服務器端必需。
XML AJAX,新的流行趨勢不能不瞭解。  
作一些小項目吧。比如BBS、留言系統、學籍管理、商城等等,
隨便着一些業務邏輯比較簡單的來做一做。
Struts,MVC的典型應用
Hibernate,OR Mapping的典範之作。
Spring IOC + AOP, 面向對象 + 面向切面,完善的旅程。
把以前自己的小項目加入Struts、Spring、Hibernate的元素吧。
去研究各種商業項目的業務邏輯吧,才能在你的簡歷中加入濃重的一筆。
EJB3.0,java在走了很多彎路後的迴歸之作,值得研究。
SOA,業界鐵定的未來趨勢,要緊緊跟隨。
在後面,我會告訴你每一步的學習方法和學習重點。

 三:要動手

無論如何,請堅持不懈的動手實驗!
學習Java要動手,僅僅是看和聽是不能夠學好編程的。
總有同學來信問我們這樣的問題,說:"老師我看了視頻了,可是怎麼一動手就沒有任何思路呢?"
對此,我一般都會說不要着急,
如果你只是看了視頻就想行雲流水的話,那老師這些年的鍛鍊真是白費了,
這麼多年的苦練才能略有些行雲流水的感覺,你一朝一夕就想自己能夠達到,不是太奢侈了嗎。
作爲編程的過來人想一下,當年自己學編程的時候是什麼時候有思路的呢?
至少也是照貓畫虎畫了一段時間之後吧,我本人是在某一個領域畫虎畫了上萬行代碼的時候才慢慢有自己思路的。
就像寫作文,要有自己思路總是一般來說要經過幾個階段,首先學習詞彙,然後學習造句,然後大量閱讀別人的文章,
自己模仿着寫一些,逐漸的經驗積累,才能形成自己的思路。
學編程,恐怕也得慢慢的來吧,只是看一看、聽一聽視頻,是不足以學好編程的。
所以,動手吧,跟着做,一行一行的跟着敲,一個項目敲完了,比如坦克,
再試着加一些自己的功能,按照自己的思路敲一些代碼,收穫遠比干聽大的多。
如果遇到,暫時對於一些思路不能理解的同學,我一般都會勸告說,動手寫,先寫代碼,量變會引起質變的。
而這種質變的確發生過不少次。
提醒一句,要理解代碼思路之後再跟着敲 ,揹着敲,千萬不要左邊擺着別人的程序,右邊自己一個一個子母的寫,這就不再是程序員了,成了打字員了。

紙上得來終覺淺,所以:  
別問那麼多,別想那麼多,動手寫吧。 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章