Ⅰ 程序員,修電腦的,電腦工程師有什麼區別
程序員是一般的軟體創造人員,修電腦的一般我認為是對計算機的硬體進行維護或者修理的人,電腦工程師呢,一般都指軟體硬體都知道的人,而且有一定的造議。回答純技術的個人看法
Ⅱ 運維、測試、程序員,這些技術崗位哪個更有前景
在一個初具規模的互聯網公司,從業務方面出發,有很多崗位類型,比如運營、客服、市場、產品、設計、技術等等。
在這些大類下面,還要細分各種小類,以技術為例,可分為前端(客戶端)、後端、測試、運維、DBA等等,這些都是技術類崗位。
那麼如果想從事這些技術崗位,該如何選擇,哪一個更有前途呢?
這五個崗位,可以做一個分類,前端和後端、運維和DBA、測試
前端和後端屬程序類,也就是通常大家知道的程序員,主要是根據產品的需求開發出軟體,屬於公司的技術核心,非常重要。沒有程序員的軟體公司,也不好意思稱為軟體公司。
運維和DBA,這兩個崗位的主要工作是管理伺服器程序運行的環境和依賴的數據。運維可以看成是伺服器管理員,所有跟伺服器相關工作都是由他處理,比如伺服器程序運行環境CPU、內存、磁碟資源監控、網路是否穩定監控,伺服器程序依賴的軟體安裝等等。DBA就是資料庫管理員,專門管理生產環境的資料庫如MySQL、Redis。這兩個崗位的工資不一定比程序員低,但是市場需求沒有程序員旺盛。一家軟體公司可以沒有運維和DBA,但是不能沒有程序。運維和DBA一般只有上規模的企業配備,小公司都由程序員兼任,畢竟如果公司只有個位數的伺服器,完全沒有必要專門配備一個運維,老闆也不願意花這個錢。
測試,雖然也是技術崗位,但是我個人感覺他們的工作不和技術掛鉤,他們的工作就是不斷使用程序員開發出來的軟體,找出其中的BUG和漏洞。與此同時,他們的另一項工作就是督促程序員幹活,修BUG。
論這些崗位的技術含量,我覺得測試是最低的,低端的測試幾乎沒有技術門檻,只要有軟體使用經驗,基本上都能乾乾測試的活,畢竟只是用用軟體找找BUG嘛,而程序和運維則不行,必須掌握基礎的技術技能才能上崗。當然高端的測試另當別論,他們也可以牛逼到天上。
其次是運維,當然並不是說運維這個崗位沒有技術含量,同樣運維的技術含量也很高,只是通常情況下,程序員都會點運維的工作,裝裝環境,監控下伺服器運行情況,都沒什麼問題。反過來,運維卻不一定會程序員的工作。我覺得運維應該是脫胎與程序員,然後隨著行業的發展,獨立成為一個崗位,本質上還是依附與程序員。
最後則是程序,一個合格的程序員,不但要掌握程序員本職的技術,還需要會伺服器運維的技術,比如自己搭建一個測試環境,這樣的技能是必須的,所以對伺服器必然要有較為深入的了解。同時需要會DBA的技術,通常DBA是在數據量巨大的情況下才會配備,大多數時候一家公司不需要DBA,DBA的工作的都由運維或者程序員兼職的。與此同時,程序員還需要測試技能,當程序員寫出來一個程序時,免不了要進行自測,寫測試用例等等,只有經過自己測試,才可以將功能提交給專門的測試人員進一步測試。
所以,對於這三類崗位,我覺得程序員的技術含量是最高的。
我們再來說說這些崗位的發展前景。
對於一個大公司來說,會有專門的研發部門、運維部門、測試部門,然後設有研發總監、運維總監、測試總監,這些領導在公司的身價不相上下,不存在誰壓誰一頭的情況。但是在小公司通常只有一個技術部,這個部門管轄所有技術類員工,包括程序、運維、測試,甚至有的公司還會包含設計人員。而技術部門的領導十有八九是程序員出身,幾乎不太會是運維或測試出身。因為一個軟體公司的技術部門,沒有運維和測試,照樣可以運轉,雖然有可能轉的不順溜,但是一定可以轉,但是沒有程序員,即便運維和測試配備的多麼強大,這個部門也轉不起來。其次一個技術部門程序員的數量絕對是壓制運維和測試人員數量的。因此在程序員中出技術部門領導的概率遠大於在運維和測試中出領導,除非真的遇到難得一見的人才。
所以,如果你想從事互聯網軟體行業的技術崗位,要想選其中比較有前途的技術類崗位,那麼首選程序員,當然,更多的機會也意味著有更大的競爭,同時也有更大的難度,你選擇程序員不見得一定會成為技術部門的領導,選擇測試和運維也不意味著職業生涯會默默無聞,只是相對來說程序員的情景更加明朗。
與此同時,關於35歲程序員會被淘汰的觀點,其實運維和測試的危險性更大,仔細想想難道不是嗎,運維和測試並沒有比程序員更有優勢,反而劣勢一大堆,那麼肯定比程序員先一步面對淘汰,這是市場規則。