万年自学党聊聊如何选择编程学习资源?
大家好,我是魚皮。
昨天在某乎看到一個問題:“ 準備自學Java,但是B站有兩版視頻,應該看哪個?”
如今,編程學習資源越來越多,很多想學編程的朋友都會遇到類似的資源選擇問題。對于初學者而言,選擇合適的編程資源尤為重要,否則就容易被勸退。
作為一名萬年沉迷自學黨,結合自己大學的經歷,分享下我選擇學習資源的方法。
主要包括兩個方面:
選擇何種類型的資源?
同類資源如何對比?
資源類型
學習資源類型有很多,比如書籍、電子書、在線網站、在線文檔、視頻、講義等等。
我認為選擇學習資源的要點是:以能學下去為前提,保證學習效率的最大化。
因此,我會 在不同的階段選擇不同類型的資源。
早在高考結束時,我就讀過一本 C 語言經典書籍《C Primer Plus》,強行讀了幾十頁后,我就被大量的術語和理論勸退了,這本書對我而言,為時過早。
因此,剛剛步入大學,初學編程時,相對于枯燥的課本教材,我會選擇比較輕松、能幫助我上手和培養興趣的資源。前端和 Python 對新手還是比較友好的,因此除了學校教的 C 語言外,我主動去學習前端。在學習前端時,我沒有選擇看書,而是先通過一個 在線實戰、敲代碼闖關的網站學習基礎語法。
這里也給大家推薦一些在線練習網站:
前端:
入門編程 & 自學前端必備網站!
Java:
超有趣的 Java 自學網站!
Python:
高效交互式在線編程學習
算法應用:
打怪升級,在線練習編程的神器!
當然,還有很多,大家可以先到編程導航(https://www.code-nav.cn)上找找看,后面以推文的形式慢慢給大家推薦~
通過在線練習網站,幫助我快速了解了一門編程語言,培養了我的興趣,并能夠直接寫出一些入門級代碼。在這之后,就不要再依賴這些網站了,目前沒有任何一個網站能幫助你從入門到精通!我會傾向于選擇 閱讀一本經典書籍 來鞏固這門編程語言的基礎,比如 Java 我選擇了《Java 核心技術卷 1》,這本書排版優雅,內容殷實,總之就是好!
當然,不是所有人都喜歡閱讀,我有事也會覺得看書比較無聊。如果看書看不下去了,可以到網上看一些視頻課程入門,但看完視頻后,一定要倒過來閱讀經典書籍,躲不掉的。基礎都不牢固,就強行去學開發框架,一定會犯很多低級錯誤,踩很多坑。
追求速成?不存在的,哪有那么好的事兒,欠下的這些打基礎的時間,都會在日后以 bug 的形式加倍奉還!
那怎么算是打好基礎了呢?
沒有一個明確的邊界,總之就是你能把書中或視頻中提到的知識理解并能寫出代碼實際應用,就 ok 了。比如學習面向對象的繼承時,你不能只知道繼承的語法,還要知道繼承的好處,以及在什么情況下應該使用繼承。能用學到的知識去解決問題了,就算過關~
打好編程語言基礎后,我已經可以編寫一些簡單的軟件了,下一步就是提升開發的效率,學習企業級開發框架。我會選擇看一些 視頻教程 來學習主流開發框架,因為學習框架一定要先會用,再去理解和深挖它的原理和工作機制,網上的視頻相對于書本來說,會更有趣一些。當然也不是只看視頻,還要跟著老師的節奏敲代碼、多練習。一個系列的視頻看完后,就 一定要親自做出個項目,否則跟沒看一樣,紙上談兵,一看就會,一寫就廢。
當我學會了一門編程語言對應的開發框架后,我會到網上找一些簡單的 開源項目,閱讀他人的代碼,跟著項目代碼進行練習,學習他人的寫法。想學好編程,除了多敲代碼外,還要多閱讀他人的代碼,否則很多代碼規范,或者一些小技巧、騷操作你都 get 不到。而且一旦你不接觸別人的代碼,只按照當初的視頻教程去寫,假如培訓機構的哪個寫法不規范,可能你會被誤導一輩子!
**別笑,這就是很多同學的真實寫照!**問他為什么寫這么爛的代碼,他說:“我看別人視頻里就是這么寫的呀!”
隨著你的編程經驗不斷積累、能力逐漸提高,你自然會去接觸一些更專業、更規范、更底層的知識。此時學習的最好方式就是 閱讀技術書籍。尤其是大公司,面試時一定會問到底層知識,所以一定要徹底地、系統地學習一門技術,就拿 Java 的虛擬機 JVM 來說,要去了解他的設計思路、實現原理、性能調優等。優秀的程序員不僅要能寫出代碼,還要能寫出 好代碼(高可用、高性能、高并發、可擴展、可維護、規范等),而這就需要大量的理論知識儲備和實踐經驗。
雖然都說 “面試造火箭,工作擰螺絲”,但是大廠對人才的需求 不是看你的現在,而是看你的未來,能否去承擔更大、更具挑戰和價值的任務。
隨著你的閱讀量越來越大,知識面越來越廣,你會發現學習新知識比以前輕松了不少,這時最有效的學習新技術的方法就是閱讀 官方文檔。因為官方文檔一定是所有資源中 最新、最專業、最全面 的,其他所有的學習資源都是建立在官方文檔的基礎上的。與其道聽途說,為什么不自己一探究竟呢?這也是很多專業的程序員喜歡閱讀文檔的原因。
當然,除了閱讀官方文檔外,還有更猛的、更無情的方式,直接看源碼!在源代碼面前,沒有任何秘密可言。
Talk is cheap,show me the code!
資源對比
上面講了我在不同階段是如何選擇學習資源類別的,下面再聊聊同類資源面前,如何對比?
我會重點考慮以下因素:
1. 資源時效
即書籍的出版時間,或視頻、文章的創作時間。
編程技術的發展非常迅猛,不信你看 Java,半年一個小版本、三年一個大版本;再看 Elasticsearch,四年不到,版本從 1.x 干到了 7.x!
所以一定要選擇比較新、未過時的資源。經典理論、基礎知識、編程語言的視頻時效還長一點,內容基本不會有太大的變動,幾年前的也都能看。但是如果要學編程框架或者類庫,一定要看近 2 年內的,有新的就盡量看新的,比如學習 Java 的 SpringBoot 框架,要看 2.x 版本而不看 1.x 的。否則就會像我大一暑假一樣,傻傻的看了不少已經被淘汰的框架用法,按照書上敲代碼怎么都運行不了!
2. 作者或機構
看書時,我會盡量選擇技術圈內比較知名的大佬寫的書。
倒也不是名人效應,要知道,程序員們都覺得自己寫的代碼最牛逼,所以,能在 IT 圈兒獲得認可的大佬,一定在技術上有很大的影響力,創作也會更專業!
對于培訓機構的網絡課程,我覺得比起機構的名聲,更重要的是老師。如果某位老師的學員反饋還不錯、認可度高,而且聲音、講課方式等也讓你感到舒適,那么可以試著跟一位老師長期學習。
比如我早期還跟著一位人美聲甜的小姐姐學 C++ 來著 😊!
3. 資源內容
現在人人都說自己的文章、自家的課程是最牛逼的,大家也千萬不要信。
在選擇資源時,我會先看一遍目錄,了解個課程大概,假如說很多知識你都已經會了,也許就不需要再跟著這份資源學習。
比較重要的一點是,要和同類的資源做對比。
就像本文開頭提到的問題,如何在兩個系列視頻課中做出選擇呢?我會掃一遍兩套視頻的目錄,了解視頻大致的內容,對自己能學的知識有個預期,再做決定。
4. 目標匹配度
一千個人有一千個哈姆雷特,每個人對同一份資源的評價也會褒貶不一,所以要選擇相對適合自己的課程。
就拿上一點提到的 資源內容 舉例,我通常會選擇目錄相對更全面、覆蓋知識點更多的課程,生怕錯過任何一個小細節,當然遇到了已經熟悉的知識點也可以快速跳過。反之,如果有同學時間緊張,追求速成,可以反其道而行之,選擇一些小而精的課程。
5. 資源質量
比如書籍和文章的排版、視頻的清晰度、語音設備有無雜音等等,這些都是最基本的要求。在學習的同時,也要注意保護好我們的視力和聽力哦~
6. 配套資源
優秀的書籍和視頻課程都會配套一些學習資源,比如代碼練習、習題答案、講義、筆記等。利用好這些資源能幫助我們更高效地學習,不容小覷!很多培訓機構的網絡課程也都比較貼心,這些配套資源基本都是免費的。
7. 資源認可度
選擇學習資源就像是購物,建議多了解下他人對該資源的看法。書籍的話可以參考豆瓣評分,視頻的話可以看播放量、收藏數、點贊數、好評率、一些網友評論等。
但也存在問題,現在是流量為王,網上刷數據、刷評論的太多了,所以也不要被數據遮蔽了雙眼。建議在選擇學習資源時,多去問問身邊同學,聽聽他們的真實意見,比如:“你覺得這個課怎么樣?大概多久能看完?看完后能學到哪個程度?有哪些章節不需要看么?” 等等。
也建議大家養成好的習慣,把你認為不錯的資源保存下來,不僅能幫助自己復習,還能分享給更多同學~
(上傳到編程導航上也是個不錯的選擇哦)
如果以上幾點還不足以幫助你選擇資源的話,可以先分別 試看一部分內容,再做決定也不遲~
直到最后,我也不會對開頭那個某乎的問題給出明確的答案,因為這兩套資源反饋都還不錯,可能分別更適合部分朋友,沒必要非得區分個優劣(而且這兩家我都惹不起)。看了些其他同學的回答,也基本是保持中立吧~
授人以魚不如授人以漁,結合魚皮分享的一些資源選擇的要點,我相信聰明的同學都會有自己的選擇了!
創作挑戰賽新人創作獎勵來咯,堅持創作打卡瓜分現金大獎總結
以上是生活随笔為你收集整理的万年自学党聊聊如何选择编程学习资源?的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 8,hibernate的集合
- 下一篇: 在车上偶遇一位阿里大佬