成人免费xxxxx在线视频软件_久久精品久久久_亚洲国产精品久久久_天天色天天色_亚洲人成一区_欧美一级欧美三级在线观看

如何高效地學(xué)習(xí)編程語言

開發(fā) 后端
學(xué)習(xí)編程語言是一種技巧:做好了,你會感受到掌握新事物之后的快感(dopamine:多巴胺);做不好,就會接二連三的沮喪,甚至放棄。

這是Clojure好書《Clojure for the Brave and True》作者 Daniel Higginbotham 寫于2017年4月16日的博文。從作者的豐富的經(jīng)驗來看,本文非常具有指導(dǎo)意義。

學(xué)習(xí)編程語言是一種技巧:做好了,你會感受到掌握新事物之后的快感(dopamine:多巴胺);做不好,就會接二連三的沮喪,甚至放棄。下面這些學(xué)習(xí)編程語言的最佳技巧是我從多年的 著書 寫作 , 演講 和 培訓(xùn) 中總結(jié)出來的。這里頭很多技巧來源于對高效學(xué)習(xí)前沿研究做了解釋的書籍。你可以在 Community Picks Learn Programming 中找到那些書(還有其它牛x的編程書籍)。

如何高效地學(xué)習(xí)編程語言

持續(xù)測試自己以抵抗勝任力錯覺

最不濟的學(xué)習(xí)方法中的一種就是重讀或者重看材料。這種重復(fù)會給你一種感覺——似乎不用花什么氣力,你就理解了話題所涵蓋的內(nèi)容。研究者們把這種現(xiàn)象稱作勝任力錯覺。

更好的一種方式(你可以掌握的最佳技巧之一)則是持續(xù)地測試自己。不要重讀一個函數(shù)、類或者一個對象是什么,而是讓自己定義這些概念或者把它們用到短小的程序當中——強迫你用某種方式顯示自己的理解。這一過程常常很不舒服的,但是對形成長期記憶非常有效。更進一步,你可以在閱讀材料之前先去行測試,舉個例子,嘗試在閱讀一個章節(jié)之前做做練習(xí)。值得一提的是,這也被證明有助于記憶的形成。

測試對于學(xué)習(xí)的顯著影響被稱為 測試效用 ,下面是一些具體方法可以利用:

  • 在閱讀章節(jié)或者看視頻之前,嘗試猜測你將要學(xué)習(xí)的東西,并寫下來。
  • 在閱讀章節(jié)之前先做做這個章節(jié)的練習(xí)題。
  • 一直做練習(xí),即使是最難的那些。暫時(永遠)放棄一個練習(xí)也是可以的,不過至少要嘗試一遍。(下個章節(jié)會詳細談到)
  • 閱讀短小的程序并且嘗試不看源碼重新寫一個。或者,再小一些,寫個函數(shù)也行。
  • 在學(xué)習(xí)了對象、類、方法或者高階函數(shù)等新概念之后,立即編碼做示例。
  • 創(chuàng)建闡述這些概念的圖示,以及這些概念之間的區(qū)別和聯(lián)系。
  • 把你剛剛學(xué)到的概念寫成博客。
  • 嘗試把概念解釋給非技術(shù)的朋友聽。(在寫《Clojure for Brave and True》的時候,我常常這么干。這樣能夠以外行的話闡述一個想法,進而迫使你深入理解想法本身。)

這些技巧的大部分都要規(guī)約到編寫代碼上!說到編程,由于程序都是重文本和概念性的,所以很容易以為我們僅僅通過閱讀(代碼)就在學(xué)習(xí)。但是程序同時也是一門手藝,就像其它手藝一樣你得操練才能嫻熟。編碼是暴露你對程序作有錯誤假設(shè)的最佳方式。你越快地這么做,就會越快地糾正錯誤和提升技能。

如果你想了解更多測試效應(yīng)的事情,敬請查看 堅持:成功學(xué)習(xí)的科學(xué)(make it stick: The Science of Successful Learning) 。

花時間放空自己

如果你糾結(jié)在一個問題上,或者對剛才讀到的東西不能理解,就去散散步甚或洗個澡 —— 只要能進入一種舒緩、放空的狀態(tài)就行。解除障礙的最佳方式之一就是歇一會兒,這可能聽上去有點反直覺,但確實如此。

