2017 年,你應該這樣學習 Web 程式設計 —— 內建索引 + 外接搜尋引擎

Phodal發表於2017-02-12

如果你不會使用 Google 去搜尋,那麼你是一個新手。而如果你只學會如何使用 Google,但是不知道搜尋什麼,那麼你也仍是一個新手。

最初我對這個問題的思考,來自於一年前的一篇相關的文章《程式設計師的內建索引與外接的Google》。當時,文章的主要對比點是,入口網站與 Google。兩者有一些明顯的區別:

  • 入口網站更適合那些什麼都不知道,從頭開始探索網際網路的人。
  • 搜尋引擎更適合你知道相似的東西,但是忘記具體的細節。

也因此,學習應用型技術變成了一項相當簡單的事。你只需要知道它有什麼(索引),然後去了解怎麼用(搜尋)即可。

從怎麼學到學什麼

開始之前,先讓我介紹一下,我的學習框架、語言的方式:

  • 買本中文書或者找個教程、官方的 Guide,花個十幾分鍾瞭解一下目錄。
  • 直接找個官方的示例,執行一下 Demo。
  • 上手寫寫應用。
  • 檢視官方文件,看看自己是不是漏掉了什麼重要的東西。

首先,你有了一份入門資料了,並且也已經有官方的文件了。然後你只需要一步步去做就可以了,不會的地方你就可以搜尋到。難怪,程式設計師被喻為新藍領工人

藍領工人

你拿上一份框架的說明書、一份需求文件、一個搜尋引擎,就可以很容易地製造出一個產品。唯一的門檻是,你需要會讀懂這些內容。這有點像新的知識階級,只是門檻不再是識字與否,而在於是否能懂程式設計的知識。

將學習程式設計與入口網站、搜尋引擎相比,就是:

  • 當你是一個新手程式設計師的時候,你需要一本書、一份指南、一個教程來作為索引,並學習上面的一個個內容。
  • 當你是一個有經驗的程式設計師時,你只需要一個搜尋引擎,因為你的腦子裡已經有了整個世界。

當你不會使用 Google 時,你可能會這樣去搜尋資料(參見:英國老人堅持用敬語谷歌搜尋 成網紅被怒贊):please translate these roman numerals mcmxcviii, thank you。

這種感覺就好像是,你在使用機器人“嬌嬌”,背後有一個人一樣:

Man Inside Computer

可惜,機器人都是晚期直男癌,喜歡單刀直入。

當你只會使用 Google 時,你只能去知乎、SegmentFault 或者 StackOverflow 提個問題:

HTML、CSS、JavaScript、PHP、 MySQL 的學習順序是什麼?

過去,我花了相當長的時間,在探索學習什麼的問題。畢竟學習是相當簡單的一件事,你只需要抽點時間、找個空間、研究個點就可以了。在這其中,最難的地方是研究一個點。因為你根本不知道,需要學習什麼?並非所有的人,都能找到合適的路線。

索引與圖譜

當你在某個領域擁有多年的經驗時,你就可以將它整理為各式各樣的圖譜、技能樹等等。如:

前端技能彙總

這樣的圖譜,就像門房網站一樣,在上面列好了一個個的知識點。

入口網站

它按照不同的類別,一一的歸類。稍有區別的是,這些類別都會相應的內容與之對應。而你在技能彙總上是看不到的,這也就是為什麼像技能樹這樣的工具,也會相當的受歡迎。

Sherlock

人們需要的,不僅僅是一張簡單的地圖,還需要導航功能。技能圖譜、技能彙總等等類似的圖譜,它們都只是一些簡單的工具。你還需要輔助相應的內容,如文章,視訊、教程等等的資料。

在這個時候,或者你需要的是一個 Awesome-xx 的專案,上面不僅僅有目錄,還有各式各樣的資料。點選到相應的連結,你可以看到程式碼、應用。

初學的時候,你只需要找到一份合適的索引。學到一定程度的時候,你就可以和我一樣創造相應的索引,還有各種資料,如 Growth(https://github.com/phodal/growth)。隨後,你就可以對比不同的索引,來完善自己的知識休系。

不斷的更新索引

小學的時候,你學會了基本的數學知識,如加法,除法,乘法。你開始在初中的時候,開始解決各種複雜的二次、三次方程、圖形計算等等的問題。

從哇哇墜地在醫院,到初高中畢業,學習的大部分知識都是別人覺得重要的。學習的時候,教育者們出於某種目的,已經為你規劃好了一個個的路線。

工作的時候,領導們仍然會出於某種目的,為你規劃好一個學習路線。你並不需要知道自己需要去什麼,你像遊戲中的國王一樣,按別人的規劃一步步地往前走。

如果別人為你規則學習的路線是合理的,那麼學習起來就會很輕鬆。反之,你就會很痛苦,開始質疑合理性。

心流

知識本身具有連貫性——這就是《技術發展的本質》一書所闡述的。你把一個現代的智慧手機,交給 20 年前的使用者,他都不知道怎麼用。

Phone

如果你是經歷過手機 20 年的更新換代,那麼你就很容易地就可以上手各種手機。與些同時,你並需要從 20 年前的大哥大開始用起。這也是大部分開發者的學習過程,但是並意味著你需要從頭學起。你仍然可以忽略過很多東西,然後學習最新技術。

令人遺憾的是,知識本身不是靜止的,而是一個不斷髮展的過程。就連吃飯,你都要學習使用不同的工具,如西餐。只有基礎本身是靜止(相對)的,一旦涉及到應用都是變化的——你學習的 A 技術,經過一段時間,都會被市場淘汰。

這時,你需要像爬蟲一樣,不斷地去抓取新的網頁,新的知識點。

相關文章