「我想學編程」的真正含義是什麼

本文轉自兄弟連薛亞飛老師的帖子前端

關於編程教育,有兩件很是重要的事情是首先要知道的:web

  一、大多數人其實並非真的想學代碼算法

  二、學習代碼並非只須要寫代碼就能夠了數據庫

what-people-really-mean-when-they-say-i-want-to-learn-to-code編程

若是你不瞭解上面兩件事的話,那麼你學習代碼的方式就是錯的,並且你永遠也學不會寫代碼。後端

這第一點通過我反覆琢磨以後,我認爲它的意思是,若是你並非真的想學代碼,那麼在你邁進這一領域的那一刻起,你只會以爲枯燥乏味得要命。服務器

我稱之爲編碼謬論。人們認爲他們想要學習代碼是由於他們真正須要的是作一個產品。app

仔細想一想,這也是理所固然的。若是不能來作任何事情,那麼代碼這個知識自己就沒有任何價值。所以,對於大多數人來講,學習代碼最大的動機就是可以使用代碼來構建一些東西(第二動機就是能應聘到一個高薪崗位。編程語言

這就讓我不禁得思考起了第二點,學習代碼並不意味着只須要會寫代碼就能夠了。學習

曾經咱們在學代碼以前必須先了解有關於計算機的幾乎全部的內容(也所以被稱爲「計算機科學」)。後來隨着事物的發展,如今已經演變成除非真的須要咱們纔會深刻了解某方面的知識。例如,做爲一個Web應用的開發人員,對於系統管理我幾乎一無所知,由於我徹底不須要使用這方面的知識。

因此,當有人說,他想學習編程的時候,大多數教學工做人員會按照他們本身的教學流程教課,講數據類型、某種編程語言的各類結構,而且會讓學生先對計算機有一個深刻的瞭解。

然而問題來了,這並非他們真正想要學習的。他們的目的是爲了構建某個應用。因此,咱們不能再理所固然地認爲全部有關於計算機的東西一古腦兒的都應該學習。

例如,若是某人已經知道後端如何開發,那麼如今教授給他前端開發知識才是對他們有意義的。這樣一來,咱們就減小了學生的負擔,事半功倍。

關於寫代碼其實並無不少須要學習的,可是也應該因材施教。下面這幾點我認爲是區分的重點:

  一、Web開發

  二、非Web開發

若是你正在開發web,那麼你須要處理:

  – HTML – CSS

  - 路由選擇

  - 數據庫

  - 服務器託管/ DNS

  - app結構

顯然須要學習的東西不少,可是大部分對於非Web開發人員倒是無關的(除了數據庫和app結構)。

可是我看到的現行的教育方法更像是在「耍猴」。

學生:「我想學習如何寫代碼。」

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

老師:「好吧,那咱們先學習數據類型。」

學生:「……」

(2周後)

老師:「如今咱們能夠設計高效的算法了。」

學生:「我只是想製做一個超酷的網站!」

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

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

 這是由於,對於他們而言,這就是寫代碼的意義,也是他們想要用代碼作的事情。可是問題在於他們不知道如何正確地表達本身的想法。因此咱們不能只看語言的表面含義。理解字裏行間的真正意思也是咱們做爲教育工做者的工做之一。

 我記得幾年前有一個牧師這樣說過,即便是在兩難的狀況下,咱們仍是應該講真話。而後又有人問:「那要是說實話會傷害對方呢?」

 牧師斬釘截鐵地說:「若是有人問你問題,那麼就告訴他們,他們真正想要知道的內容,不要瞻前顧後。」

教育行業也是如此,咱們須要從別人的話裏行間發現他們的真正意圖。若是他們提出的是一些具體問題,可是超出本身能力範圍的話,能夠介紹其餘經驗豐富的人。

因此,這取決於教育工做者和專家如何引導人們走到正確的方向上,而不是讓他們本身跌跌撞撞地摸索着往前走。若是咱們能作到這一點,那麼咱們纔不愧於人類靈魂工程師這個讚譽。

做爲學生:學習你想要學的

在學習歷程中,你能作的一件事情就是,更多地涉獵各方面的內容——以便於知道本身之後該往那個方向想往哪一個方向發展。

相關文章
相關標籤/搜索