HOME 回資訊服務處首頁 Login
2008年第14期
簡訊
第27屆院士選舉電子開計票作業順利完成
提供院士會議期間資訊設備與連網服務
7/24舉辦「資訊室主管及管理者經驗交流第4次座談會」
圖書館系統My Record Feeds上線服務
「網路影音服務」新增2場活動內容
「2008年電腦圖學研討會」7/24-25假嘉義大學舉行
網路應用
本院Webmail使用說明(中)
資訊新知
Firefox 3 正式版推出
資訊話題
軟體開發工程師的十大特質(下)
 
資訊話題 >
上一篇 | 返回電子報
 
軟體開發工程師的十大特質(下)
 
吳信輝

特點七:專注在可用性上
  
 一個軟體程式能否受到使用者的喜愛與使用,與該程式是否依據使用者的「使用工學」所設計【註22】關係密切。
  
 有的軟體開發工程師只依據規格書寫程式,而沒有注意到自己寫出來的程式是否符合使用者的操作習慣【註23】。有些軟體開發工程師會這樣爭論,我的本行就是程式邏輯的撰寫,有關於操作介面與流程的設計並不在我的責任範圍之內。這一個問題在網路應用程式日漸變成主流的今日更加凸顯,筆者也曾經深深為此所困擾。不過,只要用心去瞭解可用性的概念,用心體會並設計,一定可以突破這個障礙。一個有經驗的軟體開發工程師同時也會專精於可用性的
設計上。
  
 建議書籍,多讀一些有關於可用性工程的相關書籍,從原理去瞭解,將使我們可以更抓得住使用者的心,請參考【註24】。

特點八:必須寫出可以維護的程式碼
   
 軟體程式的開發常常是動態的、團隊組織的,你所撰寫出來的程式碼不但要可以執行規格書中所要求的功能,重點還要是可以跟你的設計團隊融合在一起的。「一套軟體的生命期80%都是花費在維護上;任何軟體都很難從頭到尾全由原來的作者來維護」。

 什麼是可以維護的程式碼呢?簡單地說:「一個軟體開發工程師的品質,在於能否寫出條理一致、易讀的程式碼」。如何撰寫可以維護的程式碼,最基本的原則就是遵循所謂的「程式碼慣例【註25】」,程式碼慣例因團隊或是軟體公司的文化而異。軟體開發工程師不但要有自己的一套,也就是自己的一致化程式碼撰寫風格之外,還需要依據不同的團隊或是公司的需求,去符合他們的程式碼撰寫慣例,以寫出有品質的、可以維護的程式碼。
  
 建議書籍,有關於軟體可維護的概念說明書,其中包含了理論與實際應用的部份,請參考【註26】。

特點九:可以在不同程式語言撰寫程式
  
 一個好的軟體開發工程師除了要有最專精的程式語言之外,還需要有轉換不同語言的能力。閱讀過「程式語言Programming Language【註27】」相關書籍或是修過相關課程的,都會對程式語言的基本架構與不同語言間的特性有所瞭解。瞭解程式語言的基本架構之後,將讓你在學習一個語言後,可以迅速地學習其他的程式語言。不同的程式語言有不同的特性,軟體開發工程師可能會面臨不同的軟體需求,需要應用不同的程式語言進行實作,這時候軟體開發工程師的價值就會凸顯出來;同時,擁有這樣的特點的軟體開發工程師,也代表不容易被日新月異的科技所淘汰。因為,新的程式語言雖然不斷地推出或演變,但是你總是可以迅速地上手,迎接新的挑戰。
  
 以筆者的經驗來說,有些美國大學的基礎程式語言雖然是教C/C++,但他們的程式語言基礎卻教得很深厚,他們會花第一年與第二年的大學課程來進行打底的工作,進入高年級之後的專案,可能就會以Python或是Java進行,以確保他們的實作與往後進入業界的競爭力。
  
 建議書籍,一本有關於介紹程式語言概念的書,其中會很詳細地說明程式語言的發展歷史與程式語言的架構,請參考【註28】。

特點十:必須瞭解基本的電腦科學基礎
  
 一個好的軟體開發工程師必須瞭解電腦科學中最基本的兩個學科:資料結構與演算法。例如:處理一個大量資料(Large Scale)的問題,必須會想到利用Hashtable【註29】來進行有效率的儲存。鏈結串列(Link-List)與陣列(Array)在資料儲存的優點與缺點,何時要利用鏈結串列,何時要利用陣列來儲存
資料等。學習過演算法才會設計一個有效率的程式,而非只是寫出一個符合功能的軟體程式而已。上述這些都是設計一個軟體程式時,經過理論與實務驗證過的方法與概念。在現代的軟體製造過程中,如果沒有應用這些概念,寫出來的軟體程式應該不算是一個正式的軟體程式。
  
 具有電腦科學基礎學科背景的軟體開發工程師,對於制訂一個正確的軟體設計決策(Design Decision)是有幫助的;沒有的人也不用沮喪,努力唸通這兩門學科,你也會變成本科系畢業的。
   
 建議書籍,演算法與資料結構的入門書,請參考【註30】。

結論
  
 在瞭解一個好的軟體開發工程師所必須具備的十大特點之後,我們會發現軟體開發工程師並不是單單學會寫程式就可以勝任的。本文除了提供選擇新進軟體開發工程師是否符合要求相關評估標準之外,也可以提供立志成為一個優秀的軟體開發工程師的學生,一個自我評估的準則,思考一下你是否喜歡上述的十大特質、能否達成上述的特質,以及如何培養上述特質。最後,本文所建議相關參考書籍,皆是欲養成這些特質的基本入門書,建議讀者一併參考。(本文作者現就讀於美國聖路易大學資訊科學系博士班)(全文完)

參考文獻

【註22】:為何稱做使用工學呢?以滑鼠的設計為例,現今的滑鼠製造廠商都會注重所謂的「人體工學」的設計,以符合我們手掌與手指的使用習慣。同理,軟體程式的使用過程也是需要符合使用者的習慣的,所以我們稱之為使用工學。

【註23】:請參考「續談UI設計 - 不甚理想的例子」一文,中文。

【註24】:相關的參考書籍推薦,「Usability Engineering」,可用性理論說明書,很值得參考,英文,書籍介紹。

【註25】:「程式碼慣例」教學,中文。

【註26】:相關的參考書籍推薦,「Software Maintenance: Concepts and Practice」,英文,書籍介紹。

【註27】:有關於「Programming Language」的說明,英文。

【註28】:相關的參考書籍推薦,「Concepts in Programming Languages」,英文,書籍介紹。

【註29】:有關Hashtable的介紹,中文。

【註30】:相關的參考書籍推薦,「Introduction to Algorithms」,英文,書籍介紹。




上一篇 | 返回電子報
 
 本電子報所有文字、圖片版權為中央研究院所有 。 電子報出版系統由中央研究院資訊服務處開發。