問題是,當全神貫注解決問題時,我們很容易陷入思維障礙(mental blinder)。我的意思是,這差不多就是“關(guān)注”(字面上)的意思。不過,全神貫注會導(dǎo)致我們只能一直探索解決方案空間的一小部分。一旦放空,我們的潛意識就可以探索并聯(lián)結(jié)我們經(jīng)驗中的廣泛領(lǐng)域。

對我來說,這就像當你試圖在紙質(zhì)地圖上找到一個目的地(是否還記得?)。你不用刻意就確信你想抵達的城市應(yīng)該就在這里!在地圖的左上角的區(qū)域,所以你看了一遍又一遍,都沒有成功。然后你放下地圖,做了深呼吸并讓目光游離了一會兒。當你重新看地圖時,確切的地點立馬映入眼簾。

我們曾經(jīng)都有過這樣的經(jīng)驗,在洗澡的時候突發(fā)靈感。現(xiàn)在你對于為什么這么做有了更好的了解,那么也就能刻意地使用這個技巧。個人來講,如果糾結(jié)在某事上,我真的會洗個澡,這個技巧的功效顯著。另一方面,我又是多么干凈(注:洗澡這件事)。

如果你想多學(xué)一些關(guān)于思考的關(guān)注和分散模式,敬請查看 A Mind for Numbers: How to Excel at Math and Science (Even If You FLunked Algebra)

別浪費時間沮喪

和上一個章節(jié)相關(guān):別浪費時間為代碼沮喪了。沮喪會讓我們做一些愚蠢的事情,比如重新編譯或者重刷瀏覽器,期望這次會有所不同。

把沮喪看作你的知識有差距的信號。一旦你意識到自己沮喪了,它可以幫你后退一步,清晰地識別問題。如果你寫的代碼不起作用,坦率地向自己或者別人說明你期望的結(jié)果。使用科學(xué)的方法,就非預(yù)期行為的根因提出一個假說。然后測試你的假說。再次試驗后,如果依然解決不了,就把這個問題放到一邊,待會兒回來。

在一些似乎沒法解決的問題上,我不知有多少次惱怒地扔掉了自己的筆記本電腦。隔天再看,一個顯而易見的解決方案立馬跳入腦海。甚至上周就發(fā)生過。

確認你正在處理語言的哪個方面

個人觀點,我覺得記住這些是有用的——當學(xué)習(xí)一門編程語言的時候,你實際上正在學(xué)四件事情。

  • 怎么寫代碼:語法、語義以及資源管理
  • 語言的范式:面向?qū)ο螅瘮?shù)式,邏輯等
  • 產(chǎn)出物的生態(tài)圈:如何構(gòu)建、運行可執(zhí)行文件以及如何使用庫
  • 工具:編輯器,編譯器,調(diào)試器,代碼質(zhì)量檢測器(linter)

這四項很容易搞混,不幸的結(jié)果是,當你遇到問題最終完全找錯了地方。

舉個例子,某些完全的編程新手,可能準備開始構(gòu)建iOS應(yīng)用。他們可能會試著讓自己的應(yīng)用在朋友的手機上運行,只看得到有關(guān)需要開發(fā)人員證書或其他信息的消息。這是產(chǎn)出物生態(tài)圈的一部分,不過小白可能將此視為編寫代碼的問題。他們可能會瀏覽自己寫的每行代碼來嘗試解決問題,盡管問題和代碼沒有半毛錢關(guān)系。

如果我系統(tǒng)地處理這些方面,我會發(fā)現(xiàn)學(xué)習(xí)一種語言會更加容易。我將在其它的博客文章中羅列一些待回答的寬泛問題的列表,應(yīng)該能幫助你學(xué)習(xí)任何語言。

明確目的,外部模型,內(nèi)部模型

任何時候你學(xué)習(xí)使用新工具,明確學(xué)習(xí)的目的,外部模型和內(nèi)部模型都是十分有用的。

當你了解了工具的目的時,你的大腦會加載有用的上下文細節(jié),使你更容易吸收新知識。這就好比拼圖:當你看到完整拼圖之后,更容易把各部件拼到一起。這個道理適用于語言本身以及語言庫。

