作者:zooboole
英文原文:《Learning programming is different from learning a programming language》
我們都是程式員,也是學習者,令人驚訝的是,如此多的人以為自己在學習編程,卻已經步入歧途,
你可能正在學習編程語言,而不是編程本身
大家都知道計算機科學不是研究計算機,它反倒是利用計算機研究自動解決問題的,問題解決是計算機科學,不是編程,這就許多計算機科學專業的學生似乎不理解他們為什么要學習演算法或數學的原因,
如果你以前上過計算機科學課,你就應該知道我在說什么,因為你會注意到編程與編程語言幾乎沒有關系,問問自己為什么偽代碼在這些課程中如此常見,
但是,大多數自以為是的程式員總是落入陷阱,在意識到進行編程時到底什么是應該要做的之前,我們學習了幾十年的編程語言,我自己也是受害者,
我花了十多年的時間一點一點地學習各種編程語言,我學的越多,就越難以簡單的方式解決問題,我以為是沒有找到合適的工具,但問題是,當我甚至還不知道這個作業要做什么時,就去尋找合適的工具,而忘記了找出真正的作業是該做什么,
編程語言的奇怪之處在于它們總是在不斷發展,編程語言幾乎每天都在變化,跟進很難,而大多數優秀的程式只使用了編程語言的一小部分,
首先,學習編程語言的問題就像在學習木工之前學習如何使用木工鋸,錘子和各種切割機器,木工需要注意:想法,可行性分析,測量,測驗,客戶行為,資深木匠感興趣的事物不止于錘子和釘子,在他對這項作業的研究中,還需要時間來檢查釘子、著色劑、木材等的質量,
C/C++的學習裙【七一二 二八四 七零五 】,無論你是小白還是進階者,是想轉行還是想入行都可以來了解一起進步一起學習!裙內有開發工具,很多干貨和技術資料分享!
學習編程和學習編程語言的區別是什么呢?
編程是通過一次下達指令來設定一個系統自動運行,我們每天都這樣做,我們教我們的孩子,命令我們的士兵,服務我們的客戶,我們給予或收到指示,以自由/獨立的方式生活,父母不需要跟隨并指導你在生活中所做的每一個動作,他們可能已經在生活的許多方面為你編程了,
大多數學校和教學網站都會教授編程語言的語法,他們可以添加一些設計模式(當你忽略究竟是什么設計時)、一些算術計算,教你如何宣告變數以及如何使用它們;教你如何宣告資料型別以及創建它們,
這并不能教你推理,但后來,您將會遇見推理方法,使用那些方法來學習,會讓你覺得是浪費生命或者花了很多時間來學習編程,
我們用編程來解決問題,編程語言是幫助我們達到目的工具,
它們就像工具箱,我們稱之為框架,幫助你組織你的思維,
如果你正在學習編程且仍然無法設計和撰寫真實應用程式,那么這就意味著你正在學習編程語言而不是編程,
我們經常會遇到想知道如何創建程式的學習者,對于程式員來說,程式是一個問題求解,在使用任何編程語言之前,他通過關鍵分析解決了問題,當你解決任何問題時,你可以用任何編程語言來編碼,我們來看看平方求解的案例,為了求解平方,我們將它與自己相乘,我們可以用各種語言實作它,例如:
C語言
int square(int x)
{
return x*x;
}
PHP語言
function square ($x){
return $x * $x;
}
Javascript語言
function square(x){
return x * x
}
Scheme(a Lisp dialect)語言
(define (square x) (* x x))
您應該注意到實作中只有語法是不一樣的,解決方案是一樣的,這也是你幾乎可以使用任何編程語言的主要原因之一,在這種語言中你可以更輕松地構建任何型別的軟體,
編程可以讓你更容易理解一門語言
通常,問題出在人類語言,它充滿了局限和錯誤,人類語言不能用來指令機器,因為它們不理解,
你學習編程時,是在學習一種新術語和工具,來幫助你以計算機或其他程式員可以理解和同意的方式撰寫邏輯,
通常,你將從簡單且類似人類語言的符號--偽代碼開始,它是從人類語言到計算機編程語言的良好過渡工具,這通常是為了避免浪費時間在具體的編程語言上,這樣你可以完全專注于推理,通過它,你將發現構成良好編程工具(語言)的核心部分,你知道了真正需要的是什么、掌握了編程語言的核心目標,在編程實踐程序中,你會不知不覺地就學會了這門編程語言,
在原文的基礎上改正了C語言函式語法的錯誤,如果還有其他地方有錯誤請大家指正,
如果你也想要學習編程,掌握炫酷技能,小編推薦一個C/C++技術交流群【點擊進入】!
涉及到了:編程入門、游戲編程、網路編程、Windows編程、Linux編程、Qt界面開發、黑客等等......
轉載請註明出處,本文鏈接:https://www.uj5u.com/qita/241263.html
標籤:其他
