search
尋找貓咪~QQ 地點 桃園市桃園區 Taoyuan , Taoyuan

[自學編程01]: 自學編程中的7個坑和避免的方法

註明

我在這裡使用了「坑」這個詞,計算機編程的人員經常會把學習中和工作中的難點稱為「坑」。我這裡的「坑」,你可以把它理解為難點。

適用對象

非計算機及其相關專業的,希望快速自學編程的學生或從業者。

摘要

從2012年到2016年,我通過自學編程,幾乎學習過網上的所有教學資源。通過三大MOOC網站(Coursera, edX, 和Udacity)的學習了計算機科學的基本知識:計算機組成原理,計算機網路,Linux,演算法和數據結構; 通過codecademykhanacademy.org等免費網站學習了web開發的基本知識; 通過codeschooleventedmind等付費網站掌握了nodejs, meteor, reactjs的基本知識。

在我漫長的自學編程的過程中,我克服了很多的困難。這裡我提煉出了7個主要的難點,並且提出了解決的方法。

第1個坑和避免的方法

先說第1個坑,也就是最大的一個難點。

  • 失去了學校老師的引導,因為你離開了學校,沒有給學校付學費,沒有老師來免費的教你。你很大可能程度上,不知道什麼是最優的學習資源和最優的教程。
  • 這時候,因為網路上的關於編程的教學資源很多,你通常會受大海量的學習資源和教程的困擾,不知道該學習那個教程,而且也不知道學習的順序到底什麼樣的。

對於這個難點,我的解決方法是:

  • 首先:你要能找到最優的學習資源,在最優的學習資源里找到最優的學習教程
  • 然後,你要能夠甄別它們,認清學習它們的次序,你要在不同的時間分別學習它們。

例如:我覺得Learn code the hard way,也就是笨方法學編程非常棒,能學下去,但學到一個部分,感覺學不懂了,那就換教程,例如:How to think like a computer scientist, 如何像計算機科學家一樣思考。

第2個坑和避免的方法

你在自學編程時,要面對很多別人的不理解的情緒。

  • 首先說你的家人會不理解你,他們擔心你學習第二門專業是不是有些浪費時間,會不會耽誤本專業的學習?
  • 你的同事覺得你在學習新的東西,他們會覺得你很奇怪。
  • 同學也會有些不理解。
  • 重點說下程序員,你在自學編程的過程中,大都會遇到程序員,他們大都很不善於指導別人自學編程,因為他們的編程技能是在學校里被老師們教的,而且我的親身經驗,他們根本就不關心你學編程這件事情。

對於這個難點,我的解決方法是:

  • 首先,在具有編程的基礎之前,你要想辦法不停地掃清編程的阻力。
  • 其次,你要不停的關注別人成功的案例,比如說你關注我微信公眾號里的文章,

因為我在自學編程的過程中,一直在掃清這些阻力,從我n年前到現在都一直在做這件事情,我會把經驗分享到文章中。

第3個坑和避免的方法

  • 你在自學編程的時候,你要面對這種情況,在你的學習過程中,沒有學校老師的輔導。
  • 另外,你也沒有和你共同學習的同學。
  • 在這個時候你經常會遇到很多很難解決的問題,這時候,你的大腦就會進入一種停滯的學習狀態。

對於這個難點,我的解決方法是:

  • 首先,你在學習的時候要詢問自己的大腦,你是否遇到了很難解決的問題?如果你覺得教材的學習效果不好的話,你就該果斷的改變學習資料。
  • 其次,你要讓你的大腦,能不知疲倦地學習計算機科學的,各個方面的知識,

因為我們是自學編程,我們的大腦裡面已經有了本專業的內存佔用了,而且從時間上說,我們沒有很多的時間去自學編程,所以說我們不能停滯。我們要不停地輸入計算機的知識,讓大腦沒有類似死機的狀態出現。

第4個坑和避免的方法

當你自學編程的時候,你通常會停頓,不能長時間持續的學習。比如:當你學完一門課程的時候,你可能會想,我要休息休息了,我累了。

對於這個難點,我的解決方法是:

  • 首先,你要提高認識,你要認識到你只有對計算機科學的各個方面的知識有了一個全面的認識,另外當你再寫出了一定量的代碼,並且能寫出創業(個人需要)的一定量的snippets時,你才能稍微調整一下。
  • 對於這個入門的學習階段,我覺得應該會持續一段時間,儘管每個人的背景可能不同,但是我覺得應該需要至少2到3年左右時間。

第5個坑和避免的方法

因為,編程,對你來說,有可能是一個新的學科。你在學習這個新的學科的時候,因為沒有學校老師的指導,你不知道該學什麼內容,另外你也不知道,對於其中的一些知識,應該學到什麼程度呢?什麼時候可以停止呢?

對於這個難點,我的解決方法是:

  • 首先,對於一個學科,你要掌握最基礎的知識,比如說,你要一門掌握計算機的語言,演算法和數據結構,linux操作系統,和web開發的基礎知識。
  • 其次,除了這些基礎知識以外,你還要學習最前沿的知識,例如說現在計算機界比較流行的深度學習,這是跟人工神經網路有關的課程。在學習工程中,除了需要編程的基礎知識以外,還需要統計學,線性代數,和微積分的知識。我現在正在學習Udacity的深度學習微學位,感覺學習起來很是興奮。

第6個坑和避免的方法

你很可能不願意花錢學付費的自學編程教程,另外即使你花錢了,也可能不知道,如何衡量,編程服務提供者提供服務的價值,你不知道你購買的網路課程服務 是不是配的上你花的錢。你是不是應該以這樣的價格學習這門課程?

對於這個難點,我的解決方法是:

  • 首先,在經濟允許的情況下適當付費,讓製作教程的人回答你的學習問題(他的資源,他最了解),
  • 其次,如果經濟允許,最好今早學習Udacity的Nanodegree(納米學位)。例如,我現在正在學習它的深度學習的微學位,因為這是付費的課程,它講的非常地仔細,這時從外面的免費課程學不到的。儘管價格是3999元, 我現在經濟上不是很寬裕,但是我依然覺得3999元,花的非常的值。

第7個坑和避免的方法

因為編程對很多自學者而言, 尤其是長時間不能入門的人而言,不知道計算機科學學習的基礎方法:是在人機交互的基礎上進行互動式的編程。

對於這個難點,我的解決方法是:

要掌握編程學習的邏輯模型:要使用互動式的方法,充分利用我們的大腦,眼睛,耳朵,手指,來進行計算機知識的輸入和輸出。



熱門推薦

本文由 yidianzixun 提供 原文連結

寵物協尋 相信 終究能找到回家的路
寫了7763篇文章,獲得2次喜歡
留言回覆
回覆
精彩推薦