那些方法學(xué)java效果好?我不管你是一個(gè)Java開發(fā)的新手,還是一個(gè)有著多年經(jīng)驗(yàn)的老手,在學(xué)習(xí)新技術(shù)的時(shí)候,都要經(jīng)歷這樣的過(guò)程:
  1. 學(xué)習(xí)基礎(chǔ)的理論知識(shí),也就是對(duì)學(xué)習(xí)的內(nèi)容要有一個(gè)基本的概念;是什么?能解決什么問(wèn)題??jī)?yōu)缺點(diǎn)是什么?

  2. 照著別人的代碼敲,或者把別人的代碼下載下來(lái)后運(yùn)行起來(lái),并通過(guò)Debug模式,一步一步地跟蹤代碼,加深對(duì)理論的理解;

  3. 等熟練了以后,再根據(jù)自己的理解,把代碼敲出來(lái);

  4. 當(dāng)遇到問(wèn)題的時(shí)候,反復(fù)地去做1/2/3步,不斷加深理解,迭代完善自己的代碼;

  5. 這個(gè)時(shí)候,對(duì)于【是什么?】【能解決什么問(wèn)題?】【優(yōu)缺點(diǎn)是什么?】這些問(wèn)題,應(yīng)該理解的很透徹了。

學(xué)java

比敲代碼更佳的學(xué)習(xí)途徑是什么?

  • 我們都知道,在學(xué)習(xí)程序開發(fā)的過(guò)程中,多敲代碼非常重要;看書、看教學(xué)視頻、聽講座這些都是被動(dòng)學(xué)習(xí),通常被動(dòng)學(xué)習(xí)最終留在我們大腦中的知識(shí)比較少,大部分都會(huì)被慢慢遺忘掉;

  • 敲代碼屬于主動(dòng)學(xué)習(xí),效果會(huì)比以上的途徑好很多;

  • 那么有沒(méi)有比敲代碼更好的學(xué)些方法呢?當(dāng)然有!那就是寫書、錄制教學(xué)視頻、做講座;這些看起來(lái)都是技術(shù)輸出,實(shí)際上也算作主動(dòng)學(xué)習(xí);當(dāng)你的技術(shù)能力達(dá)到了可以做“輸出”的水平時(shí),說(shuō)明你對(duì)其細(xì)節(jié)已經(jīng)了解地非常透徹了;

學(xué)java

學(xué)習(xí)程序開發(fā)如何找資料

十多年前我剛開始工作的時(shí)候,那時(shí)候網(wǎng)上資料比較少;現(xiàn)在學(xué)習(xí)軟件開發(fā),網(wǎng)上可以找到大把的資料,但是有時(shí)候資料太多也是個(gè)負(fù)擔(dān),因?yàn)槲覀冃枰獜闹泻Y選出對(duì)我們有用的資料。關(guān)于如何挑選合適我們的資料,我提幾個(gè)小建議:

  • 首先,建議大家在學(xué)習(xí)的時(shí)候,最好是查看最原始的資料,而不是被人消化理解過(guò)的“二手資料”;比如你要學(xué)習(xí)Spring Boot的話,最好的資料就是官網(wǎng)的文檔,其次才是買一本中文版Spring Boot的書。

  • 第一手的資料大部分都是英文的,不要覺得自己的英文不好看不懂英文文檔,【讀懂英文文檔】,這也是個(gè)學(xué)習(xí)的過(guò)程;

  • 枯燥的知識(shí)都是大家不感興趣的知識(shí),因?yàn)檫@些知識(shí)我們?cè)趯W(xué)習(xí)過(guò)程中看不到學(xué)習(xí)效果,不知道學(xué)完了之后有什么用;比如我們學(xué)習(xí)TCP/IP協(xié)議,并不知道它對(duì)我們寫代碼有什么用,因此學(xué)習(xí)起來(lái)感覺枯燥;不過(guò)這些枯燥的知識(shí)通常都是我們所說(shuō)的基礎(chǔ)知識(shí),你為什么感覺新的技術(shù)學(xué)習(xí)時(shí)間長(zhǎng),技術(shù)提高慢,就是因?yàn)檫@些基礎(chǔ)知識(shí)不扎實(shí);這時(shí)候,先去找使用場(chǎng)景,找到實(shí)際使用的地方,再回來(lái)學(xué)習(xí)理論;帶著問(wèn)題去學(xué)習(xí),效果更好;如果有資料能把枯燥的知識(shí)用生動(dòng)的例子講解出來(lái),盡管它不是“原始資料”,但是對(duì)于我們的幫助也是很大的;我剛工作的時(shí)候看過(guò)一本書《大話設(shè)計(jì)模式》,讓當(dāng)時(shí)的我受益匪淺。

  • 利用碎片化時(shí)間學(xué)習(xí)雖然值得稱贊,但是更鼓勵(lì)抽出完整的時(shí)間去學(xué)習(xí),最好關(guān)閉QQ、微信等一切通訊軟件,避免被打擾;

  • 把學(xué)習(xí)的知識(shí)通過(guò)筆記、博客等方式記錄下來(lái);

  • 對(duì)于某些知識(shí),如果能“講出來(lái)”,那么就需要把這些知識(shí)了解的非常透徹;這也是我現(xiàn)在做技術(shù)分享的主要原因之一。