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

Video Face Swap
使用我們完全免費的人工智慧換臉工具,輕鬆在任何影片中換臉!

熱門文章

熱工具

記事本++7.3.1
好用且免費的程式碼編輯器

SublimeText3漢化版
中文版,非常好用

禪工作室 13.0.1
強大的PHP整合開發環境

Dreamweaver CS6
視覺化網頁開發工具

SublimeText3 Mac版
神級程式碼編輯軟體(SublimeText3)

本站6月24日消息,在6月21日HDC2024華為開發者大會主題演講上,華為終端BG軟體部總裁龔體正式官宣了華為自研倉頡程式語言。語言歷經5年研發沉澱,現已開啟開發者預覽。華為開發者官網現已推出倉頡編程語言官方入門教程視頻,方便開發者初步上手理解。教程將帶使用者體驗倉頡、學習倉頡、應用倉頡,包括用倉頡語言估算圓周率、計算2024年各月的干支紀法、看到二叉樹在倉頡語言中的N種表達方式,以及用枚舉類型實現代數計算、用介面和擴充實現訊號系統模擬,還有用倉頡宏擴展出新語法等等。本站附教學存取位址:ht

本站6月21日消息,在今日下午的HDC2024華為開發者大會上,華為終端BG軟體部總裁龔體正式官宣了華為自研倉頡編程語言,並發布了HarmonyOSNEXT倉頡語言開發者預覽版。這是華為首次公開發布倉頡程式語言。龔體表示:「2019年,倉頡程式語言計畫在華為誕生,歷經5年研發沉澱,大量研發投入,今日終於和全球開發者見面。倉頡程式語言透過現代語言特性的整合、全方位的編譯優化和運行時實現、以及開箱即用的IDE工具鏈支持,為開發者打造友好開發體驗和卓越程序性能。

本站6月21日消息,華為自研倉頡程式語言今日正式亮相,官方宣布開啟HarmonyOSNEXT倉頡語言開發者預覽版Beta招募。本次升級為開發者預覽版嚐鮮升級,提供倉頡語言SDK、開發者指南以及相關的DevEcoStudio插件,供開發者使用倉頡語言開發、調試及運行HarmonyOSNext應用。報名週期:2024年6月21日-2024年10月21日申請要求:本次HarmonyOSNEXT倉頡語言開發者預覽版Beta招募活動,僅開放給以下開發者報名:1)已在華為開發者聯盟完成實名認證;2)完成H

本站6月22日消息,華為昨日向全球開發者介紹華為自研程式語言-倉頡(Cangjie)。這是倉頡程式語言的首次公開亮相。本站查詢獲悉,天津大學、北京航空航天大學深度參與了華為「倉頡」的研發。天津大學:倉頡程式語言編譯器天津大學智能與計算學部軟體工程團隊攜手華為倉頡團隊,深度參與倉頡程式語言編譯器的品質保障研究。據介紹,倉頡編譯器是與倉頡程式語言共生的基礎軟體。在倉頡程式語言的籌備階段,與之相匹配的高品質編譯器成為核心目標之一。隨著倉頡程式語言的演化,倉頡編譯器也不斷升級、改進。五年來,天津大

本站6月21日消息,在HDC2024華為開發者大會前,華為自研倉頡程式語言正式亮相,倉頡官網現已上線。官網介紹顯示,倉頡程式語言是一款面向全場景智慧的新一代程式語言,主打「原生智慧化、天生全場景、高效能,強大安全」。融入鴻蒙生態,為開發者提供良好的程式設計體驗。本站附官網介紹如下:原生智慧化內嵌AgentDSL的程式框架,自然語言&程式語言有機融合;多Agent協同,簡化符號表達,模式自由組合,支援各類智慧應用開發。天生全場景輕量化可縮放運行時,模組化分層設計,記憶體再小也能裝得下;全場景領域擴

C++與其他現代程式語言的優缺點比較為:C++優勢:高效能、低階控制、豐富的函式庫生態系統。 C++劣勢:學習曲線陡峭、手動記憶體管理、可移植性受限。 Python優勢:學習曲線平滑、廣泛的函式庫支援、解譯型語言。 Java優勢:平台無關、自動記憶體管理、廣泛應用。 JavaScript優勢:前端開發必備、輕量、動態型別。

6月21日消息,今天下午,華為開發者大會2024將正式揭幕。 「純血鴻蒙」HarmonyOSNEXT自然是重中之重,按照餘承東之前透露的規劃,今天下午就可能正式宣佈公測,普通消費者也能嚐鮮「純血鴻蒙」了。據爆料,首批支援的手機為Mate60系列和Pura70系列。值得注意的是,作為“純血鴻蒙”,HarmonyOSNEXT去掉了傳統的Linux核心和AOSP安卓開源程式碼,全端自研。據新浪科技最新報道稱,華為還將補齊鴻蒙生態的最後一環,在大

本站6月21日消息,華為自研倉頡程式語言今日正式亮相,並開啟HarmonyOSNEXT倉頡語言開發者預覽版Beta招募。華為官網倉頡程式語言問答頁面顯示,倉頡程式語言是一款面向全場景智慧的下一代應用程式語言,主打原生智能化,天生全場景,高性能以及強安全,與鴻蒙系統結合,提供良好的編程體驗。面向不同業務場景,鴻蒙生態提供應用開發者倉頡和ArkTS等多語言混合開發能力。倉頡和ArkTS共同發展,在鴻蒙生態中形成優勢互補。倉頡更適合有高效能高並發需求的業務場景,倉頡程式語言目標是打造鴻蒙應用在任務並