開發經驗提升三部曲

編寫了十多年程序,更換了不少平臺,也做了不少項目。總結一下,基本上不停地在學習應用總結這三個循環中逐步提高自己。
簡單的說,開發經驗的提升,基本上逃不出這三個階段:

學習庫測試庫
應用庫解決實際問題
總結一套庫的使用經驗,形成自己的二次開發庫

以最開始學習C語言爲案例吧。
Borland C++/Turbo C中提供了一個庫:graphics.h。
這是一個DOS下,PC平臺的圖像庫。我們當時很多程序需要用到,從課程設計到畢業設計。
這是我們第一次經歷這三個階段。
第一個階段,我們看幫助,看graphics.h頭文件,
自己編寫一些小程序測試graphics.h的功能,瞭解公共參數,熟悉裏面的大多數函數的用法。

第二個階段,應用庫解決實際問題。
比如我的一個大作業,要編寫程序演示信號的變化情況,這就要用到這個庫。
剛好我之前因爲興趣,比較熟悉這個庫,在編寫代碼的時候,就只把精力放在信號處理的核心算法上,
學習庫函數的時間基本上可以忽略了。
通過一系列的開發之後,我有空總結了一下,把自己編寫的和graphics.h相關的,比較通用的函數彙集在一起,
形成了一個自己的二次開發庫,這就進入了開發的第三個階段,
通過這個總結,不但自己把這個庫理解得更清楚了,而且積累了學習和應用的經驗,在將來的開發過程中大大提高了效率。
比如畢業設計中,就有部分是編寫一個小型CAD平臺,就又需要使用這個graphics.h庫。
因爲我自己已經總結了一套二次開發庫,在開發實踐中,拿起來就用,
在項目編寫過程中,主要精力就集中在CAD平臺的數據處理上,圖像顯示部分,已經有成熟的經驗,效率大大提高。

畢業之後,進入實際項目的開發。
基本上每個項目都會學習一個新的庫,因爲一般的設備都提供了一套庫函數供我們開發使用。
也避免不了就要進入上面所說的三個循環:
學習庫測試庫;應用庫解決實際問題;積累了足夠的經驗,慢慢形成了自己的二次開發庫,提高了工作效率。
當然,有的庫簡單得很,只能說積累了應用經驗,沒必要一定要寫出一個二次開發庫來。
即使後來的平臺轉換,實際上,也是這樣的過程。
用ucOS,學習ucOS的運行機制,閱讀它的代碼,也是一個庫的學習過程,然後是應用,總結經驗。
用VxWorks,依然是學習VxWorks原理,然後應用它。
更換到LIUNX平臺,也是同樣的過程。
當我們成爲一個成熟的開發者,這樣的學習和應用,就變得簡單了。
我們換用Visual C++,要學習Windows開發庫和MFC類庫;
我們用Delphi/C++ Builder,就要學習VCL這個組件庫;
……
只不過我們的學習和開發經驗豐富之後,後面的學習,因爲前面的經驗,將變得相當的簡單。

我們來總結一下,這三個階段,其實是不斷的在鍛鍊我們三方面的能力。
學習庫測試庫——→ 鍛鍊我們的學習能力。
特別是有源代碼的庫,通過看高手的編寫成熟的源代碼,你會因爲他們的處理方法和機制學習到很多優秀的開發經驗。
應用庫解決實際問題——→ 提升解決問題的能力。
發散多種算法,選擇最優數據結構,優化代碼提高效率……
總結一套庫的使用經驗,形成自己的二次開發庫——→ 總結與提高的習慣和能力。
嗯,一般人沒有這個抽絲剝繭的習慣,其實很重要。
不管是對應用這套庫,還是使自己思維更清晰,解決問題的能力更強,都是非常必要的。
我們的學習能力,因爲個體的不同而各有異同,總的來說,不斷的學習和找竅門,終究會找到一套自己的快速學習方法。
解決問題的能力,概括來說,就三個方面:發散思維的能力,直覺和經驗積累。
總結與提高,更多的是一種態度和習慣。
我們應該承認個體是有差異的,比如說發散思維的能力和直覺的能力,就可以看出一個人的聰明程度。
但不斷的經驗積累,總結和提高會彌補你的這些方面。
前面有介紹我的開發經歷,其實感覺自己的資質一般得很,但興趣,勤奮,比較踏實逐步彌補了我的缺陷,
而且,經驗的積累,使我很驚訝的發現,直覺和發散思維的能力也在逐步的提高,
越到後面,越能在千頭萬緒中找到解決問題之道,開發效率越來越高。
總結過去,我有一個感慨:勤能補拙是真理,但前提是方法正確。

 
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章