做爲個人的第一門語言,學習Java時是什麼感覺?

2018年新年剛過,就迷茫了,Java學不下去了,不知道從哪裏學了。 前端

那麼多細節的東西,我根本記不住,看完就忘。編程

剛開始學習的時候熱情萬丈,持續不了幾天就慢慢退去。 小程序

做爲技術書籍或者視頻,講解一門語言的時候都是從最底層開始講解, 底層的基礎有哪些呢? 數組

首先是整個Hello World, 讓咱們對這門語言先混個臉熟,知道程序的基本結構,順帶着還會說一下注釋是什麼樣子。瀏覽器

而後就會進入數據類型,什麼int , float ,double ,char,他們都是幾個字節啊? 取值範圍是多少? Unicode是怎麼回事? 哪些數值之間能夠自動轉換?哪些須要強制轉型?細節不少很煩人。 網絡

接下來就是運算符,加減乘除,與或非,大於等於小於,自增自減,優先級等等。 多線程

對Java來講,有可能還會單獨把String 列舉出來說解,這又會涉及到各類各樣、亂七八糟的輸出格式。併發

不論是看視頻仍是看書,或者視頻+書, 我估計大部分人都能耐着性子學到這裏,畢竟學習的熱情還在。 框架

接着流程控制就會登場,if else, while, for , do while, switch ... 看完了這些,終於能夠寫一點小程序了。好比說輸出乘法口訣表,猜數遊戲,再好比說從控制檯輸入一個學生成績,而後判斷是優/良/差...... 學習

對了,還有數組,一維數組,二維數組......

若是你是利用業餘時間自學,學到這裏估計一週甚至兩週都過去了。

學得快的有可能進入到面向對象編程,封裝、繼承、多態,搞清楚怎麼建立對象的, private,protected,public ,default的區別(不少書或視頻還會貼心地總結一個表格)。弄明白父類子類之間的關係,簡約而不簡單的多態--雖然還不能確切知道它有什麼用處。

對於Java,還會提到接口和內部類,equals, hashcode,toString等方法,自動拆箱和裝箱、枚舉。

初學編程的人學到這裏,估計就會懷疑人生了:這究竟是什麼鬼?!我學了這麼多,到底有什麼用?我好像仍是不能寫個網站/開發個App/寫個遊戲.... 還有,我以前學的東西好像忘了不少啊?!

擡頭瞧瞧,前面還有什麼集合框架、線程、反射、IO、泛型、網絡等一座座高山,這還只是基礎的Java SE,低頭看看,本身剛剛趟過幾條小河,頓時熱情盡失,放棄吧!

不知道在培訓班學習的同窗是什麼感覺,成天都在一個教室中面對這些「無聊」的細節,滋味也不大好受吧。

只有那些自制力強的同窗才能突破Java SE的層層封堵,繼續前行,進入到下一戰場。

我常常說軟件編程是個處理細節的行業,學習的過程是個螺旋上升的過程,在學習過程當中不可能迅速地把全部的東西都掌握,須要反覆回頭看,查缺補漏。

話雖這麼說,可是初次學習編程,會發現細節太多,不知道學了後有什麼用,讓人深感挫敗。

相比而言,前端彷佛好一點,學習的時候是所見即所得,馬上在瀏覽器中看到效果,很直觀,頗有成就感。
我以爲 學習的時候能夠輕裝上陣,抓住主幹,不糾纏細節,快速推動到能夠開始真正的項目編程(例如Web系統,Android App)的地步,這些項目不用特別複雜,簡單的小系統就能夠。

經過作項目,可以看到全局,明白本身所學知識的實際應用,還能夠看到實際運轉的系統,會得到成就感,這是個很重要的正反饋,可以激勵你繼續學習下去,不至於從入門到放棄。

在作項目的過程當中,因爲掌握得不全面,會磕磕碰碰,須要頻繁地查資料,查漏補缺,進展會比較緩慢,可是有個目標在前邊招手,不至於讓你迷茫。

當你的代碼寫得多了,經常使用的API天然記住了,根本不會忘。

那所謂的Java SE的主幹是哪些呢? 我這裏列舉下我我的認爲編程中最經常使用的一些功能點,實際項目須要的最小集合可能比這個大,可是應該不會比這個更小了。

數據類型: int , boolean , String。

流程控制: if else, for , while。

集合框架: List ,ArrayList, HashMap。

面向對象:類的定義,理解封裝、繼承、多態。

泛型:理解爲何有泛型,基本的用法

線程:可以本身寫簡單的多線程併發程序,理解加鎖, 線程的狀態轉換。

IO : 可以本身寫程序讀取XML文件和屬性文件。

反射: 可以經過反射方式讀取類的字段、方法、執行一個方法。

相關文章
相關標籤/搜索