程式設計師畢生 修煉 四大境界

2021-04-12 22:19:36 字數 1591 閱讀 7764

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 話,你就沒有了解它們的精髓和思想性。

「程式設計師之路漫漫兮,吾將上下而求索」,希望與所有的程式設計師共勉。

程式設計師必備,程式設計師四大忌

一忌 輕易言敗,沒有自信 沒有永不放棄精神的程式設計師,只是乙個有程式設計師名號的假程式設計師。乙個真正的程式設計師,知道在程式設計的過程中,可能會遇到不計其數的困難和問題,可能有極多的挫折和失敗,而成功只有一次。就為解決乙個問題,我們可能連續十幾甚至幾十小時的坐在計算機前不停的工作。乙個問題解決了...

程式設計師四大忌

一忌 輕易言敗,沒有自信 沒有永不放棄精神的程式設計師,只是乙個有程式設計師名號的假程式設計師。乙個真正的程式設計師,知道在程式設計的過程中,可能會遇到不計其數的困難和問題,可能有極多的挫折和失敗,而成功只有一次。就為解決乙個問題,我們可能連續十幾甚至幾十小時的坐在計算機前不停的工作。乙個問題解決了...

程式設計師四大忌

一忌 輕易言敗,沒有自信 沒有永不放棄精神的程式設計師,只是乙個有程式設計師名號的假程式設計師。乙個真正的程式設計師,知道在程式設計的過程中,可能會遇到不計其數的困難和問題,可能有極多的挫折和失敗,而成功只有一次。就為解決乙個問題,我們可能連續十幾甚至幾十小時的坐在計算器前不停的工作。乙個問題解決了...