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