工具的外部模型就是它呈現(xiàn)出來的接口以及它想讓你思考問題解決的方式。Clojure 的外部模型就是一個 Lisp,它想讓你把編程當做大部分以數(shù)據(jù)為中心,不可變的轉(zhuǎn)換過程。Ansible 希望你把服務(wù)器的整備工作想成定義最終狀態(tài),而不是定義抵達那種狀態(tài)所要采取的步驟。

工具的內(nèi)部模型就是如何將輸入到其接口轉(zhuǎn)換成一些底層的抽象。Clojure 把 Lisp 轉(zhuǎn)換成 JVM 的字節(jié)碼。Ansible 把任務(wù)定義轉(zhuǎn)換成了 shell 命令。在一個理想國中,你不需要理解工具的內(nèi)部模型,但事實上,理解內(nèi)部模型總是有用的,因為在某些看上去迷惑或者矛盾的部分,它可以讓你有個統(tǒng)一視圖。舉個例子,當 DNA 雙螺旋模型被發(fā)現(xiàn)的時候,它幫助科學(xué)家們了解更高層次的現(xiàn)象。從我的角度來講,當然,這篇博文也是歷來所有偉大科學(xué)成就之一。

很多教程經(jīng)常混淆工具的外部和內(nèi)部模型,使學(xué)習(xí)者感到困惑。意識到這點可以幫你輕松辨別何時你會感到沮喪。

間隔重復(fù)幫助記憶

間隔重復(fù)被證明是長期記憶中新信息編碼的最佳方法之一。 這個想法是以不斷增加的時間間隔來測驗自己,使用最少重復(fù)次數(shù)來最小化記憶衰減。 衛(wèi)報寫了一篇 很好的介紹性文章 。

睡眠和練習(xí)

保重身體!身體可不僅僅是你腦袋的載體。如果你想保持專注和高效的學(xué)習(xí),就要足夠的睡眠和練習(xí),而不是(原文:beats the pants off)狂飲咖啡因和能量飲料。

責(zé)任編輯:未麗燕 來源: lambeta
相關(guān)推薦

2012-03-13 09:54:42

JavaScript

2016-10-25 08:49:34

數(shù)據(jù)通信行業(yè)技能圖

2011-06-09 16:23:18

SEO

2011-06-16 20:05:41

SEO

2022-04-12 15:02:44

開發(fā)框架編程語言

2010-03-15 15:45:15

Python編程語言

2019-07-31 15:14:40

Python數(shù)據(jù)科學(xué)可視化

2024-06-27 09:00:00

人工智能編程語言軟件開發(fā)

2015-08-12 10:10:44

2025-02-05 08:13:48

Go語言范式

2013-07-26 10:23:04

2021-03-05 14:49:28

編程語言工具

2009-05-20 14:47:18

學(xué)習(xí)程序員編程語言

2010-07-19 16:47:54

Perl

2019-04-24 08:34:46

編程語言PythonJava

2010-03-05 15:30:29

Android編程語言

2015-10-28 10:11:54

快速高效Java編程在線資源

2019-12-03 09:31:14

編程語言程序員Python

2010-03-11 15:16:52

Python編程語言
點贊
收藏

51CTO技術(shù)棧公眾號

主站蜘蛛池模板: 国产高清自拍视频在线观看 | 嫩草一区二区三区 | 本地毛片| 国产精品不卡视频 | www.精品国产 | 国产综合精品 | 国产精品一二三区 | 国产视频91在线 | 国产一级一级 | 久久国产一区二区三区 | 日本一区二区三区四区 | 久久合久久| 国产精品久久久久久久久久久久久 | 美日韩免费视频 | 久久91av| 99精品视频免费在线观看 | 在线免费观看日本 | 91小视频在线 | 欧美一区二区在线 | 狠狠视频 | 午夜免费电影 | 久久久久久久91 | 一区二区视屏 | 久久中文字幕一区 | 成人影视网址 | 成人午夜免费网站 | 国产高清免费视频 | 国产精品波多野结衣 | 羞羞涩涩在线观看 | 韩国久久精品 | 日韩一区二区三区在线观看视频 | av大全在线 | 国产精品久久久久久久久久久久冷 | 亚州精品天堂中文字幕 | 日韩中文字幕在线播放 | 国产精品免费观看 | 九九九视频在线观看 | 日韩精品无码一区二区三区 | 看亚洲a级一级毛片 | 伊人一区 | 亚洲一区二区三区四区五区午夜 |