大多數程式設計師、初學者都以為自己正在學習程式設計,其實不是,而是在走彎路。
你可能正在學習程式語言,而不是程式設計本身
電腦科學不是學習計算機,很震驚吧。相反,它是關於借助計算機來自動解決問題的一門學問。解決問題才是計算機科學,而不是寫程式碼。這就是許多電腦科學專業的學生,似乎不理解他們為什麼學習演算法和數學的原因。
如果你以前上過電腦科學的課,那麼你不會對此感到驚訝。因為你會注意到程式設計與程式語言幾乎沒有關係。思考一下,為什麼偽代碼在這些課程中如此常見。
但大多數程式設計師總是會落入陷阱。我們學了十幾年程式語言,才意識到自己真正需要學的是編程,而我本身就是受害者。
我花了十多年的時間學習各種程式語言。我學的程式語言越多,建立簡單的東西就越困難,我感覺找不到正確的工具。但問題是,當我不知道如何下手時,我忘記了應該去探索要做什麼,而不是尋找正確的工具。
程式語言的奇怪之處在於它們總是在變化。程式語言幾乎每天都在變化,跟進非常困難。而且大多數優秀的程式只用到了程式語言的一小部分。
優先學習程式語言的問題就像在學習木工之前學習如何使用木工鋸、錘子和各種切割機。木工需要注意:想法、可行性分析、測量、測試、使用者使用習慣,老木匠更關注這些。而不是錘子和釘子這些東西。
在對工作進行科學研究期間,他還將花時間檢查釘子、著色劑、木材等的品質。
學習程式設計和學習程式語言有什麼不同?
「程式設計」 透過給予一條指令來使系統自動運作。我們每天都這樣做,我們教導我們的孩子、士兵、客戶。我們發出或收到指令,要求自由或獨立地按照規定的方式進行。你的父母不需要一直跟著你,並指導你生活中的每一步,他們已經在之前生活中的許多方面對你給予過指導(指令)。
大多數學校和教育網站都會教授程式語言的語法。他們還會添加一些設計模式(而你可能恰好忽略了設計模式是什麼)、一些數學計算、如何聲明變數以及如何使用它們,資料類型以及如何聲明和創建它們。
上面說的那些程式語言的知識不會教你程式設計。當你發現時,你會覺得學習程式設計實在浪費時間,大把的時間。
我們用程式設計來解決問題,而程式語言是幫助我們解決問題的工具。
它們就像工具箱,我們稱之為框架。它們可以讓你的想法更有條理。
如果你正在學習編程,但仍無法設計和編寫一個實際的應用程序,這意味著你要花更多的時間去學習編程而不是編程語言。
我們遇到過很多人,他們仍然不知道如何設計一個程式。
對程式設計師來說,一個程式是一個需要解決的問題。在涉及任何程式語言之前,需要先認真思考、理解問題。當你無論要解決什麼問題時,其實都可以使用任何一種程式語言來進行編碼(重要的是思考要解決的問題)。
讓我們以計算平方為例。計算一個數的平方,並對自身進行多次乘法計算。我們可以用多種語言來實現它,例如:
用C 語言
function square(int * x) { return x * x; }
用PHP##
function square ($x){ return $x * $x; }
學習推薦:
用JavaScript
function square(x){ return x * x }
學習推薦:
用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
【相關文章】

熱AI工具

Undresser.AI Undress
人工智慧驅動的應用程序,用於創建逼真的裸體照片

AI Clothes Remover
用於從照片中去除衣服的線上人工智慧工具。

Undress AI Tool
免費脫衣圖片

Clothoff.io
AI脫衣器

AI Hentai Generator
免費產生 AI 無盡。

熱門文章

熱工具

EditPlus 中文破解版
體積小,語法高亮,不支援程式碼提示功能

VSCode Windows 64位元 下載
微軟推出的免費、功能強大的一款IDE編輯器

MinGW - Minimalist GNU for Windows
這個專案正在遷移到osdn.net/projects/mingw的過程中,你可以繼續在那裡關注我們。 MinGW:GNU編譯器集合(GCC)的本機Windows移植版本,可自由分發的導入函式庫和用於建置本機Windows應用程式的頭檔;包括對MSVC執行時間的擴展,以支援C99功能。 MinGW的所有軟體都可以在64位元Windows平台上運作。

SublimeText3 Linux新版
SublimeText3 Linux最新版

DVWA
Damn Vulnerable Web App (DVWA) 是一個PHP/MySQL的Web應用程序,非常容易受到攻擊。它的主要目標是成為安全專業人員在合法環境中測試自己的技能和工具的輔助工具,幫助Web開發人員更好地理解保護網路應用程式的過程,並幫助教師/學生在課堂環境中教授/學習Web應用程式安全性。 DVWA的目標是透過簡單直接的介面練習一些最常見的Web漏洞,難度各不相同。請注意,該軟體中