(一)軟件工程師崗位職責
(1)充分理解文檔中提出的需求內容;
(2)參與系統概要設計和詳細設計;
(3)參與概要設計和詳細設計文檔的編寫;
(4)系統模塊編碼;
(5)系統單元測試模塊編碼;
(6)參與系統單元模塊測試;
(7)參與系統模塊整體測試;
(8)參與用戶手冊文檔的編寫。
(二)軟件工程師工作內容
(1)指導程序員的工作;
(2)參與軟件工程系統的設計、開發、測試等過程;
(3)協助工程管理人保證項目的質量;
(4)負責工程中主要功能的代碼實現;
(5)解決工程中的關鍵問題和技術難題;
(6)協調各個程序員的工作,并能與其它軟件工程師協作工作。
企業用人主要有以下幾個特征:
1 外包開發行業快速發展,對“人才”在代碼和文檔方面的規范性、技能和工具的熟練程度要求越來越高;
2 Java和.NET技術在市場上平分秋色,都有大量的崗位需求,同時值得慶幸的是二者在應用層面上的技術差異越來越少;
3 軟件開發企業對開發人員的基本技術素養強調得越來越多,例如:面向對象的程序設計思想和代碼組織方法、HTML/CSS/JavaScript客戶端技術;
4 為了保證質量和工期,企業中大量使用各種框架技術,要求開發人員至少熟悉一種框架技術;
5 MIS、OA、ERP、CRM、系統集成、物流、進銷存、電子政務、網站建設這一類B/S系統,成為軟件工程師需求最大的業務領域。
一名合格的程序員需要掌握哪些技能呢?
熟練掌握開發工具
做為一名程序員至少熟練掌握兩到三種開發工具的使用,這是程序員的立身之本,其中C/C++和JAVA是重點推薦的開發工具,C/C++以其高效率和高度的靈活性成為開發工具中的利器,很多系統級的軟件還是用C/C編寫。而JAVA的跨平臺和與WEB很好的結合是JAVA的優勢所在,而JAVA即其相關的技術集JAVA One很可能會成為未來的主流開發工具之一。其次,能掌握一種簡便的可視化開發工具,如VB,PowerBuilder,Delphi,C Builder,則更好,這些開發工具減小了開發難度,并能夠強化程序員對象模型的概念。另外,需要掌握基本的腳本語言,如shell,perl等,至少能讀懂這些腳本代碼。
熟知數據庫
為什么數據庫是如此重要?作為程序員,他們自然有自己的理由:很多應用程序都是以數據庫的數據為中心,而數據庫的產品也有不少,其中關系型數據庫仍是主流形式,所以程序員至少熟練掌握一兩種數據庫,對關系型數據庫的關鍵元素要非常清楚,要熟練掌握SQL的基本語法。雖然很多數據庫產品提供了可視化的數據庫管理工具,但SQL是基礎,是通用的數據庫操作方法。如果沒有機會接觸商業數據庫系統,可以使用免費的數據庫產品是一個不錯的選擇,如mySQL, Postgres等。
對操作系統有一定的了解
當前主流的操作系統是Windows,Linux/Unix,熟練地使用這些操作系統是必須的,但只有這些還遠遠不夠。要想成為一個真正的編程高手,需要深入了解操作系統,了解它的內存管理機制、進程/線程調度、信號、內核對象、系統調用、協議棧實現等。Linux作為開發源碼的操作系統,是一個很好的學習平臺,Linux幾乎具備了所有現代操作系統的特征。雖然Windows系統的內核實現機制的資料較少,但通過互聯網還是能獲取不少資料。只有對操作系統有一定的了解后,你會發現自己上了一個新的臺階。
懂得網絡協議TCP/IP
在互聯網如此普及的今天,如果您還沒有對互聯網的支撐協議TCP/IP協議棧有很好的掌握,就需要迅速補上這一課,網絡技術已改變了軟件運行的模式,從最早的客戶/服務器結構,到今天的WEB Services(網絡服務器),再到未來的網格計算,這一切都離不開以TCP/IP協議棧為基礎的網絡協議支持,所以,深入掌握TCP/IP協議是非常必要的。至少,你需要了解ISO七層協議模型,IP/UDP/TCP/HTTP等常用協議的原理和三次握手機制。
明白DCOM/CORBA/XML/WEB Services存在的意義
隨著技術的發展,軟件與網絡的無縫結合是必然趨勢,軟件系統的位置無關性是未來計算模式的重要特征之一,DCOM(分布式組建對象模型)/CORBA(公共對象請求代理體系結構)是當前兩大主流的分布計算的中間平臺,DCOM是微軟COM(組件對象模型)的擴展,而CORBA是OMG(對象管理組織)支持的規范。程序員需要做的不僅僅是利用商業的開發平臺來開發軟件,而是要理解這些技術的初衷,即為什么需要這項技術,如果你能理解了這一點,再回頭看這些技術的具體實現,就如庖丁解牛,迎刃而解。XML(可擴展標記語言)/WebServices重要性不言而喻,XML以其結構化的表示方法和超強的表達能力被喻為互聯網上的“世界語”,是分布計算的基石之一。
不要將軟件工程與CMM(能力成熟度模型)分開
現代大型軟件系統的開發中,工程化的開發控制取代個人英雄主義,成為軟件系統成功的保證,一個編程高手并不一定是一個優秀的程序員,一個優秀的程序員是將出色的編程能力和開發技巧同嚴格的軟件工程思想有機結合,編程只是軟件生命周期中的其中一環,優秀的程序員應該掌握軟件開發各個階段的基本技能,如市場分析,可行性分析,需求分析,結構設計,詳細設計,軟件測試等。一句話可以概括我的看法:“創意無限,流程保證”。
擁有強烈的好奇心
什么才是一個程序員的終極武器呢,那就是強烈的好奇心和學習精神。沒有比強烈的好奇心和學習精神更好的武器了,它是程序員們永攀高峰的源泉和動力所在。
如果您正為如何成為一名合格的程序員而發愁的話,希望以上文字能為您排除一些顧慮和問題。
從國內軟件開發人員的層次看,工作幾年以內處于初級水平的程序員占據最大的比例,至少在50%之上,高級的人員最多也就10%左右。但無論處在哪個層面,一定要按照自己的個性和優勢做一些規劃。已經工作兩年以上的程序員可以有幾種基本的職業規劃:技術專家、軟件架構師、實施顧問或銷售。其中程序員最主要的發展方向是資深技術專家,無論是Java還是.NET,還是數據庫領域,都要首先成為專家,然后才可能繼續發展為架構師。
轉載請注明源自IT學生網
★www.www5x.com★