首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
您现在的位置: 程式碼之家 >> 編程語言 >  >> C語言 >> VC >> VC 教學

VC++學習經驗:探討編程本質與語言思維

     編輯:VC 教學

前言

最近在網上讀到 leezy_2000 的一篇文章《編程本質》,讀後頗有感觸。其中有些觀點我非常贊同,但也有一些不同看法。既然討論區難以盡述,加上自己早有許多想法想表達,索性寫下這篇文章,希望能與 leezy_2000 以及各位程序員朋友共同探討。

程序設計的四大要素與四個步驟

leezy_2000 將程序設計歸納為四大要素:問題、概念、邏輯和技巧,並以此對應分析、抽象、概要設計、實現四個步驟。從開發流程來看,這確實切中肯綮。

對「編程本質」的不同見解

作者將程序本質歸結為「概念和邏輯」,我卻難以苟同。我更傾向於 cPPTrIEr 的觀點:「編程的本質是問題模型到編程語言的映射」。但這樣描述似乎將程序員簡化為翻譯員,抹殺了創造性。我認為編程本質應是:以編程語言的思想描述、解決現實問題,即 Thinking in Programming Language。

語言與框架:思維的載體與邏輯的封裝

leezy_2000 的描述非常經典:「語言是邏輯的載體和描述工具,框架是對邏輯和概念的一種封裝」。使用不同語言解決同一問題,其邏輯往往截然不同。以 Prolog 為例,這門語言極為特殊,却能輕鬆解決離散數學問題;若由 Prolog 程序員和 C++ 程序員分別解決,邏輯必然大相徑庭。大師曾說:「語言磨砺了我們的思維方式,也決定了我們的思考範圍」,正說明每種語言都內含獨特的描述問題思想與方法。

如何掌握語言的思想?

光讀 Bruce Eckel 的《Thinking in Java/C++》系列只能學到皮毛。必須實踐,寫上幾千、幾萬行代碼。只有在水裡才能學會游泳。好書只能縮短學習過程,不能替代實踐。從未寫過面向對象代碼的人無法真正理解 UML;初學 C++ 或 Java 者僅讀《Design Pattern》也無法掌握設計模式。

實踐:計算機科學的核心

計算機是一門實踐的學科。討論本質固然重要,缺了實踐就會淪為形而上學。微軟高級副總裁 Rick Rashid 仍堅持每年編寫 50,000 行代碼,以保持對前沿技術的敏感。反觀身邊有些小官(項目經理)以編程為恥,實在令人汗顏!

我們是程序工人還是軟件設計師?

設計是工程概念,結果是一組文檔,製造團隊據此構建產品。源代碼是滿足此要求的唯一軟件設計文檔。根據源代碼構建產品成本極低,計算機自動完成,無需工人。流行觀點以為畫 UML 才是設計,編碼不算,這是本末倒置。UML 只是輔助設計文檔,真正的設計文檔是源代碼。因此,我們都是軟件設計師,在設計軟件而非構建軟件(觀點出自 Jack Reeves《源代碼就是設計》)。

詳細設計必須依賴特定語言

設計軟件不能憑空進行,總要以某種編程語言為載體。與語言無關的設計只能算概要設計;詳細設計必須與特定語言相關。

結語

以上只是一家之言,希望能給初學程序設計的朋友一些幫助。

  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved