1. 運維、測試、程序員,這些技術崗位哪個更有前景
在一個初具規模的互聯網公司,從業務方面出發,有很多崗位類型,比如運營、客服、市場、產品、設計、技術等等。
在這些大類下面,還要細分各種小類,以技術為例,可分為前端(客戶端)、後端、測試、運維、DBA等等,這些都是技術類崗位。
那麼如果想從事這些技術崗位,該如何選擇,哪一個更有前途呢?
這五個崗位,可以做一個分類,前端和後端、運維和DBA、測試
前端和後端屬程序類,也就是通常大家知道的程序員,主要是根據產品的需求開發出軟體,屬於公司的技術核心,非常重要。沒有程序員的軟體公司,也不好意思稱為軟體公司。
運維和DBA,這兩個崗位的主要工作是管理伺服器程序運行的環境和依賴的數據。運維可以看成是伺服器管理員,所有跟伺服器相關工作都是由他處理,比如伺服器程序運行環境CPU、內存、磁碟資源監控、網路是否穩定監控,伺服器程序依賴的軟體安裝等等。DBA就是資料庫管理員,專門管理生產環境的資料庫如MySQL、Redis。這兩個崗位的工資不一定比程序員低,但是市場需求沒有程序員旺盛。一家軟體公司可以沒有運維和DBA,但是不能沒有程序。運維和DBA一般只有上規模的企業配備,小公司都由程序員兼任,畢竟如果公司只有個位數的伺服器,完全沒有必要專門配備一個運維,老闆也不願意花這個錢。
測試,雖然也是技術崗位,但是我個人感覺他們的工作不和技術掛鉤,他們的工作就是不斷使用程序員開發出來的軟體,找出其中的BUG和漏洞。與此同時,他們的另一項工作就是督促程序員幹活,修BUG。
論這些崗位的技術含量,我覺得測試是最低的,低端的測試幾乎沒有技術門檻,只要有軟體使用經驗,基本上都能乾乾測試的活,畢竟只是用用軟體找找BUG嘛,而程序和運維則不行,必須掌握基礎的技術技能才能上崗。當然高端的測試另當別論,他們也可以牛逼到天上。
其次是運維,當然並不是說運維這個崗位沒有技術含量,同樣運維的技術含量也很高,只是通常情況下,程序員都會點運維的工作,裝裝環境,監控下伺服器運行情況,都沒什麼問題。反過來,運維卻不一定會程序員的工作。我覺得運維應該是脫胎與程序員,然後隨著行業的發展,獨立成為一個崗位,本質上還是依附與程序員。
最後則是程序,一個合格的程序員,不但要掌握程序員本職的技術,還需要會伺服器運維的技術,比如自己搭建一個測試環境,這樣的技能是必須的,所以對伺服器必然要有較為深入的了解。同時需要會DBA的技術,通常DBA是在數據量巨大的情況下才會配備,大多數時候一家公司不需要DBA,DBA的工作的都由運維或者程序員兼職的。與此同時,程序員還需要測試技能,當程序員寫出來一個程序時,免不了要進行自測,寫測試用例等等,只有經過自己測試,才可以將功能提交給專門的測試人員進一步測試。
所以,對於這三類崗位,我覺得程序員的技術含量是最高的。
我們再來說說這些崗位的發展前景。
對於一個大公司來說,會有專門的研發部門、運維部門、測試部門,然後設有研發總監、運維總監、測試總監,這些領導在公司的身價不相上下,不存在誰壓誰一頭的情況。但是在小公司通常只有一個技術部,這個部門管轄所有技術類員工,包括程序、運維、測試,甚至有的公司還會包含設計人員。而技術部門的領導十有八九是程序員出身,幾乎不太會是運維或測試出身。因為一個軟體公司的技術部門,沒有運維和測試,照樣可以運轉,雖然有可能轉的不順溜,但是一定可以轉,但是沒有程序員,即便運維和測試配備的多麼強大,這個部門也轉不起來。其次一個技術部門程序員的數量絕對是壓制運維和測試人員數量的。因此在程序員中出技術部門領導的概率遠大於在運維和測試中出領導,除非真的遇到難得一見的人才。
所以,如果你想從事互聯網軟體行業的技術崗位,要想選其中比較有前途的技術類崗位,那麼首選程序員,當然,更多的機會也意味著有更大的競爭,同時也有更大的難度,你選擇程序員不見得一定會成為技術部門的領導,選擇測試和運維也不意味著職業生涯會默默無聞,只是相對來說程序員的情景更加明朗。
與此同時,關於35歲程序員會被淘汰的觀點,其實運維和測試的危險性更大,仔細想想難道不是嗎,運維和測試並沒有比程序員更有優勢,反而劣勢一大堆,那麼肯定比程序員先一步面對淘汰,這是市場規則。
2. 測試程序員被開發挖坑咋辦
提高自身核心業務能力。根據查詢相關公開信息,測試程序員被開發挖坑的解決辦法得從自身做好做起,測試程序員應該要提高自己的核心業務能力,讓開發挑不出來毛病,從而產生信任甚至嘆服。
3. 做程序員與做測試員的選擇
1、學歷問題:大公司對於學歷還是有一定的要求的,學歷高的起薪也高,但是學歷不能代表所有,也有學歷高,但是技術垃圾的人,所以不要因為學歷的問題來妄自菲薄,學歷只是入門和之後評職稱的時候有用,學歷可以以後慢慢考。所以學歷不是問題。
2、方向問題:如果是培訓出來的話,那的基礎知識一定不會非常的好,一定要注意基礎部分,不要總是因為學習了多少框架而感到驕傲並且否定基礎的東西,其實無論是框架還是什麼都是基礎的延續,只要打下了扎實的基礎,那麼學習起框架那些東西。培訓出來的人大都做開發,而測試一般都是逼不得已而為之!
3、測試和開發哪個好:都是比較枯燥的工作,測試久了想轉開發,開發久了想轉行。就像圍城。測試,沒有做過,但是聽說過一些,測試枯燥、乏味、而且經常熬夜,(開發也一樣),但是從薪方面看,開發的優勢就遠遠大於測試了,不是說測試比開發低級,用共產黨的話就是:革命沒有貴賤之分,只有分工的不同而已。
(3)程序員測試員擴展閱讀:
做好一名測試工程師的方法:
1、溝通能力。
一名理想的測試者必須能夠同測試涉及到的所有人進行溝通,具有與技術(開發者)和非技術人員(客戶,管理人員)的交流能力。既要可以和用戶談得來,又能同開發人員說得上話,不幸的是這兩類人沒有共同語言。
2、技術能力。
一個測試者必須既明白被測軟體系統的概念又要會使用工程中的那些工具。要做到這一點需要有幾年以上的編程經驗,前期的開發經驗可以幫助對軟體開發過程有較深入的理解,從開發人員的角度正確的評價測試者,簡化自動測試工具編程的學習曲線。
3、很強的記憶力。
一個理想的測試者應該有能力將以前曾經遇到過的類似的錯誤從記憶深處挖掘出來,這一能力在測試過程中的價值是無法衡量的。因為許多新出現的問題和我們已經發現的問題相差無幾。
4、幽默感。在遇到狡辯的情況下,一個幽默的批評將是很有幫助的。
4. 普通程序員的工作是怎樣的
普通程序員的一天可以大致分為四個階段:准備工作、編碼、測試和維護,具體如下:
1. 准備工作階段:在上班前,程序員需要查看郵件、簡報和任務列表,了解當天的工作安排和完成情況,以及與項目相關的問題和需求。這個階段還可以進行代碼審查、閱讀技術資料和學習新技術等。
2. 編碼階段:程序員會花費大部分時間編寫代碼,根據需求和設計文檔,選擇一種或多種開發工具和編程語言來開發應用程序。可能需要進行後端API開發、資料庫設計、前端頁面設計等工作。程序員在這個階段需要嚴格遵守編碼規范,注意代碼簡潔、可讀性強、可擴展性好等方面的要求,以確保代碼質量。
3. 測試階段:在編寫完代碼後,程序員需要對其進行嚴格測試和調試,以發現和修復錯誤和缺陷。測試包括單元測試、集成測試、回歸測試等,採用不同的測試工具和方法來確保代碼質量和軟體穩定性。和辯
4. 維護階段:在軟體投入使用後,程序員需要對其進行維護和升級。這包括診斷和修復軟體問題、更新代碼、添加新功能等,以滿足客戶或用戶的需求。同時還需要維護文檔、處理問題反饋和進行溝通等工作。
舉個例子,一個普通程序員的一天可能包括以下任務:
1. 9:00 - 10:00:查看郵件、簡報和任務列表,了解今天的工作安排和完成情況,並回復相關郵件和信息。
2. 10:00 - 12:00:根據項目需求,完成後端API的開發,使用Java和Spring框架進行編碼,並進行單元測試。
3. 12:00 - 13:00:午餐時間,與同事交流,了解其他項目的進展和困難,商討解決方哪滾法。
4. 13:00 - 14:30:繼續完成後李棚余端API的開發,與資料庫設計師溝通並進行資料庫設計。
5. 14:30 - 16:00:開始進行前端頁面的設計和開發,使用HTML、CSS和JavaScript等技術進行編碼,並進行集成測試。
6. 16:00 - 17:30:接收產品經理的問題反饋和建議,修改代碼並進行部署,同時對新功能進行測試和調試,確保無任何問題。
7. 17:30 - 18:00:總結今天的工作,編寫工作日誌,提交代碼庫,准備明天的工作計劃。
這只是其中一種可能的工作安排,不同的程序員和項目有不同的工作負責和時間分配。
5. 程序員、軟體測試員、資料庫管理員應具備哪些能力
在標準的研發體系裡,定義了很多不同的角色,上面三種也在其中。
角色職責不同,要求的技能也會不同。
分述如下:
程序員
程序員的主要職責是代碼開發,所以代碼編寫能力芹碧必須過關,且最好具備系統分析、設計的能力。
從崗位來分,又分為前、後端開發:
1.前端茄拆開發
包括:WEB開發、APP開發(又分IOS、Android、H5)。
對應技能:
WEB開發:Vue、ReatJS、Angular、JQuery等;
IOS:Objective-C、Swift;
Android:Java
H5:Html5
2.後端開發
兩大陣營:Java和
.Net
對應技能:
Java:SSM、SpringBoot、SpringCloud等
.Net:WPF、C#等
軟體測試員
測試員的主要職責是系統測試,白盒測試、黑盒測試、功能測試、性能測試、兼容性測試、集成測試等嫌納舉都需要參與,還需要編寫測試用例、測試報告等。
對應技能:
掌握各種測試工具如Loadrunner、JMeter等,熟悉測試管理系統如禪道等。
資料庫管理員
也就是DBA,主要職責是負責資料庫環境搭建、業務資料庫的設計、表設計、建庫腳本、資料庫優化、數據備份遷移等。
對應技能:
Linux指令,不同資料庫的操縱技能。
大型資料庫的DBA招聘,會要求提供從業資格證書。
6. 測試算不算程序員
軟體測試嚴格意義上說也算程序員。軟體測試員是指根據測試計劃和測試方案進行軟體測試;能夠針對軟體需求開發測試模型,制定測試方案,安排測試計劃,並對測試項目進行管理的專業人員。
實踐證明,實際的測試過程是頗為復雜的,這對軟體測試員的要求很高。其職業等級可分為四級、三級和二級等不同的級別。測試者在執行測試任務的時候要專心,不可一心二用。高度集中精神不但能夠提高效率,還能發現更多的軟體缺陷,業績最棒的往往是團隊中做事精力最集中的那些成員。執行測試工作時候要細心,認真執行測試,不可以忽略一些細節。某些缺陷如果不細心很難發現,例如一些界面的樣式、文字等。
測試員需要有難以置信的耐心。有時你需要花費驚人的時間去分離、識別和分派一個錯誤。很多測試工作有時候顯得非常枯燥,需要很大的耐心才可以做好。如果比較浮躁,就不會做到「專心」和「細心」,這將讓很多軟體缺陷從你眼前逃過。