首頁> 頭條> 主體

我今天才知道:學習程式設計和學習程式語言是兩碼事

PHPz
發布: 2020-09-08 15:18:58
原創
4503 人瀏覽過

大多數程式設計師、初學者都以為自己正在學習程式設計,其實不是,而是在走彎路。

你可能正在學習程式語言,而不是程式設計本身

電腦科學不是學習計算機,很震驚吧。相反,它是關於借助計算機來自動解決問題的一門學問。解決問題才是計算機科學,而不是寫程式碼。這就是許多電腦科學專業的學生,似乎不理解他們為什麼學習演算法和數學的原因。

如果你以前上過電腦科學的課,那麼你不會對此感到驚訝。因為你會注意到程式設計與程式語言幾乎沒有關係。思考一下,為什麼偽代碼在這些課程中如此常見。

但大多數程式設計師總是會落入陷阱。我們學了十幾年程式語言,才意識到自己真正需要學的是編程,而我本身就是受害者。

我花了十多年的時間學習各種程式語言。我學的程式語言越多,建立簡單的東西就越困難,我感覺找不到正確的工具。但問題是,當我不知道如何下手時,我忘記了應該去探索要做什麼,而不是尋找正確的工具。

程式語言的奇怪之處在於它們總是在變化。程式語言幾乎每天都在變化,跟進非常困難。而且大多數優秀的程式只用到了程式語言的一小部分。

優先學習程式語言的問題就像在學習木工之前學習如何使用木工鋸、錘子和各種切割機。木工需要注意:想法、可行性分析、測量、測試、使用者使用習慣,老木匠更關注這些。而不是錘子和釘子這些東西。

在對工作進行科學研究期間,他還將花時間檢查釘子、著色劑、木材等的品質。

學習程式設計和學習程式語言有什麼不同?

「程式設計」 透過給予一條指令來使系統自動運作。我們每天都這樣做,我們教導我們的孩子、士兵、客戶。我們發出或收到指令,要求自由或獨立地按照規定的方式進行。你的父母不需要一直跟著你,並指導你生活中的每一步,他們已經在之前生活中的許多方面對你給予過指導(指令)。

大多數學校和教育網站都會教授程式語言的語法。他們還會添加一些設計模式(而你可能恰好忽略了設計模式是什麼)、一些數學計算、如何聲明變數以及如何使用它們,資料類型以及如何聲明和創建它們。

上面說的那些程式語言的知識不會教你程式設計。當你發現時,你會覺得學習程式設計實在浪費時間,大把的時間。

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

它們就像工具箱,我們稱之為框架。它們可以讓你的想法更有條理。

如果你正在學習編程,但仍無法設計和編寫一個實際的應用程序,這意味著你要花更多的時間去學習編程而不是編程語言。

我們遇到過很多人,他們仍然不知道如何設計一個程式。

對程式設計師來說,一個程式是一個需要解決的問題。在涉及任何程式語言之前,需要先認真思考、理解問題。當你無論要解決什麼問題時,其實都可以使用任何一種程式語言來進行編碼(重要的是思考要解決的問題)。

讓我們以計算平方為例。計算一個數的平方,並對自身進行多次乘法計算。我們可以用多種語言來實現它,例如:

用C 語言

function square(int * x) { return x * x; }
登入後複製

用PHP##

function square ($x){ return $x * $x; }
登入後複製

學習推薦:

php程式設計入門影片教學

用JavaScript

function square(x){ return x * x }
登入後複製

學習推薦:

javascript影片教學

用Scheme(一種Lisp 方言)

(define (square x) (* x x))
登入後複製
你會注意到,文法只決定具體實現,而解決問題的方法是相同的。這就是你幾乎可以使用任何你願意使用的語言,建立任何類型的軟體的主要原因之一。

透過程式設計更容易理解一門語言

人類語言是個問題,因為人類語言充滿限制和錯誤,所以機器無法直接理解。

在學習程式設計時,你將學習新的術語和新的工具來編寫邏輯,這樣電腦或其他程式設計師也可以理解並達成共識。

通常,你將從一個簡單的、類似人類語言,被稱作偽代碼的語言開始。它是從人類語言到電腦程式語言的很好的過渡工具,這樣做是為了防止你在程式語言上浪費時間。

如此,你就可以完全專注於問題的本身和解決的邏輯。透過這個過程,你將發現一個好的程式設計工具(語言)的核心部分,你就知道那些是重要的、你所需要的(如果你需要用錘子砸東西,就先學砸東西,釘釘子暫時用不到就先不學)。

這樣一來,你就會在不知不覺間就學會一門程式語言(完全掌握錘子的用法)

翻譯原文:Learning programming is different from learning a programming language: https://phpocean.com/blog/article/learning-programming-is-different-from-learning-a-programming-language/80

【相關文章】

來源:php.cn
本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板
關於我們 免責聲明 Sitemap
PHP中文網:公益線上PHP培訓,幫助PHP學習者快速成長!