你們好,我是 Guide哥~java
個人學校是荊州一所雙非一本。git
整個大一,我都沒有怎麼認真學習編程,天天就是出去玩,還有參加各類社團活動。程序員
在大二上學期末,最終肯定了本身之後要走的技術方向是走 Java 後端。因而,我就開始制定學習計劃,開始了本身的 Java 後端領域的打怪升級之路。github
到了大三,我基本把 Java 後端領域一些必備的技術都給過了一遍,還用本身學的東西作了兩個實戰項目。整個過程一共花了我一個暑假+半個學期,天天的學習強度基本都在 10 個小時以上。算法
這篇文章就簡單聊聊:我是怎麼學習編程的?apache
👍推薦2021最新實戰項目源碼下載編程
通常來講,有了一個具體的學習路線,知道學習什麼以後,咱們一般有下面幾個方向來學習:後端
初學編程的小夥伴儘可能多看視頻,由於,視頻教程比較容易理解。瀏覽器
不過,對於經驗已經比較豐富的小夥伴來講,視頻教程相比於文檔教程學習起來會更慢一些。markdown
像慕課網和嗶哩嗶哩上面有挺多學習視頻能夠看,只直接在上面搜索關鍵詞(好比 Java、MySQL)就能夠了。
提個醒哈!在嗶哩嗶哩上學習的時候,不要學一會就跑到別的分區去了,有點頂不住啊!
網上的博客大多沒有體系,推薦你在解決某一知識點或者問題的時候能夠在網上找一些相關的博客看。
就好比我在學習消息隊列 Pulsar 的時候,先把Pulsar 官方文檔看了一遍。而後,本身在網上找了一些相關的文章來深刻學習。
Java 領域比較成體系的博客,推薦 JavaGuide(項目地址: github.com/Snailclimb/…
除非是一些國產項目的官方文檔提供了中文版本,不然大機率是英文的。
另外,官方文檔介紹的每每也比較粗糙,不太適合初學者做爲學習資料。
不過,官方文檔咱們必定是要看的。經過官方文檔你才能知道你學習的技術最新的技術動態,才能知道這個技術有哪些模塊須要學習,才能知道這個技術具體能夠幫你解決什麼問題。
好比下面是 Spring 的官網,經過網站首頁你就能夠大概知道 Spring 能夠幫助你:
書籍的內容更成體系,更系統。不過,書籍存在時效問題。你能夠經過一些手段瞭解技術最新動向:
大部分優秀的技術書籍都是國外的,幾乎都是英文,而且,大部分技術的官方文檔也都是英文的。
因此,提升本身的英文閱讀能力很重要。英文閱讀能力暫時比較差的也沒關係,有道翻譯和谷歌翻譯就是你最好的老師。若是是使用 Chrome 瀏覽器的話,我還推薦你安裝一個 Mate Translate 插件。 這個插件對於網頁閱讀英文文檔太友好了,能夠一站式翻譯您的網頁以及標記的文字段落。
不管是看視頻仍是看書,最好都要跟着一塊兒練,記錄一些關鍵的內容。
另外,若是你是看視頻學習的話,最好能夠邊看視頻邊找一本相關的書籍閱讀。
學習過程當中沒弄懂的知識點必定要儘快解決。如何解決?首選百度/Google,經過搜索引擎解決不了的話就找身邊的朋友或者網上認識的一些人。
另外,必定要進行項目實戰!不少人這時候就會問沒有實際項目讓我作怎麼辦?我以爲能夠經過下面這幾種方式:
作項目不光要作,還要改進,改善。另外,若是你的老師有相關 Java 後臺項目的話,你也能夠主動申請參與進來。
必定要學會分配本身時間,要學的東西不少,真的不少,搞清楚哪些東西是重點,哪些東西僅僅瞭解就夠了。必定不要把精力都花在了學各類框架上,算法和數據結構真的很重要!
你或許也發現了。不少成績特別特別優異的同窗,他們的編程能力其實並很差。在大學的時候,那些編程能力最強的每每是那些成績比較通常的。
爲何會這樣呢?
我以爲主要是一個思惟的轉變問題。不少人學習編程的時候,老是想着我要把這個 API 記下來,把這個庫的用法記下來。這樣學習,致使的結果只有一個那就是你會很難受!由於,這些根本不是要死記硬背的東西啊!真還當這是上課考試啊!你要從如何用你學的東西來解決實際編程問題出發,站在作一個實際的項目的角度來學習。
拿我本身來講:我平時也會寫 Python,基本就是本身看着官方文檔或者一些書籍的教的語法跟着寫。若是哪一個地方不會了,我就去查一下。
不看優秀的代碼,你寫的代碼質量很難提升。
雖然要多看優秀的代碼,可是也不要被 「最佳實踐」 所束縛,不少時候實際是根本不存在適用於任何場景的「最佳實踐」,沒有銀彈。
有哪些優秀的代碼值得學習呢?
拿 Java 來講,不知道閱讀什麼源碼的話,能夠先從 JDK 的幾個經常使用集合看起。另外,我比較推薦看 Dubbo 的,由於感受會稍微相對容易一點,模塊劃分清晰,註釋也比較詳細。搞清楚了 RPC 的基本的原理,知道如何本身實現一個 RPC 框架以後,看起來就沒那麼吃力了。
另外,隨便一個框架的源碼都 10w+行了,都看一遍是不可能的。要挑選比較重要的地方看,就好比看 Spring 源碼的話你必定要看 IoC 和 AOP,要知道一個 Spring Bean 是如何一步一步被建立出來的。你要看 Spring Boot 源碼的話就要知道 Spring Boot 的啓動機制是啥,Spring Boot 是如何實現自動配置的。
學習理論知識的時候,咱們能夠多花點時間整理筆記。
可是,在學習框架使用的時候,就沒有太大必要花大量時間的整理作筆記了。
你徹底能夠隨時查文檔,記住關鍵詞便可!好比 Spring Boot 你不知道如何接受 Query Param 的話,你直接搜 Spring Boot Query Param 便可!
再好比你不會使用 Redis ,你作的 Spring Boot 項目須要用到的話,你直接搜「Spring Boot+ Redis」就出來了各類詳細的教程。
你要作的就是把經常使用的東西串聯起來,知道有這個東西就好。根據本身的實際能力,再對底層的東西進行學習就好。
更多編程好習慣,請看:《成爲一個不那麼差的程序員》 。
我是 Guide哥,擁抱開源,喜歡烹飪。Github 接近 10w 點讚的開源項目 JavaGuide 的做者。將來幾年,但願持續完善 JavaGuide,爭取可以幫助更多學習 Java 的小夥伴!共勉!凎!點擊查看個人2020年工做彙報!
原創不易,歡迎點贊分享。我們下期再會!