如何教新人程式設計:授人以漁(可他要是釣到河豚會死的)
我們來談談如何教新人程式設計。在各種程式語言的郵件群和使用者小組中我經常看見一句諺語。每個人都知道這句話,這篇文章的標題就是它的後半部分。
授人以魚不如授人以漁
當有人問有哪些學習程式設計的資源的時候,其他人經常會這麼抱怨。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一下”。教人程式設計的過程中,讓他們自己去找答案當然是很重要的,但在放他們下山之前,你也必須教他們究竟應該尋找什麼樣的資源。
所以讓我們不要再教人釣到什麼破魚都吃了,這樣也許我們就不需要再浪費那麼多時間來修復那些寫得不好的程式碼了。
原文連結: Samuel Levy 翻譯: 伯樂線上 - XiaoxiaoLi
相關文章
- 授人以漁教新人程式設計?可他要是釣到河豚會死的程式設計
- 如何閱讀大型前端開源專案的原始碼,授人以魚不如授人以漁前端原始碼
- 授人以漁式解析原生JS寫輪播圖JS
- [記錄點滴]授人以漁,從Tensorflow找不到dll擴充套件到如何排查問題套件
- Block深入學習,授人以漁。—— Block與各種變數BloC變數
- 不黑程式設計師會死星人程式設計師
- 授之以漁不是授之以魚-docker maven 構建java工程DockerMavenJava
- 為什麼新人不會程式設計程式設計
- 程式設計師會營銷,餓死營銷人員程式設計師
- 授人以資源不如授人以資源網站!網站
- 如何教新手程式設計程式設計
- 最新的AI會“殺死”程式設計嗎?AI程式設計
- get:程式設計主要是思考程式設計
- 程式設計思想之——"人是活的,程式是死的"程式設計
- 寫給新人——以體驗為導向的遊戲設計遊戲設計
- 授人以漁 - 如何查詢 SAP UI5 官網上沒有提到的控制元件屬性的使用明細試讀版UI控制元件
- 授人以漁 - 如何自行查詢任意 SAP UI5 控制元件屬性的文件和技術實現細節試讀版UI控制元件
- 程式設計將死,程式設計師永存程式設計師
- 教機器學習程式設計機器學習程式設計
- 如何做少兒程式設計教學?程式設計
- 程式設計師生涯,學到最重要的6個教訓程式設計師
- 為什麼Web 設計會“死”?Web
- 給新人程式設計師的 10 點建議程式設計師
- 如何通過程式設計發現Java死鎖程式設計Java
- PHP程式設計師 新人求職 平臺PHP程式設計師求職
- 請教過濾選擇框設計程式設計如何寫程式設計
- 以程式設計師的身份,教您使用API介面獲取蝦皮商品詳情程式設計師API
- 如何招聘到優秀的程式設計師?程式設計師
- 基於javaweb的釣友俱樂部漁具銷售網站系統JavaWeb網站
- 程式設計師妻子自述:那些程式設計師教給我的程式設計師
- 程式設計師妻子自述: 那些程式設計師教給我的程式設計師
- 如何招聘到高質量的程式設計師?程式設計師
- 5年程式設計師生涯,我學到最重要的6個教訓程式設計師
- 19歲程式設計師在谷歌學到的5條經驗教訓程式設計師谷歌
- 【技能篇】程式設計師工作以後該如何提升?程式設計師
- 從程式設計師到專案經理(28):該死的結果導向程式設計師
- 七年阿里老人談新人程式設計師的成長阿里程式設計師
- 請教對介面程式設計的含義!程式設計