一個學生給我的郵件:
==================================================
金老師:
你好。
我是一名大三生,曾經跟您寫過一封信,在您的指下,我選擇學習java語言,現在正在上學校老師開的一個java培訓班,已經講瞭大概80個課時(每個課時45分鐘),內容已經大概講瞭如下:面向對象,接口,集合,事件處理,GUI,jdbc(順序是憑記憶寫的,非老師講課順序)。今天剛結束jdbc從數據庫中取數據的操作,據老師說,我們的jdbc就到此結束瞭。
跟著老師一路走過來,感覺學到瞭不少東西,但也僅僅還是入門,知識還沒有化為自己的。平常上課跟著老師寫可以寫得出,但脫離瞭老師的點撥與指導,我就不知道從哪裡開始瞭,老師講得各層各塊的關系我有點記不清,比如jdbc,有四步嘛,驅動,連接,取數,輸出,我就知道這麼個大概,中間的具體實現得看瞭老師寫的源代碼才能回憶起來。另外,各個知識點,我還是孤立的,就像今天老師講的從數據庫中取數後如何輸出,我就忘瞭要用到集合。老師一講又想起來瞭。
同班的同學相對來說比我理解得較透徹些,我總結瞭下原因,可能是如下:我平時在非培訓時間不會把所有時間花在java上,我上其它專業課的時候會聽,課餘的話我也會抽出部分時間去看高數之類考研科目,而相比之下,我的同學在課後就將所有時間看java書,上機做練習。所以我現在有點魚與熊掌不可得兼的感慨:我一方面想把java學好,一方面又想準備考研,貌似這不太可能。請問我是不是應放棄考研,全心全意投入java學習中?
另外,平時課後看書是不是特別重要?您給我介紹瞭李剛的《瘋狂java講義》,我已買瞭,在郵寄中,據您說這本書中例子很多,我是不是要先不看作者代碼自己嘗試去實現再進行比較來看該書呢?
還有,平時我也有下張孝祥的視頻在看,感覺受用也蠻大。在此想向您請教下在學習過程中還有哪些方面可以完善的?
======================================
我的回郵:
你所說的將知識點串接起來,其實是我們學習的中心任務,這個任務的達成不是一朝一夕就可以的。古語雲:書讀百遍,其義自見,就表達瞭類似的意思。但時代不一樣瞭,特別是學軟件技術,不能僅看書不動手,不管把書看多少遍還是不行的。
對於軟件技術,不需要死記,但要會查會找。象你說的JDBC,不需要去死記其步驟,準備好一段典型的代碼,放在一個固定地方,需要用到時打開看看就明白瞭,另外,絕大多數示例代碼通過Google都可以找到,何需死記?程序設計課又不是政治課,記得再多,不會靈活用也白搭。建議你建立一個可以方便地查找“代碼示例”的資料庫,而這個資料庫不妨就用JDBC來開發,學以致用。我也編過不少這樣的小程序,比如為瞭考研背英語單詞,我就編瞭一個記單詞的軟件;為瞭寫作方便,我開發瞭一個“個人資料管理中心”的小程序,以樹的形式來分類管理各種資料,這個小工具我一直用到現在,有好多年瞭。我也看到,不少優秀的程序員,都有這個習慣開發一些小工具。
魚和熊掌難以兼得,如果你有考研的打算,我建議你將Java暫時放一放,先應付考研。如果能考上較好的學校,對你的人生之路還是有較大影響的,而你要真喜歡編程,以後大可以編上十幾二十年(我也寫瞭十幾年的程序瞭,因為喜歡,所以現在還在經常寫代碼),又何必急於一時?
李剛的《瘋狂Java講義》,其長處在於例子很多,講解比較詳細,面面俱到,對於初學者比較適合,但知識點很分散,還是很難幫助你將知識點串起來。你真正想形成一張有用的“知識之網”,還得“實踐”+“看書/上網”+“思索/悟”,再次強調一下,這其實是一個長期的過程,人的一輩子都要有當學生的求知態度,不這樣,就會止步不前而落後於時代。
張孝祥的視頻我沒有看過,不做評論,但我從聽到的一些消息中覺得他在這些視頻上面花費瞭相當的心血,就常識而言,某個人隻要認真地投入地做某項工作,那麼,這個人的作品和工作成績,應該不會差的。
通過軟件開發實踐入Java門之後,要註意不要再僅滿足於功能的實現,而應該嘗試著去探索其背後的奧秘,並且要開始努力學習相關的計算機科學理論知識,比如學瞭數據庫,寫瞭幾個程序,就找本《數據庫管理系統》看看,學瞭Socket編程,可以去看看《計算機網絡》,同時,還要關註技術的現狀與進展,比如 Java領域最近又推出瞭哪些新的東西,現在業界在某個領域用的主流工具有哪些等等,這樣才能有提高。
好瞭,就說這麼多吧,祝學習進步。