程式設計師的三種境界

2021-06-27 00:49:52 字數 3041 閱讀 2936

國學大師王國維先生認為古今成大事業、大學問者,必經過三種境界,第一種境界:

「昨夜西風凋碧樹。獨上高樓,望盡天涯路

」;第二種境界:

「衣帶漸寬終不悔,為伊消得人憔悴

」,第三種境界:「」

。一代宗師真是體察入微,寥寥數語,道盡了求道者的心路歷程,將乙個人由淺嚐、迷茫到徹悟的過程盡數概括,可謂入木三分。

it行業可謂現在的熱門行業,

程式設計師也是很多人羨慕的工作。薪水高,不用東跑西顛,敲敲鍵盤,看看螢幕,一切工作全都搞定,輕鬆而方便。果真如此嗎?不盡然,實際上,程式設計師的職業生涯也是乙個求道的過程,需要不斷的提高和學習,it

行業知識更新之快,常讓程式設計師們有隨時掉隊的危險,無一日不戰戰兢兢,不敢稍有懈怠。

程式設計師的職業生涯也可分為四個階段,初級程式設計師(菜鳥)

、高階程式設計師

(熟練工

)、系統程式設計師(高手

)、軟體大師(大師

),其作品也     經歷四種境界:

·可以執行的程式

·健壯、高效的程式

·結構優美的程式

·思想深邃的程式

程式設計師的必經第乙個階段都是編寫可以執行的程式。很多人的程式設計生涯是從「hello world」

開始,當第一次按照教科書上的步驟,將原始檔編輯完後,編譯、連線、執行,在螢幕上顯示出

「hello world」

時,心中的激動一點也不亞於阿里巴巴開啟了寶庫的大門。初級程式設計師的目標一般是讓程式能執行起來,他們迷惑於庫函式的眾多,不知道該用那乙個,他們還要學習基本的語法,以使程式編譯通過。初級程式設計師一般不會考慮設計模式、軟體結構等問題。程式設計師菜鳥的時候編寫的第乙個較大的程式是本人的本科畢業**題目——

乙個計算機輔助實驗系統,開發工具為

turbo c

,在dos

下開發(

那個時候

windows

還不太流行

),整個軟體大約

7000

行**,在當時已經能幹不少事,在

dos下也能顯示不少花裡胡哨的圖形介面,支援中文,支援滑鼠操作

(那時候在

dos下需要自己處理滑鼠事件中斷

),當時還頗受好評。可是今天再重新溫習過去的作品,真有點摻不忍睹,整個軟體毫無結構可言,一共分成兩個原始檔還是由於編譯器不支援乙個太大的原始檔而被迫分開,整個系統就是源**的簡單堆砌。相信每個程式設計師都需要經歷這個階段,它是程式設計師職業生涯的開始,沒有捷徑可以跨越,只有不斷的實踐、學習和總結。

第二階段的程式設計師已積累了不少的程式設計經驗,語法和庫函式不再是障礙,他們已不再滿足於程式正確執行、功能實現無誤。他們需要了解程式背後發生的事情,需要了解作業系統的原理和排程機制,需要了解怎麼樣才能開發出更安全的程式,這個階段的程式設計師往往還不懂得如何保護自己的程式,因此需要借助第三方安全平台

去給程式做加密保護。同時還要了解記憶體管理,檔案系統組織等;了解開發工具的細節,如c

的函式呼叫機制,引數的傳送機制、堆疊的建立過程等;了解

c++的封裝、繼承和多型性背後的機制,虛函式實現機理等。他們不僅知道程式應該如何執行,還知道它為什麼這樣執行,能編寫高效、魯棒的程式。

第三階段的程式設計師能構建結構優美的軟體系統,軟體系統結構的合理性、可擴充套件性、可維護性、可測試性是系統程式設計師考慮的重點,結構優美的軟體系統同一棟完美的建築群一樣,每個部分各司其職,搭配合理。本人一直認為,乙個好的軟體系統應當具有美學特徵,如簡潔、和諧、層次感等,乙個好的軟體系統應當是簡潔的,易於理解的;應當是和諧的,每個部分高內聚、低耦合,既分工又合作;應當是層次分明,易於維護和移植。所以,本人建議那些進行軟體系統設計的程式設計師, 當你設計完乙個系統後,需要問問自己:"

它美嗎?

