“我想學編程”的真正含義是什么

jopen 10年前發布 | 9K 次閱讀 編程

“我想學編程”的真正含義是什么

英文原文:What People Really Mean When They Say "I Want to Learn to Code"

關于編程教育,有兩件非常重要的事情是首先要知道的:

  1. 大多數人其實并不是真的想學代碼
  2. 學習代碼并不是只需要寫代碼就可以了

如果你不了解上面兩件事的話,那么你學習代碼的方式就是錯的,而且你永遠也學不會寫代碼。

這第一點經過我反復琢磨之后,我認為它的意思是,如果你并不是真的想學代碼,那么在你邁進這一領域的那一刻起,你只會覺得枯燥乏味得要命。

我稱之為編碼謬論。人們認為他們想要學習代碼是因為他們真正需要的是做一個產品。

仔細想想,這也是理所當然的。如果不能來做任何事情,那么代碼這個知識本身就沒有任何價值。因此,對于大多數人來說,學習代碼最大的動機就是能夠使用代碼來構建一些東西(第二動機就是能應聘到一個高薪崗位,O(∩_∩)O~)。

這就讓我不由得思考起了第二點,學習代碼并不意味著只需要會寫代碼就可以了。

曾經我們在學代碼之前必須先了解有關于計算機的幾乎所有的內容(也因此被稱為“計算機科學”)。后來隨著事物的發展,現在已經演變成除非真的需 要我們才會深入了解某方面的知識。例如,作為一個 Web 應用的開發人員,對于系統管理我幾乎一無所知,因為我完全不需要使用這方面的知識。

所以,當有人說,他想學習編程的時候,大多數教學工作人員會按照他們自己的教學流程教課,講數據類型、某種編程語言的各種結構,并且會讓學生先對計算機有一個深入的了解。

然而問題來了,這并不是他們真正想要學習的。他們的目的是為了構建某個應用。所以,我們不能再理所當然地認為所有有關于計算機的東西一股腦兒的都應該學習。

例如,如果某人已經知道后端如何開發,那么現在教授給他前端開發知識才是對他們有意義的。這樣一來,我們就減少了學生的負擔,事半功倍。

關于寫代碼其實并沒有很多需要學習的,但是也應該因材施教。下面這幾點我認為是區分的重點:

  1. Web 開發
  2. 非 Web 開發

如果你正在開發 web,那么你需要處理:

  1. HTML – CSS
  2. 路由選擇
  3. 數據庫
  4. 服務器托管/ DNS
  5. app 結構

顯然需要學習的東西很多,但是大部分對于非 Web 開發人員卻是無關的(除了數據庫和 app 結構)。

但是我看到的現行的教育方法更像是在“耍猴”。

學生:“我想學習如何寫代碼。”

(他們內心真正想的卻是我想建立一個 web 和移動 app——但卻不知道該如何表達)

老師:“好吧,那我們先學習數據類型。”

學生:“……”

(2 周后)

老師:“現在我們可以設計高效的算法了。”

學生:“我只是想制作一個超酷的網站!”

這樣一種學習代碼的方式誰會喜歡呢?!

作為教師,應該明白的是,當人們說他們想要學習寫代碼的時候,其實他們真正想得是建立 web 或者制作移動 app。

這是因為,對于他們而言,這就是寫代碼的意義,也是他們想要用代碼做的事情。但是問題在于他們不知道如何正確地表達自己的想法。所以我們不能只看語言的表面含義。理解字里行間的真正意思也是我們作為教育工作者的工作之一。

我記得幾年前有一個牧師這樣說過,即使是在兩難的情況下,我們還是應該講真話。然后又有人問:“那要是說實話會傷害對方呢?”

牧師斬釘截鐵地說:“如果有人問你問題,那么就告訴他們,他們真正想要知道的內容,不要瞻前顧后。”

教育行業也是如此,我們需要從別人的話里行間發現他們的真正意圖。如果他們提出的是一些具體問題,但是超出自己能力范圍的話,可以介紹其他經驗豐富的人。

所以,這取決于教育工作者和專家如何引導人們走到正確的方向上,而不是讓他們自己跌跌撞撞地摸索著往前走。如果我們能做到這一點,那么我們才不愧于人類靈魂工程師這個贊譽。

作為學生:學習你想要學的

在學習歷程中,你能做的一件事情就是,更多地涉獵各方面的內容——以便于知道自己以后該往那個方向想往哪個方向發展。

譯文鏈接:http://www.geekwww.com/what-people-really-mean-when-they-say-i-want-to-learn-to-code.html

翻譯作者:極客網 – Lili

 本文由用戶 jopen 自行上傳分享,僅供網友學習交流。所有權歸原作者,若您的權利被侵害,請聯系管理員。
 轉載本站原創文章,請注明出處,并保留原始鏈接、圖片水印。
 本站是一個以用戶分享為主的開源技術平臺,歡迎各類分享!