...

如何高效的(de)學習技術

2022-01-16

我們相信努力學習一(yī / yì /yí)定會有收獲,但是(shì)方法不(bù)當,既讓人(rén)身心疲憊,也(yě)沒有切實的(de)回報。高中時(shí)代,我的(de)同桌是(shì)個(gè)漂亮女同學。她的(de)物理成績很差,雖然她非常勤奮的(de)學習,但成績總是(shì)不(bù)理想。爲(wéi / wèi)了(le/liǎo)鞏固純潔的(de)同學關系,我親密無間地(dì / de)輔導她的(de)物理,發現她不(bù)知道(dào)題目考什麽。我們的(de)教科書與試題都圍繞着考試大(dà)綱展開,看到(dào)一(yī / yì /yí)道(dào)題,應該先想想它在(zài)考哪些定理和(hé / huò)公式的(de)運用。

不(bù)少朋友每天都閱讀技術文章,但是(shì)第二天就(jiù)忘幹淨了(le/liǎo)。工作中領導和(hé / huò)同事都認可你的(de)溝通和(hé / huò)技術能力,但是(shì)跳槽面試卻屢屢碰壁。面試官問技術方案,明明心裏清楚,用嘴說(shuō)出(chū)來(lái)卻前言不(bù)搭後語。面試官再問底層算法,你說(shuō)看過但是(shì)忘記了(le/liǎo)。他(tā)不(bù)在(zài)乎你看沒看過,答不(bù)上(shàng)就(jiù)是(shì)零分。正如男女相親,男方談吐潇灑才能吸引姑娘。可是(shì)男方緊張了(le/liǎo),平時(shí)挺能說(shuō),關鍵時(shí)候卻支支吾吾,姑娘必然認爲(wéi / wèi)他(tā)不(bù)行。人(rén)生充滿了(le/liǎo)許多考試,有形的(de)和(hé / huò)無形的(de),每次考試的(de)機會隻有一(yī / yì /yí)次。

工作五年十年後,别人(rén)成了(le/liǎo)架構師,自己還在(zài)基層打滾,原因是(shì)什麽?職場上(shàng)無法成功升遷的(de)原因有很多,沒有持續學習、學習效果不(bù)好、無法通過心儀公司的(de)的(de)面試,一(yī / yì /yí)定是(shì)很重要(yào / yāo)的(de)原因。

把自己當成一(yī / yì /yí)台計算機,既有輸入,也(yě)要(yào / yāo)有輸出(chū),用輸出(chū)倒逼輸入

學什麽

基礎與應用

近些年誕生了(le/liǎo)許多新技術,比如最時(shí)髦的(de)AI(目前還在(zài)智障階段),數學基礎是(shì)初中就(jiù)接觸過的(de)概率統計。萬丈高樓從地(dì / de)起,不(bù)要(yào / yāo)被新工具或者中間件迷住雙眼,一(yī / yì /yí)味地(dì / de)追新求快。基礎知識是(shì)所有技術的(de)基石,在(zài)未來(lái)很長的(de)時(shí)間都不(bù)會變化,應該花費足夠的(de)時(shí)間鞏固基礎。

以(yǐ)數據結構和(hé / huò)算法爲(wéi / wèi)例,大(dà)家閱讀一(yī / yì /yí)下Java的(de)BitSet的(de)源碼,裏面有大(dà)量的(de)移位操作,移位運算掌握的(de)好,看這(zhè)份源碼就(jiù)沒問題。Java同步工具類AQS用到(dào)了(le/liǎo)雙向鏈表,鏈表知識不(bù)過關,肯定搞不(bù)懂它的(de)原理。互聯網大(dà)廠都喜歡考算法,爲(wéi / wèi)了(le/liǎo)通過面試也(yě)要(yào / yāo)精通算法。

以(yǐ)Java工程師應該掌握的(de)知識爲(wéi / wèi)例,按重要(yào / yāo)程度排出(chū)六個(gè)梯度:

  • 第一(yī / yì /yí)梯度:計算機組成原理、數據結構和(hé / huò)算法、網絡通信原理、操作系統原理;

  • 第二梯度:Java基礎、JVM内存模型和(hé / huò)GC算法、JVM性能調優、JDK工具、設計模式;

  • 第三梯度:Spring系列、Mybatis、Dubbo等主流框架的(de)運用和(hé / huò)原理;

  • 第四梯度:MySQL(含SQL編程)、Redis、RabbitMQ/RocketMQ/Kafka、ZooKeeper等數據庫或者中間件的(de)運用和(hé / huò)原理;

  • 第五梯度:CAP理論、BASE理論、Paxos和(hé / huò)Raft算法等其他(tā)分布式理論;

  • 第六梯度:容器化、大(dà)數據、AI、區塊鏈等等前沿技術理論。

