-
1 # 小越兒254
-
2 # 悟寶tips
我覺得學習程式設計最重要的是自覺、努力和興趣。作為一個非科班的學生,我為了學習程式設計,不斷收集各種學習資料、學習方法。剛開始的時候我不斷去逛知乎、csdn等這些網站學習別人學習程式設計的經驗。開始學著他們的樣子學習,然後我就發現學程式設計最好的工具就是網課,一個好的網課能讓你快速入門,你只要跟著網課上的老師一起學習,練習小專案,你能很快掌握要領。當然一邊看網課也不能忘記做筆記,閒下來的時候也能溫習溫習自己的筆記。雖然網上一直說培訓機構不好,但是網上那些流傳出來的培訓的影片卻能幫我們大致掌握知識點,只要我們看完後加深學習,一定進步很快。
除此之外,我們要不懂就百度,遇到不懂的問題,一定要多靠自己百度解決,前人已經不斷摸索出了很多知識,你只有不斷吸收他們的知識,你才可以更加熟悉程式設計,才能進步。
對了,在這裡安利一個筆記軟體:有道雲筆記。真的很有用,做筆記十分方便,而且手機和電腦都能同步用。
學習程式設計最重要的還是努力,不能三天打魚兩天曬網,只有不斷堅持打程式碼,不斷學習,不斷看網課,不斷看書,你才能進步。想當初努力寫出100行程式碼就已經很高興了,但是現在都可以一個人寫個上萬行程式碼的專案了。所以只要努力,就能不斷髮現程式設計吸引人的地方。
不斷培養對程式設計的感情也能讓你加快學習效率,興趣是最好的老師,只有你愛上程式設計,你才有動力去發現他的美,你才有遇難而上的決心。
-
3 # EmacserVimer
簡略翻譯一篇《Clojure for the Brave and True》作者 Daniel Higginbotham 寫於2017年4月16日的部落格吧,這篇文章就是講的“如何高效地學習程式語言”。原文為《Techniques for Efficiently Learning Programming Languages》,大覺得看原文更好的,可以去查詢閱讀。
學習程式語言是一種技能:做好了你就能體驗到多巴胺給你的快感,做不好那麼就是接二連三的沮喪感以及想要放棄的念頭。
不斷考驗自己、戰勝能力錯覺其實最壞的學習方式就是不斷地重讀,這會讓你產生你理解了所涵蓋主題,因為熟能生巧能讓你看起來毫不費力的理解這個主題,但研究人員將這個稱之為能力錯覺。
更好的方法是不斷測試自己,不要重讀函式、類、物件到底是什麼,而是不斷要求自己去定義這些概念,或者說在一個簡短的程式裡面嘗試著去實踐他們,強迫自己以某種方式去真正展示自己的理解。或許這個過程是痛苦的,但是這對於長期記憶是非常有效果的。每次閱讀材料之前試著去測試一下自己,比如在開始新一章學習之前嘗試著去練習,這其實是很好的輔助記憶。
下面有一些具體的方法:
閱讀之前試著去猜想接下來你要學習什麼,並且寫下來。
閱讀之前先嚐試做練習。
不斷地練習,即使是最難的練習,可以放棄一些練習,但是你首先你必須嘗試一遍。
閱讀一個簡短的程式並且嘗試自己不看原始碼的情況下去重寫,並且嘗試去最佳化他。
物件、類、方法、或者高階函式之類的新概念,學習之後一定要嘗試著編寫程式碼實現。
學會去說明你建立圖表的概念,並且看它們是如何關聯的。
把你剛剛學到的知識嘗試著寫成部落格。
嘗試著向一個非技術人員解釋你的技術概念。
總結起來就是多做實踐,並且嘗試著讓你的實踐得到最佳化,得到理解,這樣你成長起來也就更快。
學會發散自己的情緒、分散思維如果你被一個問題困住了,或者遇到了一些你不理解的地方,你也許該嘗試著去散散步、或者去衝個涼,儘可能去分散你的注意力,先做一些其他事情,這也許是違背常理的,但其實這是非常有價值的。
有時候太過於執拗也許會禁錮你的思想,分散注意力,我們的大腦就會無意識的探索並連線我們的大部分經歷。
這就跟看地圖一樣,你一直盯著一個地方看,不不知不覺你已經自己禁錮住了,即使你看再多遍也會沒有效率,但是如果你試著轉移注意力,深呼吸、無所事事的看一下,也許再次看地圖的時候,你會豁然開朗的發現你已經找到你的答案了。
這就是為什麼淋浴的時候容易靈光乍現的原理,我個人而言,我被什麼問題難住了,我就會洗個澡,而且非常有效,這也是我保持乾淨的原因。
不要浪費時間沮喪沮喪往往能夠讓我們做一些非常愚蠢的實踐,比如重新編譯一個程式或者重新整理瀏覽器頁面,抱著希望這一次他會發生奇蹟的僥倖。
一旦意識到你的沮喪,就退一步,找到問題在哪裡,如果說你已經完成了一些程式碼,直接向別人請教你所期望的結果是怎麼樣的,並且嘗試對於意外行為原因科學的提出假設,並且嘗試著去驗證你的假設,如果再試一次,還是找不到解決辦法,請把這個問題放在一邊,以後再回來解決。
我曾經無數次因為看似無法解決的問題而把電腦扔在一邊,解決第二天的時候,一個顯而易見的解決方案就躍入我的腦海,而這種事情上週剛剛發生過。
確定你正在處理程式語言的那個方面在我看來,當你學習一門程式語言時,你實際上在學習四件事情。
如何編寫程式碼:語法、語義、以及資源管理。
該程式語言的正規化:面對象、函式、邏輯等等。
工件體系:構建、執行、以及如何使用庫。
工具:編輯器、編譯器、偵錯程式、以及聯結器。
一個完全不懂程式設計的人,一開始可能會嘗試構建iOS程式,他們試圖讓自己的應用在朋友的手機上執行,結果看到的卻是開發證書之類的資訊,這就屬於工件體系的一部分,不過不懂程式碼的人,會覺得這是如何編寫程式碼的問題。當問題與程式碼無關時,他們可能會檢視為解決問題而編寫的每一行程式碼。
明確目的、外部模型以及內部模型當你使用、並且理解一個工具的用途的時候,識別他的目的,內外部模型時非常重要的,你的大腦裡面才會是有用的上下文細節,這讓你可以更好的吸收新的知識。就像玩拼圖一樣,如果完整的拼圖就在你的面前,那麼你就容易把這些拼在一起,這也適用於程式語言以及語言庫。
工具的外部模型是它所呈現出來的介面,以及它希望您思考問題解決方法的方式。Clojure的外部模型就是一個Lisp,它希望您將程式設計看作以資料為中心的、不可變的轉換。
工具的內部模型是如何將其介面的輸入抽象為某種較低級別的抽象。Clojure將Lisp程式碼轉為JVM位元組碼,而Ansible把任務定義轉換成shell命令。在理想世界中,不需要理解內部模型,不過在現實中,理解工具的內部模型是非常有幫助的,因為他為問題提供了一個統一的視角。
間隔重複有助於記憶間隔重複是被證明在長期記憶中編碼新資訊的最好方法之一,這個方法能夠不斷地增加時間間隔內的自我測試,透過最少重複次數來最小化減少記憶衰退。
睡眠和鍛鍊學會照顧好你自己的身體!
身體不僅僅是你大腦的載體,想要記憶力能夠保持高度集中,更加高效地學習,足夠充足的睡眠時間和更多的鍛鍊,能讓你徹底遠離咖啡因以及各種亂七八糟的能量飲料。
來自於我的建議其實學習程式語言來說,這篇文章大師更多的是從方法學的角度來分析,給大家一套通用的系統學習的方案。
總體來說,學會掌握程式語言思想精髓,多做實踐,多看經典的原始碼,只要做好這幾點我覺得你基本上就能學好這門語言,不過還是那句話,興趣非常重要!
回覆列表
想好好學的話還是建議去專業的機構去學習 自學基礎不牢靠 像中軟都有零基礎課程的 我之前就在那學習過 老師很專業