C程式設計師要學C 嗎?

2021-09-03 05:33:53 字數 1170 閱讀 2548

最近網友問到這一問題,但我更希望被問的是「c程式設計師需要學物件導向程式設計嗎?」,那就讓我先從回答這一問題開始,並做適當的擴充套件。

就我的成長經歷來看,c程式設計師必須學習物件導向程式設計!物件導向程式設計語言有其天然的乙個優勢 — 將軟體世界的一切象現實世界那樣視為物件。我在《專業嵌入式軟體開發》一書的《設計,質量之本》一章中指出,軟體設計的乙個原則是「以人為本」,在軟體世界中構建現實世界就能很好地貫徹這一原則,而物件在程式語言中的引入提供了設計便利性。物件的引入使得程式語言具有更具結構化的表達能力,這有助於提高程式的可維護性。

從c程式設計師的角度來看,通過使用物件能讓程式更具模組性,而模組化是我們所倡導的很重要的軟體開發方法之一。一旦掌握面象物件程式設計,c程式設計師的設計能力通常會有較大幅度的提公升。這種提公升使得即便是用c語言程式設計也能寫出更具模組化的**。這是我主張c程式設計師一定要學習物件導向程式設計的根本原因。

然而,儘管物件導向程式設計這種方法有其優勢,但學習起來並不那麼的容易,尤其對於從c語言過渡到c++的程式設計師。學習的第乙個難點在於,面象物件程式設計與面向過程程式設計(指c語言)具有完全不同的思維方式。其差異性類似於對於使用拼音輸入法的人來說第一反應是為字拼音,而使用五筆輸入法的第一反應卻是將字拆成字根。象練習五筆輸入法那樣,學習物件導向程式設計需要一定的時間通過模仿和實踐去掌握物件導向的思維方法。在沒有掌握物件導向程式設計方法之前,我們會認為它比面象物件程式設計複雜,且覺得很繞。然而,一旦掌握,你會發現它又是那樣的自然。

學習的第二個難點,在於c++語言本身上。c++程式語言應是最複雜的系統程式語言,這可從《effective c++》、《more effective c++》、《exceptional c++》和《more exceptional c++》等書加起來有近200個程式設計規則可以看出。語言的複雜性增加了掌握它的難度。如果不使用像pc-lint這樣的靜態分析工具,我們很難寫出專業的c++程式。

除了c++語言本身的複雜性,c程式設計師在轉向c++時,由於c++對c語言語法的相容,使得我們容易犯使用c++編寫面向過程程式的錯誤。這在某種程度上不利於我們更快地掌握物件導向程式設計。

優雅的程式語言有助於收斂我們的程式設計行為,從而寫出更好的程式。但真正決定程式可讀性的,是程式設計師的邏輯思維是否清晰和表達是否精確。再好的程式語言,邏輯混亂和表達不精確的程式設計師一定會將程式寫成「狗皮膏藥」。從這一點來看,儘管c++倍受爭議,但還是值得c程式設計師去掌握。另外,在乙個c專案上我們可以無縫地使用c++,相信這是c程式設計師選擇c++很重要的原因。

程式設計師要怎樣學英語

第一,既要看 也要讀文件。讀文件唯讀 是很多程式設計師的習慣,也是導致程式設計師雖然讀了很多英文資料,英文水平卻沒有相應提高的原因之一。以前曾在 程式設計師 上看到介紹閱讀技術圖書方法的文章,提出過 先 後文字 的方法,也就是 先看 看不明白再看文字 這種閱讀法能極大提高閱讀效率,但如果技術圖書只看...

程式設計師要如何學英語?

一般來說,程式設計師 讀文件唯讀 是很多程式設計師的習慣,也是導致程式設計師雖然讀了很多英文資料,英文水平卻沒有相應提高的原因之一。以前曾在 程式設計師 上看到介紹閱讀技術圖書方法的文章,提出過 先 後文字 的方法,也就是 先看 看不明白再看文字 這種閱讀法能極大提高閱讀效率,但如果技術圖書只看 就...

20120611我是C 程式設計師嗎

昨天剛看到 乙個最容易導致 走向臃腫的原因,需求總是一點一點的擠進來,導致每次都修改一點或新增一點就搞定了,而又不想去重構 怕引入新的bug。導致了 一行一行增加,最後亂得一塌糊塗。另乙個原因就是一開始總是想快速實現,這是乙個好的想法,但快速實現後需要重構結合。快速實現後不回頭重構的 是很糟糕的,不...