• 區別編程學習階段的兩個關鍵因素

    資源與知識面
    服務器君一共花費 6.622 ms 進行了 4 次數據庫查詢,努力地為您提供了這個頁面。
    廣告很萌的

    那么前兩個階段的真正區別是什么呢?為何相比階段一(手把手輔導的蜜月期)來說階段二(困惑的下滑期)給人的感受會如此糟糕?如果你的經歷很像我們前面描述的那樣,只要理解了這兩個問題,你就能釋懷了。

    從根本上來說,每個階段都有兩股關鍵力量在起作用,那就是資源的密集程度和知識面的廣度。在探索它們對階段三的影響之前,我們先來看看這兩個因素到底是什么。

    因素一:資源密集度

    正如我前面所說,一開始你會感覺有遍地的資源在引導你上手編程。事實也確實如此!

    搜索“如何編程”,你會得到一大堆有用的工具、文章、視頻以及自學教程。而且,老實說它們都很棒!從未有過如此多的方法指導人們學習編程。

    不幸的是,后期可供使用的資源太少了。每一個從初學者成長到當前狀態的人都能體會這其中的差距之大,相比剛開始入手,當你試圖完全依靠自己創建工程時,能利用的資源就少得多。

    進入階段三后需要了解的知識猛然陡增,惡化了上面的問題,這也是為什么我把這個階段稱之為“絕望的迷茫期”。一旦你度過了這個階段,并且開始了解你需要搜索的東西,你就會找到很多資源,還能使用一些技術工具,如專業博客和視頻講座。矛盾的部分僅僅在于明白該問什么問題。

    下圖顯示了各個階段中的資源密集程度(線條越密集表示資源越多):

    各階段的資源密集度

    因素二:知識面的廣度

    現在我們來聊聊一個相關的話題——知識面的廣度。它表示你在每個階段中必須學習的新知識的總體廣度。下圖就顯示了這個因素在每個階段中的情況:

    各階段所需知識的廣度

    剛開始學編程時,你需要理解的東西很少。不論你的目標是什么,不論你用什么編程語言,也不論你之前是做什么的,每個人要做的都是搞清楚什么是for循環,如何創建條件語句,以及其他一些編程語法的基礎結構。總體來看也沒多少基礎概念,因此階段一所需要的知識面廣度很窄。一旦你學完了基礎部分,就需要去了解一些更復雜的東西,比如理解錯誤以及何時使用那些你已經會用的代碼,此時你會發現需要學習的額外知識瞬間多了很多。這個時候情況變得不同了,因為一個明確的問題不一定有一個絕對正確的答案……事情開始變得棘手。

    當你進入第三個階段后,所需的知識面廣度就更寬了。你需要理解該使用哪些工具,該學習什么編程語言;學習相關的計算機科學基礎,如何寫模塊化的代碼;學習面向對象的編程,學習好的代碼風格,以及學會尋求幫助(以上僅列舉幾個例子)。每一次在Google 或 Hacker News上進行搜索都讓你大開眼界,找到的東西多得讓你喘不過氣,都是些你不知道但感覺自己應該了解的知識。

    你不知道自己不懂哪些東西。

    只有當你終于摸到了一些門道并結束這個“荒漠之旅”以后,所需的知識面廣度才會再次縮小。那時,你已經選擇了某種技術,并了解了它在這個行業的生態系統中所處的地位。你最終學會了那些你以前不懂的東西(可以說相當了解),也知道如何解決問題。隨著你深入學習和事業逐漸起步,你將越來越專注于自己領域的技術。

更多 推薦條目

Welcome to NowaMagic Academy!

現代魔法 推薦于 2013-02-27 10:23   

本章最新發布
隨機專題
  1. [Python程序設計] Tornado背景知識介紹 4 個條目
  2. [軟件工程與項目管理] 呈現樹的構建 13 個條目
  3. [PHP程序設計] PHP里的引用 5 個條目
  4. [數據結構] 散列表(哈希表) 13 個條目
  5. [智力開發與知識管理] 整體性學習策略 9 個條目
  6. [C語言程序設計] 結構體基本知識 1 個條目
  7. [PHP程序設計] 對輸入文件類型的檢測 1 個條目
  8. [PHP程序設計] 命令式編程范式 6 個條目
  9. [Python程序設計] Django 入門知識淺介 10 個條目
  10. [軟件工程與項目管理] 瀏覽器的CSS解析 7 個條目
  11. [智力開發與知識管理] 學習編程為什么沒會這么難? 7 個條目
  12. [智力開發與知識管理] 信息的類型與結構 9 個條目
窗口 -- [協會]
燃烧吧足球登陆