Delphi開發能力自我評測 日期:2008年11月23日 做者: 人氣:3159 查看:[大字體 中字體 小字體] (注:如下內容都是做者我的的學習經驗和體會,僅表明我的觀點。針對Win32下的Delphi程序開發而言,部份內容或思想也可適用於其它工具或平臺下的軟件開發。)程序員
在程序員的求職資料中,用得最氾濫的詞多是「熟悉」和「精通」了。評價一個程序員的綜合能力並不容易,下面的文字試圖以Delphi程序開發爲例定義一種描述程序員開發能力的方法。算法
1、學習階段劃分。數據庫
根據我我的的經驗,Delphi程序設計分爲如下幾個階段:編程
一、 熟悉階段。網絡
這一階段指從未接觸過Delphi的人,剛開始學習到初步掌握Delphi的語法、可視化編程、面向對象編程的概念、Delphi IDE開發環境、基本代碼編寫、程序結構的過程。框架
熟悉階段結束後,學習者應該能夠編寫簡單的程序,同時對整個Delphi開發環境有必定的瞭解,但還不能從事開發工做。工具
根據學習者是否有編寫其它語言代碼的經驗、是否接觸過面向對象編程等因素,這一過程可能須要數天到數十天的時間。學習
二、 入門階段。開發工具
在熟悉Delphi後,入門的標誌是學習者能夠有目的地利用Delphi強大的可視化開發環境、結合一些常規的代碼編寫技術,編制一些小型的程序,或是完成簡單的數據庫應用。同時,還應掌握基本的程序調試方法。測試
入門後,程序員能夠從事簡單的開發工做,或擔任中小型系統的用戶界面設計及簡單代碼的編寫任務。
一樣,若是沒有代碼編寫經驗,這一過程將須要一個月或更多的時間。
三、 進階階段。
至關多的程序員處於進階階段,他們經過常常性地開發工做,積累代碼編寫和程序調試經驗,經過各類途徑尋找各種代碼編寫技巧。每一個人根據自已從事的工做或興趣,在某一方面或幾個方面大量的實踐,能夠獨立開發小型、技術含量不高的系統,或在大中型系統中負責普通代碼的編寫。
絕大部分的在職程序員處於這一階段,若是一個程序員不是有目的地在學習、工做中總結、提升,可能很長時間、數年甚至終生處於這一階段。
四、 小成階段。
只有系統地掌握了Delphi的結構體系,從實踐上升到理論,有本身完整的編程思想和風格,或是在深度上達到了至關水平、或是在廣度上有了至關經驗,知識達到融會貫通的地步,纔算小有所成。
此時,在代碼編寫方面,只要有時間,程序員幾乎能夠實現全部想作的東西。不少功能,均可以舉出幾種實現方法並從效率、可讀上優化選取。
除了Delphi,程序員應該對操做系統有至關深刻的瞭解,能在短期內學會新的知識並加以應用,能夠讀懂絕大部分Delphi源碼,完成複雜程序的調試。
若是向深度發展,程序員應該能夠編寫出具備必定水平的組件、專家或較專業的程序。若是向廣度發展,則能夠完成中小型的開發任務,或是大中型系統中的核心代碼編寫以及大部分系統分析工做。
這一階段幾乎是沒有現成經驗可學的,徹底靠我的的修行和領悟,小有所成後程序員在軟件方面可獨擋一面。
五、 大師級。
若是前面四個階段在某種程度上均可以看作是「應用」的話,大師級的程序員就處於「設計和創造」這一層次。
他們已到技進乎道的境界,能夠把Delphi玩得爲所欲爲,能夠創造新的東西,把握髮展方向,隨手寫的代碼均可以當教材用。Borland公司的工程師、國外一些著名軟件、控件包的做者、以及國內少數程序員屬於這一階段。
2、代碼閱讀分析能力。
對一個程序員來講,讀懂別人寫的代碼是一項基本的能力。不只包括閱讀寫得好的程序,也包括閱讀寫得通常甚至低劣的代碼。
代碼閱讀分析又可分爲三個層次,一是代碼自己的閱讀能力,二是代碼編寫思想的理解能力,三是算法模型分析設計能力。
要看懂一段代碼的做用和功能,首先本身應該擁有大量的代碼閱讀編寫經驗,而後是從手冊資料中快速得到所需信息的能力。然而,僅有這些,不少優秀的代碼仍然不易理解,這就須要程序員的宏觀分析和聯想能力。
和其它全部事物同樣,不少代碼也只有在特定環境中才有其存在的意義。有經驗的程序員在拿到一段代碼後並不急於立刻閱讀,而是在理解代碼所在單元甚至工程的功能後再有目的地分析,從宏觀(系統框架結構)和微觀(具體代碼)上分析做者的設計意圖、框架結構、實現方法,從中汲取經驗或對代碼編寫質量進行評估。
再深刻一些, 是代碼和軟件的算法設計。給你一段DES加密算法、UCL壓縮算法或MCNN多層分組神經網絡的實現代碼,若是你沒有相關的理論知識作基礎,即便有源算法模型也是沒法看懂的。
3、代碼編寫調試能力。
程序設計能力通常指的就是代碼編寫調試的能力,程序員的代碼直接表明了他的編程水平。
一、 代碼編寫規範。
代碼、註釋的書寫是否規範直接反映出一個程序員對程序設計的態度。不一樣的組織定義了不一樣的代碼編寫規範,但從外觀上看,寫得好的代碼看起來都差很少一個模樣,而糟糕的代碼則五花八門。
二、 程序框架和算法結構。
不少程序員在一開始編寫代碼時缺少對開發目標的細緻分析和策劃,邊寫邊改,結果寫出的代碼結構冗長、算法凌亂、可讀易維護性差,特別是在多人開發時很容易致使開發中後期進展緩慢甚至陷入僵局。優秀的程序員代碼書寫簡練、算法清晰、結構合理,他們善於利用編譯器強大的語法檢查功能減小潛在的錯誤,並在設計編寫代碼時充分考慮程序的可移植性和升級能力。
三、 軟件測試和代碼調試能力。
調試複雜代碼的能力一樣是區分程序員能力的重要因素。同一段有問題的代碼,不一樣的人調試的時間可能相差數倍甚至數十數百倍。特別是組件開發等不可視代碼的調試,要求一個沒有太多經驗的程序員完成是不現實的。而一個優秀的程序員同時也應該是一個優秀的測試員,發現問題的能力和解決問題的能力一樣重要,儘管並非全部人都能認識到這一點。
4、程序員類型。
從程序員所從事的工做及興趣來看,可將其簡單地劃分爲:
一、 應用型。
又可分爲以「其它領域結合軟件開發」爲主和以「軟件開發結合其它領域」爲主兩種。
前者有本身的專業知識,但不知足於簡單的操做應用,而利用VB、Delphi等開發工具的強大RAD能力開發與本身專業相關的軟件。後者的工做是將計算機技術應用於其它領域,主要爲企業編寫各類基於商業數據庫及網絡通信或一些自動化控制應用的軟件。
應用型程序員通常是「廣度型」發展的,他們並不注重系統底層知識的學習,而重在「應用」,利用開發工具來實現「行業規則」而不須要閱讀編寫底層、複雜的代碼。
二、 技術型。
這一類型的程序員是純軟件技術型的,他們的開發焦點集中在計算機軟件自己上,屬「深度」發展型。
技術型程序員大多追求完美、吹毛求疵,對他們來講,花上數小時的時間優化一段代碼,使程序執行效率提升10%是一件很愜意的事。技術型程序員通常重名重義不重利,喜歡自由,不肯受現有框架的約束,往往有驚人之舉,他們大多特立獨行或在軟件開發中負責核心代碼編寫,而這個世界也因這些程序員的存在而變得美麗。
三、 創造型。
創造型程序員結合了應用與技術型的特色。
他們既有精明的商業頭腦,又有強勁的技術實力,既是管理人才又是技術人才,是煊赫一時的人物。關於他們的描述媒體上已有不少,再也不贅述。