授人以漁教新人程式設計?可他要是釣到河豚會死的

XiaoxiaoLi發表於2014-08-08

我們來談談如何教新人程式設計。在各種程式語言的郵件群和使用者小組中我經常看見一句諺語。每個人都知道這句話,這篇文章的標題就是它的後半部分。

授人以魚,不如授人以漁

當有人問有哪些學習程式設計的資源的時候,其他人經常會這麼抱怨。Python群裡有人這麼說;PHP群裡有人這麼說,JavaScript群裡有人這麼說;幾乎我加的每個群都有人這麼說。大家的意思是說:新人應該自己去尋找學習資源,而不是去麻煩前輩。為什麼這些菜鳥不能自行Google呢?搜尋結果頭條明顯就是最好的學習資源嘛,因為頭條被推薦的次數最多啊。

恭喜你,你教會別人如何把魚線投到水裡了,但是你還沒教他哪種魚可以吃,哪種魚不可以吃呢。在程式設計教育的世界裡,“大多數”的魚都不能吃。

舉個例子,當你搜尋和PHP相關的東西時,搜尋結果的首頁總會出現W3Schools。這個網站看著很權威,有各種各樣的教程,而且一搜就是它!很可惜這是條毒魚。

我們來接著簡單談談上一個問題:PHP,這個被人廣為詬病的程式語言驅動著這世界上大多數網頁。PHP絕對不是沒有問題的。我今天不會在這篇文章裡為它平反(我以前幹過這事兒),但其實PHP最大的問題是如何學習它。它是一個非常流行的語言,它拼命地想讓新手能夠很容易地學會它。在20年裡,它從一個簡單的指令碼語言發展成了連資產上十億的大公司都用的強力工具。在成長過程中,它遭遇了足夠多的各種困難,其中很多都和不良的設計方案有關。

現今的PHP有很多優點,但不幸的是這些優點對新手來說並不那麼容易理解。它們是基於多年程式設計理論的高層概念。PHP仍然支援很多過去那些純真年代時的基礎理念,它們用來做夫妻店這種小型網站足夠了,但是上升到大公司這種規模就不夠用了。簡而言之,它們不安全,效率低,甚至是“錯的”。但同時它們容易理解,而且好使。

W3schools上教的基本都是“錯”的方式,這意味著把它作為學習資源的新手一開始學的就是不好的編碼規範,然後他們寫了更多不好的PHP程式碼,然後導致更多的人只能學到錯誤的方法。這個癥結不是針對W3Schools的 – 幾乎所有的PHP教學資源都充斥著錯誤但是簡單的解決問題的方法。這個癥結如此流行以至於我一時想不起來任何一個能讓我放心的PHP的教學資源。

如果你教一個人去“釣”學習資源,他會釣上來海里最糟糕的魚,然後你還得來收拾殘局。如果你遞給他頭幾條魚,然後給他講去哪兒能釣到更多好魚,那麼你就成功了一半了。如果還能教他為什麼不應該釣其他那些不好的魚,那麼他已經走在成為程式設計界裡積極而有成效的一員的路上了。

我們需要多思苦索究竟應該如何對待正在學習的新手。就Python來說,給完全不會程式設計的新手,我推薦《Learn Python The Hard Way》,對已經會了一兩門程式語言的人我推薦官方的python tutorial教程。這些簡單的資源解釋瞭如何正確使用這門語言。當他們有了這樣的基礎知識之後,我會指給他們到哪裡去找更多更好的資訊。

下面的場景是我希望看見的。程式設計界的人們能團結起來創造一些好的學習資源,而不是叫別人去鳥槍法一樣地“google一下”。教人程式設計的過程中,讓他們自己去找答案當然是很重要的,但在放他們下山之前,你也必須教他們究竟應該尋找什麼樣的資源。

所以讓我們不要再教人釣到什麼破魚都吃了,這樣也許我們就不需要再浪費那麼多時間來修復那些寫得不好的程式碼了。

打賞支援我翻譯更多好文章,謝謝!

打賞譯者

打賞支援我翻譯更多好文章,謝謝!

授人以漁教新人程式設計?可他要是釣到河豚會死的

相關文章