程序員和軟件測試工作哪個(gè)比較累
程序員和軟件測試工作哪個(gè)比較累
程序員和軟件測試工作哪個(gè)比較累?這個(gè)問題是很多剛今日軟件相關(guān)行業(yè)的新人們比較關(guān)注的問題,那么到底程序員和軟件測試工作哪個(gè)比較累呢?小編覺得要解決這個(gè)問題,首先要分別了解一下它們各自的工作內(nèi)容,然后再做出比較。
程序員分類及職責(zé)
程序員是從事程序開發(fā)、維護(hù)的專業(yè)人員。一般將程序員分為程序設(shè)計(jì)人員和程序編碼人員,但兩者的界限并不非常清楚,特別是在中國。軟件從業(yè)人員分為初級(jí)程序員、高級(jí)程序員、系統(tǒng)分析員,系統(tǒng)架構(gòu)師,測試工程師五大類。
計(jì)算機(jī)科學(xué)發(fā)展到今天(21世紀(jì)初期),程序員從事的人群很多,分工也不相同,從大的方面可以分為以下幾類:asp程序員、jsp程序員、delphi程序員、php程序員、powerbuilder程序員、C程序員、linux程序員、net程序員、vb程序員、java程序員、javascript程序員、C++程序員、Python程序員、android程序員、iOS程序員。
1、對項(xiàng)目經(jīng)理負(fù)責(zé),負(fù)責(zé)軟件項(xiàng)目的詳細(xì)設(shè)計(jì)、編碼和內(nèi)部測試的組織實(shí)施,對程序員小型軟件項(xiàng)目兼任系統(tǒng)分析工作,完成分配項(xiàng)目的實(shí)施和技術(shù)支持工作。
2、協(xié)助項(xiàng)目經(jīng)理和相關(guān)人員同客戶進(jìn)行溝通,保持良好的客戶關(guān)系。
3、參與需求調(diào)研、項(xiàng)目可行性分析、技術(shù)可行性分析和需求分析。
4、熟悉并熟練掌握交付軟件部開發(fā)的軟件項(xiàng)目的相關(guān)軟件技術(shù)。
5、負(fù)責(zé)向項(xiàng)目經(jīng)理及時(shí)反饋軟件開發(fā)中的情況,并根據(jù)實(shí)際情況提出改進(jìn)建議。
6、參與軟件開發(fā)和維護(hù)過程中重大技術(shù)問題的解決,參與軟件首次安裝調(diào)試、數(shù)據(jù)割接、用戶培訓(xùn)和項(xiàng)目推廣。
7、負(fù)責(zé)相關(guān)技術(shù)文檔的擬訂。
8、負(fù)責(zé)對業(yè)務(wù)領(lǐng)域內(nèi)的技術(shù)發(fā)展動(dòng)態(tài)進(jìn)行分析研究。
程序員職業(yè)要求
一般的程序員都有四年的在專業(yè)領(lǐng)域的學(xué)習(xí),需要一個(gè)在程序領(lǐng)域的學(xué)士學(xué)位獲得者,不論是數(shù)學(xué)方面的還是工程方面的都是可以的。
大約有20%的人在這一領(lǐng)域的計(jì)算機(jī)科學(xué)和工程學(xué)擁有更高的學(xué)位。還有很小一部分程序員是自學(xué)的,盡管一些專業(yè)性的學(xué)校或者綜合大學(xué)可以提供,但是也需要一些別的途徑來提供相關(guān)的人才。盡管學(xué)歷是比較重要的,但是公司經(jīng)常把重點(diǎn)放在應(yīng)聘者的工作經(jīng)驗(yàn)上,很多剛從大學(xué)畢業(yè)的大學(xué)生雖然有引人注目的學(xué)位證書,但是他們找不到工作是因?yàn)樗麄內(nèi)狈?jīng)驗(yàn)。一個(gè)程序員雖然沒有正規(guī)的學(xué)歷,但是如果一個(gè)人擁有程序設(shè)計(jì)的深厚知識(shí)背景或者豐富的工作經(jīng)驗(yàn)的話,那么他的機(jī)會(huì)要比有學(xué)歷的應(yīng)屆畢業(yè)生大得多。所以要盡量抓住有用的工作和實(shí)習(xí)機(jī)會(huì),這樣的話在畢業(yè)后你就會(huì)發(fā)現(xiàn),多實(shí)習(xí)讓你有更多的經(jīng)驗(yàn),在找工作的時(shí)候就有更多的機(jī)會(huì)。
對于職業(yè)程序員,另外一個(gè)重要的方面就是,程序員需要不斷提升自己的業(yè)務(wù)技術(shù),他的技術(shù)必須一直保持在一個(gè)較高的水平,并且要不斷發(fā)展,程序員也要尋找貿(mào)易的機(jī)會(huì),要參加研討會(huì),在周刊上發(fā)表文章和接受職業(yè)教育,這些使程序員在自己的領(lǐng)域中分級(jí)或者不斷并排前進(jìn)。
程序員必備技能
熟練開發(fā)工具
做為一名程序員至少熟練掌握兩到三種開發(fā)工具的使用,這是程序員的立身之本,其中C/C++和JAVA是重點(diǎn)推薦的開發(fā)工具,C/C++以其高效率和高度的靈活性成為開發(fā)工具中的利器,很多系統(tǒng)級(jí)的軟件還是用C/C++編寫。而JAVA的跨平臺(tái)和與WEB很好的結(jié)合是JAVA的優(yōu)勢所在,而JAVA即其相關(guān)的技術(shù)集JAVAOne很可能會(huì)成為未來的主流開發(fā)工具之一。其次,能掌握一種簡便的可視化開發(fā)工具,如VB,PowerBuilder,Delphi,CBuilder,則更好,這些開發(fā)工具減小了開發(fā)難度,并能夠強(qiáng)化程序員對象模型的概念。另外,需要掌握基本的腳本語言,如shell,perl等,至少能讀懂這些腳本代碼。
熟知數(shù)據(jù)庫
為什么數(shù)據(jù)庫是如此重要?作為程序員,他們自然有自己的理由:很多應(yīng)用程序都是以數(shù)據(jù)庫的數(shù)據(jù)為中心,而數(shù)據(jù)庫的產(chǎn)品也有不少,其中關(guān)系型數(shù)據(jù)庫仍是主流形式,所以程序員至少熟練掌握一兩種數(shù)據(jù)庫,對關(guān)系型數(shù)據(jù)庫的關(guān)鍵元素要非常清楚,要熟練掌握SQL的基本語法。雖然很多數(shù)據(jù)庫產(chǎn)品提供了可視化的數(shù)據(jù)庫管理工具,但SQL是基礎(chǔ),是通用的數(shù)據(jù)庫操作方法。如果沒有機(jī)會(huì)接觸商業(yè)數(shù)據(jù)庫系統(tǒng),可以使用免費(fèi)的數(shù)據(jù)庫產(chǎn)品是一個(gè)不錯(cuò)的選擇,如mySQL,Postgres等。
了解操作系統(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)核對象、系統(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ī)制的資料較少,但通過互聯(lián)網(wǎng)還是能獲取不少資料。懂得網(wǎng)絡(luò)協(xié)議TCP/IP。
在互聯(lián)網(wǎng)如此普及的今天,如果您還沒有對互聯(lián)網(wǎng)的支撐協(xié)議TCP/IP協(xié)議棧有很好的掌握,就需要迅速補(bǔ)上這一課,網(wǎng)絡(luò)技術(shù)已改變了軟件運(yùn)行的模式,從最早的客戶/服務(wù)器結(jié)構(gòu),到今天的WEBServices,再到未來的網(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/WEBServices存在的意義
隨著技術(shù)的發(fā)展,軟件與網(wǎng)絡(luò)的無縫結(jié)合是必然趨勢,軟件系統(tǒng)的位置無關(guān)性是未來計(jì)算模式的重要特征之一,DCOM/CORBA是當(dāng)前兩大主流的分布計(jì)算的中間平臺(tái),DCOM是微軟COM(組件對象模型)的擴(kuò)展,而CORBA是OMG支持的規(guī)范。XML/WebServices重要性不言而喻,XML以其結(jié)構(gòu)化的表示方法和超強(qiáng)的表達(dá)能力被喻為互聯(lián)網(wǎng)上的“世界語”,是分布式計(jì)算的基石之一。
不要將軟件工程與CMM分開
大型軟件系統(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è)階段的基本技能,如市場分析,可行性分析,需求分析,結(jié)構(gòu)設(shè)計(jì),詳細(xì)設(shè)計(jì),軟件測試等。
需求理解能力
程序員要能正確理解任務(wù)單中描述的需求。在這里要明確一點(diǎn),程序員不僅僅要注意到軟件的功能需求,還應(yīng)注意軟件的性能需求,要能正確評估自己的模塊對整個(gè)項(xiàng)目中的影響及潛在的威脅,如果有著兩到三年項(xiàng)目經(jīng)驗(yàn)的熟練程序員對這一點(diǎn)沒有體會(huì)的話,只能說明他或許是認(rèn)真工作過,但是沒有用心工作。
模塊化思維能力
作為一個(gè)優(yōu)秀的程序員,他的思想不能局限在當(dāng)前的工作任務(wù)里面,要想想看自己寫的模塊是否可以脫離當(dāng)前系統(tǒng)存在,通過簡單的封裝在其他系統(tǒng)中或其他模塊中直接使用。這樣做可以使代碼能重復(fù)利用,減少重復(fù)的勞動(dòng),也能使系統(tǒng)結(jié)構(gòu)越趨合理。模塊化思維能力的提高是一個(gè)程序員的技術(shù)水平提高的一項(xiàng)重要指標(biāo)。
程序員薪資待遇
從經(jīng)濟(jì)學(xué)的層面上來看,軟件人才也是勞動(dòng)力商品中的一種,是由價(jià)值規(guī)律決定的,有需求才會(huì)有市場,才會(huì)有人愿意為他們支付更高的工資。當(dāng)前,包括中國在內(nèi),全球都在爭奪IT人才,當(dāng)IT人才的社會(huì)總需求大于總供給時(shí),不可避免就會(huì)出現(xiàn)人才升值的現(xiàn)象。
程序員日常工作
確認(rèn)通過審查方案的目標(biāo),輸入數(shù)據(jù),分析師,監(jiān)事,和客戶的輸出要求的項(xiàng)目要求。
安排項(xiàng)目要求在編程序列分析要求;準(zhǔn)備工作流程圖和使用計(jì)算機(jī)知識(shí)的能力,題材,編程語言和邏輯圖。
編碼工作流程的信息轉(zhuǎn)換成計(jì)算機(jī)語言的項(xiàng)目要求。
通過輸入編碼信息的計(jì)算機(jī)程序。
確認(rèn)程序操作進(jìn)行測試,修改程序序列和/或代碼。
準(zhǔn)備寫操作指令供用戶參考。
保持歷史記錄,通過記錄方案的制定和修訂。
維護(hù)客戶的信心和保護(hù)保密的業(yè)務(wù)。
技能/資格:一般的編程技巧,分析信息,解決問題,軟件算法設(shè)計(jì),軟件性能優(yōu)化,注重細(xì)節(jié),軟件設(shè)計(jì),軟件調(diào)試,軟件開發(fā)基礎(chǔ),軟件文檔,軟件測試。程序員其實(shí)分為很多種,大家開發(fā)的語言可能不盡相同,但是都是有他們的共同點(diǎn)。
↓↓↓下一頁分享的是 軟件測試的相關(guān)的知識(shí) ↓↓↓