軟體工程師應具備的素質
來源:互聯網
上載者:User
網際網路的迅速崛起,使電腦的應用越來越廣泛,人們對電腦軟體的需求也急劇膨脹。傳統的“作坊式”軟體開發時代,我們更多的培養了一批稱得上“個人英雄”的“程式員”,隨著目前不斷迅速增長的系統軟體需求,軟體生產必須走向工程化,形成產業,從而也開始逐漸出現一個新的職業人群和稱謂——“軟體工程師”。 軟體工程師雖然不能算是一個新生事物,但作為一個剛畢業的大學生,或者一個有志於轉行或者投身軟體行業的新手,首先有必要瞭解軟體工程師需要具備哪些素質。
一、軟體工程師應具備的素質 (1)具有紮實的電腦專業知識 這是軟體工程理由能夠從事軟體一切工作最基本的前提,是軟體工程最基本的素質,這要求軟體工程師必須精通高等數學、離散數學、電子學、程式設計語言、資料結構等課程。 (2)良好的語言表達能力和溝通能力 這是軟體工程師應該具備的一個很重要的素質,因為軟體工程師是為使用者開發軟體,常常需要直執著面對使用者。 (3)較強的工程經濟分析能力 軟體作為一個工業產品,它應當賺取足夠的利潤,才能軟體開發公司生存下去。因此,從事軟體開發的軟體工程師應當具有較強的工程經濟分析能力,能夠分析軟體產品的市場前景和經濟價值,並做出合理的投資效益預測。 (4)健康的心理素質 開發軟體本身就是一項艱苦的腦力和體力勞動,軟體工程師開發成功一個軟體,要經過反覆修改,要花費大量的進間和精力,這些都有要求軟體工程師有較好的心理承受能力。 軟體工程師的培養
二、大學在校生如何培養未來軟體工程師的潛質 從目前大學電腦軟體專業課程設定來看,很多學生往往只注重電腦專業知識的培養,而忽視了語言表達能力和溝通能力、工程經濟分析能力,以及心理素質的培養。因此,作為一個在校的大學生,除了認真學習軟體基礎理論課程之外,還需要特別注意以下能力的培養: (1)未來職業定位 大學電腦軟體專業學生應該將自己個人今後職業生涯的目標定位在軟體工程師或者未來的軟體工程、專案管理者,而不是電腦或者軟體科學家。 有了一個比較清晰的職業定位後,對自己如何選修一些實踐性強,協作性強以及能夠接觸最新軟體技術的課程很多指導作用。 (2)增加語言表達和溝通技巧的訓練 儘管大學已經比較注重學生個人能力的培養,但是與軟體程師的要求還有一定差距,並且,有些活動不是每個學生都能參加,因此,大學電腦軟體專業學生應積极參加一些群體活動和實際的軟體項目,在語言表達和溝通方面積累經驗和知識。 (3)瞭解一些經濟、管理方面的基礎知識 軟體是一種工具,他最終的目的還是需要為社會生活的各個方面提高效率、節約成本或者是簡化管理、提升價值。不瞭解一些經濟於管理方面的基礎知識,就很難理解現實生活中千變萬化的軟體需求,更難以發揮軟體的實際價值。 (4)訓練過硬的心理素質 軟體工程師在實際的軟體開發過程中,各種非預料的情況都可能發生:需求來回修改,工期突然發生變更甚至很多個人生活的很多情緒都會參雜進來,因此軟體工程師可能需承受巨大心理壓力。一個軟體工程師如果沒有過硬的心理素質,他就很難排除幹擾、穩定情緒的按照嚴格的規範實施一個成功的軟體項目。
三、軟體工程師的充電方案 對非電腦科系的人來說,要半路出家進入IT業,在沒有專業文憑的情況下,這些專業認證就成了重要的能力證明。但面對名目繁多的IT考試,再加上天花亂墜的廣告攻勢,很多人茫然不知所措,搞不清考哪一個好。 軟體開發本身有一個循序漸進的過程,其基礎知識和實踐經驗需要不斷的積累。比如,如果先把C++學好,再學諸如Java、SQLServer、Oracle、VB、ASP等其他語言時,在程式設計的文法上就十分好理解了;C++學好的同時,如果掌握好電腦作業系統知識,熟悉了Windows的操作與應用,再學習Win32API的程式設計也就有基礎了;Win32API的程式設計學好了,幾乎所有電腦專業人員都認為十分困難的VisualC++程式設計的學習也就成了一件水到渠成的事情了。 培訓目標確定了,下一步就是制定培訓計劃。首先需要注意的是,不要只是死抱著一兩種技術或平台,或只掌握一兩種開發語言。現在,用人單位越來越希望招聘到在某一領域裡具有很高專業技能的IT專家,同時,他們也希望能招到萬事通式的人才。所以,你不能滿足於只精通Windows或者Linux,或者只會Java。要趕快學習其他有關技術,即使不在你的工作範圍內。例如,如果你工作中用的是伺服器端Java,那麼可以瞭解一下其他平台伺服器端技術,包括ASP和PHP;還可以嘗試去掌握其他的技術,如用VB、C/C++編寫應用程式或進行系統編程等。同樣,通過為一些中小項目義務勞動、參加技術討論、提供支援人員、或者公開發布原始碼等方式,都可以在新領域中獲得寶貴的工作經驗。
四、軟體工程師的培訓方向和課程選擇 軟體開發越來越成為一個系統工程,一個協作型產品,因此選擇軟體工程師培訓也應制定相對明確的方向。 軟體工程師培訓方向從總體看,可以劃分出這樣幾個方向: 1、 以積累綜合知識和培養紮實基礎入手 這個方向一般比較適合電腦軟體相關專業的畢業生,其主要的培訓選擇可以是“電腦軟體水嬌際浴薄? 通過對基礎知識和實際技能的培訓,“電腦軟體水平考試”可以為你提供從程式員、進階程式員到系統分析員等不同等級、具有很強說服力的資質證明。 另外,各個大學最新崛起的“軟體學院”也是一個不錯的培訓選擇,它能夠在1-2年的時間裡,既系統的學習軟體開發的各種理論,有同時有比較多的機會參加開發項目鍛煉各種平台和工具的開發實踐。 2、 以某一個平台的軟體開發訓練、直接為就業服務入手 軟體開發本身有很多領域,每一個軟體工程師不可能在短時期內培訓和精通所有的平台、工具和開發語言。事實上,實際的軟體開發項目也從來不可能要求軟體工程師精通所有的技術。目前可以選擇的幾個主要領域為: a) Windows平台的主流開發 主要包括Visual C++,VB,ASP,SQL Server等等的培訓 b) Java平台的主流開發 主要包括J2EE、EJB、JavaBean等的培訓 c) 資料庫應用開發 主要包括Oracle、IBM DB2、Sybase等等的培訓 d) 其他開發工具的培訓 主要包括Delphi、Borland C++等的培訓 3、 以軟體系統分析、模型設計和專案管理為職業切入點 這是軟體開發工程師的職業發展方向,這樣的切入點比較適合有一定項目經驗和比較廣泛的平台開發能力的人員,可以選擇的培訓主要有: a) UML、Rational等軟體建模培訓 b) CMM培訓 c) 軟體工程培訓 d) 軟體專案管理培訓
五、軟體工程師培訓資源推薦: 1、 認證類培訓: a) 微軟認證:http://training.ccidnet.com/pub/disp/Column?columnID=766&companyID=2b) IBM認證:http://training.ccidnet.com/pub/disp/Column?columnID=766&companyID=5c) SUN認證:http://training.ccidnet.com/pub/disp/Column?columnID=766&companyID=8d) Oracle認證: http://training.ccidnet.com/pub/disp/Column?columnID=766&companyID=9e) Sybase認證: http://training.ccidnet.com/pub/disp/Column?columnID=766&companyID=11f) Lotus認證: http://training.ccidnet.com/pub/disp/Column?columnID=766&companyID=12g) CMM認證: http://training.ccidnet.com/pub/disp/Column?columnID=766&companyID=19h) Borland認證: http://training.ccidnet.com/pub/disp/Column?columnID=766&companyID=25i) 軟體水平考試: http://edu.ccidnet.com/softexam.htm