• 程序員的三種境界

    0
    程序員 百度 C/C++ Go 8914 次瀏覽
         國學大師王國維先生認為古今成大事業、大學問者,必經過三種境界,第一種境界:昨夜西風凋碧樹。獨上高樓,望盡天涯路;第二種境界:衣帶漸寬終不悔,為伊消得人憔悴,第三種境界:眾里尋他千百度,驀然回首,那人卻在燈火闌珊處。一代宗師真是體察入微,寥寥數語,道盡了求道者的心路歷程,將一個人由淺嘗、迷茫到徹悟的過程盡數概括,可謂入木三分

            IT行業可謂現在的熱門行業,程序員也是很多人羨慕的工作。薪水高,不用東跑西顛,敲敲鍵盤,看看屏幕,一切工作全都搞定,輕松而方便。果真如此嗎?不盡然,實際上,程序員的職業生涯也是一個求道的過程,需要不斷的提高和學習,IT行業知識更新之快,常讓程序員們有隨時掉隊的危險,無一日不戰戰兢兢,不敢稍有懈怠。  
            程序員的職業生涯也可分為四個階段,初級程序員(菜鳥)、高級程序員(熟練工)、系統程序員(高手)、軟件大師(大師),其作品也     經歷四種境界: 
            ·可以運行的程序  
           ·健壯、高效的程序  
           ·結構優美的程序  
           ·思想深邃的程序  
            程序員的必經第一個階段都是編寫可以運行的程序。很多人的編程生涯是從“Hello World”開始,當第一次按照教科書上的步驟,將源文件編輯完后,編譯、連接、運行,在屏幕上顯示出“Hello World”時,心中的激動一點也不亞于阿里巴巴打開了寶庫的大門。初級程序員的目標一般是讓程序能運行起來,他們迷惑于庫函數的眾多,不知道該用那一個,他們還要學習基本的語法,以使程序編譯通過。初級程序員一般不會考慮設計模式、軟件結構等問題。程序員菜鳥的時候編寫的第一個較大的程序是本人的本科畢業論文題目——一個計算機輔助實驗系統,開發工具為Turbo C,在DOS下開發(那個時候Windows還不太流行),整個軟件大約7000行代碼,在當時已經能干不少事,在DOS下也能顯示不少花里胡哨的圖形界面,支持中文,支持鼠標操作(那時候在DOS下需要自己處理鼠標事件中斷), 當時還頗受好評。可是今天再重新溫習過去的作品,真有點摻不忍睹,整個軟件毫無結構可言,一共分成兩個源文件還是由于編譯器不支持一個太大的源文件而被迫 分開,整個系統就是源代碼的簡單堆砌。相信每個程序員都需要經歷這個階段,它是程序員職業生涯的開始,沒有捷徑可以跨越,只有不斷的實踐、學習和總結。  
            第二階段的程序員已積累了不少的編程經驗,語法和庫函數不再是障礙,他們已不再滿足于程序正確運行、功能實現無誤。他們需要了解程序背后發生的事情,需要 了解操作系統的原理和調度機制,需要了解怎么樣才能開發出更安全的程序,這個階段的程序員往往還不懂得如何保護自己的程序,因此需要借助第三方安全平臺去給程序做加密保護。同時還要了解內存管理,文件系統組織等;了解開發工具的細節,如C的函數調用機制,參數的傳送機制、堆棧的建立過程等;了解C++的封裝、繼承和多態性背后的機制,虛函數實現機理等。他們不僅知道程序應該如何運行,還知道它為什么這樣運行,能編寫高效、魯棒的程序。 
            第三階段的程序員能構建結構優美的軟件系統,軟件系統結構的合理性、可擴展性、可維護性、可測試性是系統程序員考慮的重點,結構優美的軟件系統同一棟完美 的建筑群一樣,每個部分各司其職,搭配合理。本人一直認為,一個好的軟件系統應當具有美學特征,如簡潔、和諧、層次感等,一個好的軟件系統應當是簡潔的, 易于理解的;應當是和諧的,每個部分高內聚、低耦合,既分工又合作;應當是層次分明,易于維護和移植。所以,本人建議那些進行軟件系統設計的程序員, 當 你設計完一個系統后,需要問問自己:"它美嗎?",如果答案是否定的,那么我建議你需要重新考慮系統的設計,如果答案是肯定的,那么,恭喜你,你已經達到一個相當高的水平。  
            最后一級也許是每個程序員夢想達到的頂峰,程序設計不再是簡單的工具,而是大師們改變世界的魔杖,從CC++,再到COMCOBRA,再到XML WEB SERVICES,每次改變,不是軟件語法和開發工具的升級,而是用軟件構建現實世界模型的改變,是一種軟件思想的革命,軟件具有了靈魂和智能。如果沒有 理解這一點,認為C++只是更好的CCOM只是更好的C++話,你就沒有了解它們的精髓和思想性。

            五流程序員比技術和工具

            五流程序員關心的是用什么工具可以產生什么結果,他們知道用Safe.ijiami可以去輕松檢測下程序的漏洞,而不用再去一個個代碼的扒拉修bug,使用工具可以大大提高效率、節省時間!然后去追逐他聽過最新、最好、最時髦的技術,沉浸于一些小的練習,卻很少走出象牙塔和客戶或市場進行真正的溝通,甚至完成大型的真實案例。

            四流程序員比較整合和管理

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

            三流程序員比創意和設計

            三流程序員不僅要求把事情做完,同時要求自己把事情做好,他的作品里充滿著感動和生命,即使好幾年以后重新來過,你依然會覺得那些創意和設計,突破了時空限制,只能模仿無法取代。

           二流程序員比溝通和性格

           二流程序員跳脫工具,比人際溝通,他知道怎樣和老板溝通,怎么和同事溝通,也知道怎么和客戶溝通。他有一個成熟且穩定的性格,讓任何人跟他在一起做事都有安全感,并且感到快樂。

            一流程序員比態度和方法

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

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

            超級程序員比思想和素質

            程序只是語言的表述,而語言則是思想的淬煉。

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

    相似問題

    相關經驗

    相關資訊

    相關文檔

  • sesese色