學習編程與學習編程語言不同

譯註:本文來自phpocean,使用機翻後由Mr.Wei校對。[語言往往給程序員帶來的成就感往往讓其忘了初衷,當你不再買各種《XXX從入門到精通》就說明你要麼放棄了要麼明白了。_]

我們都是程序員,我們都是學習者。看到有多少人(學習者)把時間浪費在毫無意義的事情上(bashing their head against the walls),以爲自己在學習編程,這真是令人驚訝。

您可能正在學習一種編程語言,而不是編程本身

知道計算機科學不研究計算機,不要感到驚訝。相反,它是使用自動化解決問題的研究。問題解決是計算機科學,而不是編程。這就是爲什麼許多計算機科學專業的學生似乎不明白他們爲什麼要學習算法或數學。

如果你以前上過計算機科學課,你不會對我在這裏說的話感到驚訝。因爲您可能已經注意到,編程與編程語言的關係不大。問問自己爲什麼僞代碼在這些課程中如此常見。

但是,大多數自我思考的程序員總是落入陷阱。我們學習編程語言幾十年之後,才真正意識到我們必須做的工作是:編程。我自己就是一個受害者。

我花了十多年時間一點一點地學習各種編程語言。我學得越多,就越難建立簡單的東西。我有一種找不到合適工具的感覺。但問題是,當我甚至不知道要做的工作時,我忘了尋找合適的工作而不是正確的工具。

編程語言的奇怪之處在於它們總是在進化。編程語言幾乎每天都在變化。很難跟進。大多數好的程序只使用編程語言的一小部分。

首先學習編程語言的問題就像在學習木工之前學習如何使用木工鋸子、錘子和所有的切割機一樣。木工需要注意的事項:想法、可行性分析、測量、測試、客戶行爲。高級木匠會對那些東西比錘子和釘子更感興趣。在工作的科學研究期間,他還會花時間檢查釘子、着色劑、木材等的質量。

學習編程和學習編程語言有什麼區別?

編程就是通過只給系統一次指令來自由操作系統。我們每天都這樣做。我們教育我們的孩子,我們的士兵,我們的顧客。我們給予他們或接受指示以自由/獨立的方式生活。你的父母不需要跟隨你,指導你在生活中的每一個舉動。他們已經在生活的許多方面給你編程(設定了程式)了。

大多數學校和教育網站都會教授編程語言的語法。它們會添加一些設計模式(儘管您忽略了確切的設計是什麼)、一些算術計算、如何聲明變量以及如何使用變量、數據類型以及如何聲明/創建它們。

這不能教你推理。使用這種方法,在後來您將學會推理方法。這會讓你覺得自己在浪費時間,或者花了很多時間去學習編程。

我們用編程來解決問題,而編程語言就是幫助我們解決問題的工具。

它們就像工具箱。我們稱之爲框架。它們幫助你組織你的思想。

如果您正在學習編程,但仍然無法計劃和編寫真正的應用程序,這意味着您對編程語言的瞭解要多於對編程的瞭解。

有多少次,我們遇到的人(學習者)仍然不知道如何創建一個程序。對於程序員來說,程序是一個需要解決的問題。他通過批判性分析解決了這個問題,甚至在涉及到任何編程語言之前。當您解決任何問題時,它可以用任何編程語言編寫。我們以求平方爲例。爲了求平方,我們自己乘以它。我們可以用各種語言來實現它,比如:

在C語言中

function square(int * x) {
    return x * x;
}

在PHP語言中

function square ($x){
    return $x * $x;
}

在Javascript語言中

function square(x){
    return x * x
}

在Scheme語言中

(define (square x) (* x x))

您可以注意到,語法只有在實現中起作用。結果是一樣的。這也是爲什麼你幾乎可以使用任何編程語言的主要原因之一,在這種語言下,你可以更輕鬆地構建任何類型的軟件。

通過編程探索一門語言更容易

問題通常是人類語言。人類的語言充滿了侷限性和錯誤。因爲機器沒有感覺,所以不可能用它來指導機器。

在學習編程時,您將學習一種新的術語和新工具,以幫助您以計算機或其他程序員能夠理解並同意的方式編寫邏輯。

通常,您會從一個簡單的、類似人類語言的符號“僞代碼”開始。它是人類語言向計算機編程語言過渡的好工具。這通常是爲了防止你在語言上浪費時間。這樣你就會完全專注於推理。通過這些,您將發現組成一個好的編程工具(語言)的核心部分。你知道到底需要什麼。您瞭解編程語言的核心目標。有了它,你在不知不覺中學會了它。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章