有同學認爲(wéi / wèi)第五梯度應該在(zài)移到(dào)第一(yī / yì /yí)梯度。其實很多小公司的(de)日活猶如古天樂一(yī / yì /yí)樣平平無奇,離大(dà)型分布式架構還遠得很。學習框架和(hé / huò)中間件的(de)時(shí)候,順手掌握分布式理論,效果更好。

廣度與深度

許多公司的(de)招聘JD沒有設定技術人(rén)員年齡門檻,但是(shì)會加上(shàng)一(yī / yì /yí)句“具備與年齡相當的(de)知識的(de)廣度與深度”。多廣才算廣,多深才算深?這(zhè)是(shì)很主觀的(de)話題,這(zhè)裏不(bù)展開讨論。

如何變得更廣更深呢?突破收入上(shàng)升的(de)瓶頸,發掘自己真正的(de)興趣

大(dà)多數人(rén)隻是(shì)公司的(de)普通職員,收入上(shàng)升的(de)瓶頸就(jiù)是(shì)升職加薪。許多IT公司會對技術人(rén)員有個(gè)評級,如果你的(de)評級不(bù)高,那就(jiù)依照晉級章程努力升級。如果你在(zài)一(yī / yì /yí)個(gè)小公司,收入一(yī / yì /yí)般,發展前景不(bù)明,準備大(dà)廠的(de)面試就(jiù)是(shì)最好的(de)學習過程。在(zài)這(zhè)些過程中,你必然學習更多知識,變得更廣更深。

個(gè)人(rén)興趣是(shì)前進的(de)動力之(zhī)一(yī / yì /yí),許多知名開源項目都源于(yú)作者的(de)興趣。個(gè)人(rén)興趣并不(bù)局限技術領域,可以(yǐ)是(shì)其他(tā)學科。我有個(gè)朋友喜歡玩山地(dì / de)自行車,還給一(yī / yì /yí)些做自行車話題的(de)自媒體投稿。久而(ér)久之(zhī),居然能夠寫一(yī / yì /yí)手好文章了(le/liǎo),我相信他(tā)也(yě)能寫好技術文檔。

哲學

哲學不(bù)是(shì)故作高深的(de)學科,它的(de)現實意義就(jiù)是(shì)解決問題。年輕小夥是(shì)怎麽泡妞的(de)?三天兩頭花不(bù)斷,大(dà)庭廣衆跪求愛。這(zhè)類套路爲(wéi / wèi)什麽總是(shì)能成功呢?禮物滿足女人(rén)的(de)物欲,當衆求愛滿足女人(rén)的(de)虛榮心,投其所好。食堂大(dà)媽打菜的(de)手越來(lái)越抖,辣子(zǐ)雞丁變成辣子(zǐ)辣丁,爲(wéi / wèi)什麽呢?食堂要(yào / yāo)控制成本,直接提價會惹衆怒。

科學上(shàng)的(de)哲學,一(yī / yì /yí)般指研究事物發展的(de)規律,歸納終極的(de)解決方案。軟件行業充滿哲學味道(dào)的(de)作品非常多,比如《人(rén)月神話》。舉個(gè)例子(zǐ),當軟件系統遇到(dào)性能問題,嘗試下面兩種哲學思想提升性能:

  • 空間換時(shí)間:比如引入緩存,消耗額外的(de)存儲提高響應速度。

  • 時(shí)間換空間:比如大(dà)文件的(de)分片處理,分段處理後再彙總結果。

設計穩健高可用的(de)系統,嘗試從三個(gè)方面考慮問題:

  • 存儲:數據會丢失嗎,數據一(yī / yì /yí)緻性怎麽解決。

  • 計算:計算怎麽擴容,應用允許任意增加節點嗎。

  • 傳輸:網絡中斷或擁塞怎麽辦。

從無數的(de)失敗或者成功的(de)經驗中,總結出(chū)高度概括性的(de)方案,讓我們下一(yī / yì /yí)步做的(de)更好。

英語