",如果答案是否定的,那麼我建議你需要重新考慮系統的設計,如果答案是肯定的,那麼,恭喜你,你已經達到乙個相當高的水平。

最後一級也許是每個程式設計師夢想達到的頂峰,程式設計不再是簡單的工具,而是大師們改變世界的魔杖,從c

到c++

,再到com

和cobra

,再到xml 

和web services

,每次改變,不是軟體語法和開發工具的公升級,而是用軟體構建現實世界模型的改變,是一種軟體思想的革命,軟體具有了靈魂和智慧型。如果沒有 理解這一點,認為

c++只是更好的c,

com只是更好的

c++話,你就沒有了解它們的精髓和思想性。

五流程式設計師比技術和工具

五流程式設計師關心的是用什麼工具可以產生什麼結果,他們知道用safe.ijiami

可以去輕鬆檢測下程式的漏洞,而不用再去乙個個**的扒拉修bug

,使用工具可以大大提高效率、節省時間!然後去追逐他聽過最新、最好、最時髦的技術,沉浸於一些小的練習,卻很少走出象牙塔和客戶或市場進行真正的溝通,甚至完成大型的真實案例。

四流程式設計師比較整合和管理

四流程式設計師比前者更關心在什麼地方使用什麼,他的心裡放著整合各種技術的地圖,而不偏向單一工具或技術,他在乎運作一場戰役的風險,還有資金成本的考量,包含開發時間、維護難易、使用者培訓或是市場推廣……

三流程式設計師比創意和設計

三流程式設計師不僅要求把事情「做完」

,同時要求自己把事情「做好

」,他的作品裡充滿著感動和生命,即使好幾年以後重新來過,你依然會覺得那些創意和設計,突破了時空限制,只能模仿無法取代。

二流程式設計師比溝通和性格

二流程式設計師跳脫工具,比人際溝通,他知道怎樣和老闆溝通,怎麼和同事溝通,也知道怎麼和客戶溝通。他有乙個成熟且穩定的性格,讓任何人跟他在一起做事都有安全感,並且感到快樂。

一流程式設計師比態度和方法

一流程式設計師比的是學習態度和方法,包括對自我控制的能力,也就是紀慮,我們不看他做出來什麼事,而是看他準備怎麼怎麼去做,包含解決問題需要的時間,還有學習新事物的方法。

只要他掌握了適合他自己學習的態度和方法,那麼他可以從任何時刻開始學習,並且展現最好的結果,至於現在會不會,懂不懂都不重要,因為只要他想要,他就隨時可以要,也能要得到。無論你用或不用,學或不學,好資源就在那裡

超級程式設計師比思想和素質

程式只是語言的表述,而語言則是思想的淬鍊。

超級程式設計師不僅改變我們的行為,也企圖改變我們的思想。你不需要從超級程式設計師的**判斷他的素質,而是從他寫的字,他說的話去感受他,因為沒有那個思想到不了那個境界。

三種糟糕的程式設計師

有三種糟糕的程式設計師。第一種是經驗能力不足。這個最好辦,努力便可。第二種是只有一定經驗能力但卻自認才高八斗,影響了自己提高。第三種最可怕。這種人有自己一套似是而非,但貌似極強的邏輯思維,愛把事情複雜化還特別固執。可是任何事他總是做得很糟,或者用一套根本不合適但非常複雜的邏輯去做 第三種具有怪異且複...

程式設計師的四種境界

it行業可謂現在的熱門行業,程式設計師也是很多人羨慕的工作。薪水高,不用東跑西顛,敲敲鍵盤,看看螢幕,一切工作全都搞定,輕鬆而方便。果真如此嗎?不盡然,實際上,程式設計師的職業生涯也是乙個求道的過程,需要不斷的提高和學習,it行業知識更新之快,常讓程式設計師們有隨時掉隊的危險,無一日不戰戰兢兢,不敢...

程式設計師的六種境界 摘抄

五流程式設計師比技術和工具 五流程式設計師關心的是用什麼工具可以產生什麼結果,追逐他聽過最新 最好 最時髦的技術,沉浸於一些小的練習,卻很少走出象牙塔和客戶或市場進行真正的溝通,甚至完成大型的真實案例。四流程式設計師比整合和管理 四流程式設計師比前者更關心在什麼地方使用什麼,他的心裡放著整合各種技術...