英語是(shì)極爲(wéi / wèi)重要(yào / yāo)的(de)基礎,學好英語與掌握編程語言一(yī / yì /yí)樣重要(yào / yāo)。且不(bù)說(shuō)外企對英語的(de)要(yào / yāo)求,許多知名博客就(jiù)是(shì)把英文翻譯成中文,充當知識的(de)搬運工。如果英語足夠好,直接閱讀一(yī / yì /yí)手英語資料,避免他(tā)人(rén)翻譯存在(zài)的(de)謬誤。

怎麽學

知識體系

體系化的(de)知識比零散的(de)更容易記憶和(hé / huò)理解,這(zhè)正如一(yī / yì /yí)部好的(de)電視劇,劇情環環相扣才能吸引觀衆。建議大(dà)家使用思維導圖羅列知識點,構建體系結構,如下圖所示:

克服遺忘

高中是(shì)我們知識的(de)巅峰時(shí)刻,每周小考每月大(dà)考,教輔資料堆成山,地(dì / de)獄式的(de)反複操練強化記憶。複習是(shì)對抗遺忘的(de)唯一(yī / yì /yí)辦法。大(dà)腦的(de)遺忘是(shì)有規律的(de),先快後慢。一(yī / yì /yí)天後,學到(dào)的(de)知識隻剩下原來(lái)的(de)25%,甚至更低。随着時(shí)間的(de)推移,遺忘的(de)速度減慢,遺忘的(de)數量也(yě)就(jiù)減少。

每個(gè)人(rén)的(de)遺忘程度都不(bù)一(yī / yì /yí)樣,建議第二天複習前一(yī / yì /yí)天的(de)内容,七天後複習這(zhè)段時(shí)間的(de)所有内容。

碎片時(shí)間

不(bù)少朋友利用碎片時(shí)間學習,比如在(zài)公交上(shàng)看公衆号的(de)推送。其實我們都高估了(le/liǎo)自己的(de)抗幹擾能力,如果處在(zài)嘈雜的(de)環境,注意力容易被打斷,記憶留存度也(yě)很低。碎片時(shí)間适合學習簡單孤立的(de)知識點,比如鏈表的(de)定義與實現。

學習複雜的(de)知識,需要(yào / yāo)大(dà)段的(de)連續時(shí)間。圖書館是(shì)個(gè)好地(dì / de)方,安靜氛圍好。手機放一(yī / yì /yí)邊,不(bù)要(yào / yāo)理會QQ微信,最好閱讀紙質書,泡上(shàng)一(yī / yì /yí)整天。有些城市出(chū)現了(le/liǎo)付費自習室,提供格子(zǐ)間、茶水等等,也(yě)是(shì)非常好的(de)選擇。

用起來(lái)

技術分享

從下面這(zhè)張圖我們可以(yǐ)看到(dào),教授他(tā)人(rén)是(shì)知識留存率最高的(de)方式。

準備PPT和(hé / huò)演講内容,給同事來(lái)一(yī / yì /yí)場技術分享。不(bù)光複習知識,還鍛煉口才。曾經有個(gè)同事說(shuō)話又快又急,口頭禅也(yě)多,比如"對吧、是(shì)不(bù)是(shì)”,别人(rén)經常聽不(bù)清,但是(shì)他(tā)本人(rén)不(bù)以(yǐ)爲(wéi / wèi)然。領導讓他(tā)做了(le/liǎo)幾次技術分享,聽衆的(de)反應可想而(ér)知,他(tā)才徹底認清缺點。

堅持寫技術博客,别在(zài)意你寫的(de)東西在(zài)網上(shàng)已經重複千百遍。當自己動手的(de)時(shí)候,才會意識到(dào)眼高手低。讓文章讀起來(lái)流暢清晰,需要(yào / yāo)嘔心瀝血的(de)删改。寫作是(shì)對大(dà)腦的(de)長期考驗,想不(bù)到(dào)肯定寫不(bù)出(chū),想不(bù)清楚肯定寫不(bù)清楚。

造個(gè)輪子(zǐ)

我們經常說(shuō)不(bù)要(yào / yāo)重複造輪子(zǐ)。爲(wéi / wèi)了(le/liǎo)開發效率,可以(yǐ)不(bù)造輪子(zǐ),但是(shì)必須具備造輪子(zǐ)的(de)能力。建議造一(yī / yì /yí)個(gè)簡單的(de)MQ,你能用到(dào)通信協議、設計模式、隊列等許多知識。在(zài)造輪子(zǐ)的(de)過程中,你會頻繁的(de)翻閱各種手冊或者博客,這(zhè)就(jiù)是(shì)用輸出(chū)倒逼輸入。


來(lái)源:cnblogs