為什麼 DBA 工資很高,而程序員相對較低,兩者哪一個更難?


對於普通的老闆來說,決定工資有兩種因素,一種是這個人幫他賺多少錢,賺得多自然工資就高,銷售的工資都是這樣;另一個是,有些部門是看不到賺錢的,用第一個標準沒辦法衡量,那就看這個人花了公司多少錢,或者公司有多少錢的資產在他手上,大多數程序員、網管和DBA都屬於此類,在路由器很貴的年代,管路由的網管就很值錢,現在就差遠了,資料庫伺服器通常都是伺服器裡面最貴的,再加上些存儲解決方案,搞個上百萬很平常,所以管資料庫的工資也都不低,程序員通常有台PC就能工作,當然不怎麼值錢,cobol程序員編大型機程序,因為機器值錢,所以身價就高,並非是cobol技術含量更高。當然這是說通常的情況,如果能夠獨立開發出產品,那麼程序員就會按第一個標準來確定工資,產品賣得好工資自然就高,年薪百萬以上也不稀奇。


誰跟你說的DBA工資很高,程序員工資很低?同意樓上@馬無名 說的,程序員這個覆蓋面太廣了,你用一個"精確定位"的職位和一個廣泛群體去比較,本身就沒有可比性。在我認識的人中,有年薪上百萬的DBA,但準確說他拿100萬+乾的活也不是單純DBA的工作。同時,我同學裡有系統構架師,一樣也是年薪百萬以上。但這些人都不具有普遍性,都已經是這個行業里在打工者這個層面的佼佼者。

DBA從門檻上說我認為不高不低,你可以看看丁香園CTO @Fenng 發表過的一篇他的工作經歷,他是非計算機專業畢業,印象中當時做過伺服器管理,然後就是從Oracle DBA開始後來成為全國屈指可數的Oracle ACE Director,其實只要你付出比別人多的努力,所謂的"門檻"都是嚇唬膽小者的。

現在,網路上有些資料庫行業已成名的既得利益者在忽悠DBA行業前景多名好,工資多麼高,但我看現實看並不是這樣美好(或許他們可能還有些商業目的,比如推銷培訓課等)。我們公司(北京)招入的Oracle DBA,2-3年工作經驗,有OCP認證,讓我看DBA的基本工作都能勝任,但月薪也就稅後4000多,我們同等經驗年數的Java程序員,比他工資還略高。我並不認為我們給的工資低,因為如果他真能拿到1萬元的Offer,我相信他早跳槽了。另外,我們也不擔心他跳槽,因為拿差不多的工資預算,同樣可以招來差不多水平的DBA,因為我們的HR經常收到應聘者簡歷。所以不能總看那些成功人士光鮮的一面,也要看看行業中的中下層的人們生活的怎樣。你可能會問為什麼會這樣?我覺得DBA職位需求遠遠小於程序員,而最近很多培訓機構,包括大學開課程,量產DBA造成供求失衡是個不可忽視的因素。你考慮一下,國內中小規模的軟體開發公司有多少設置專職DBA?我知道的很多都是程序員兼DBA,我當年也是在PowerBuilder項目組裡兼職做DBA的開始接觸資料庫的。那些名聲顯赫的銀行,保險,移動,互聯網公司的大牛DBA們,按樓上朋友說都是年薪很高的,但那種職位數又有多少?已經成功的人士又有幾個有勇氣輕易挪窩給別人讓位?所以我在DBA圈子裡聽一些年輕工程師的抱怨是,學習了,準備了,認證也拿了,但就是找不到入行的機會...所以相對於DBA,程序員的入行職位機會可能要多很多。從你關心的待遇說,百度的一般程序員待遇可能比甲骨文DB Support的待遇要高了。

我也不列舉優秀程序員的待遇了,因為討論那些上層的待遇沒有代表性,其實作為一個職業選擇,還是從你的興趣,評估你自己適合做什麼出發,一旦入行,就專註去做到好,同時還需要一些機遇,甚至做一些主動選擇(比如轉型)和變化。

拙見僅供參考。


問題需要重新措辭一下再發,DBA是Programmer的子集


DBA就是神啊,都在天上飄,我找了2年都找不到一個可用的DBA


純屬吐槽:
自從有了北大青鳥、什麼達內等等之後,程序員已經成了天底下門檻最低的職業之一了,就跟建築業的小工一樣,提得起灰桶就OK。
但是,好的程序員難找。一個優秀的程序員待遇未必遜色於DBA。
另一個原因是數量差異:一個公司需要一堆程序員幹活,但不需要那麼多DBA吧?


在我看來 DBA 的門檻要高一些,程序員整體入行門檻低。
大約因為「程序員」涵蓋的範圍太廣泛,各種水平層次的人混在一起,工資均值也會低一些。如果縮小範圍,比如 C/C++ 程序員,iOS/Android 程序員,或者初級 ASP/PHP 程序員,如此區分開來,工資階梯就會出現。
主要還是跟供應有關,門檻低的供貨多所以便宜,門檻高的和新興技術供貨少就貴點。


任何一個IT崗位,因為水平差距,待遇差距可能相當大:應屆畢業生可能3k~20K的差距;
有很多dev同事對我抱怨:開發感覺是個應屆生都能做,還是你們DBA好--工資高,工作輕鬆~那我就以我的日常工作和平時涉獵來說說DBA為什麼看起來DBA工資高:
1.一般說這話的是一個工作3年~5年,職業發展到瓶頸、本身技術能力不太強的dev,這說明他自己本身就不適合IT這個工種
2.DBA是不是錢多人少好混的行業:DBA屬於運維範疇,涉獵甚廣--DB(Oracle、MySQL)、Linux、硬體、網路、腳本(Python、Shell)、監控(Zabbix、nagois)無所不學,以我個人為例:我一年要看起碼20本技術書+各種rss訂閱博客;雖然Linux比不上SA,腳本能力比不上dev,網路水平比不上專業網管,硬體水平比不上存儲工程師,但也絕非泛泛的看了幾篇文章就行的~
3.針對趙丹所提的Oracle賣得貴,所以管理人員工資也高,我半支持:對於傳統行業這觀點適合,但對於互聯網行業(我本人在的),那裡的資深MySQL、MongoDB、Hbase的dba其實真的名副其實的厲害,高級的甚至能自己看或改資料庫源碼(譬如google、facebook、淘寶、網易內部都維護自己MySQL版本),這樣的內核級DBA工資再高也不為過吧~
4.最後,開發工資不低呀:稱職的dev3年經驗我知道的月薪10k~20k很多的


來扯個淡:私意揣測一下LZ的意思莫非想比較一下這兩個職位哪個錢景好奔哪個,個人覺得完全沒必要,真正喜歡IT的,肯定有強烈的求知慾和興趣的,so,follow your heart,讓興趣來決定,真正做自己喜歡做的事兒,即便錢少一點,又如何呢,一輩子總不能跟錢兒死磕到底的。即便你只鑽研一個方向,也總會遇到瓶頸的,這個瓶頸的突破怕只是知識的廣度了。瞎扯的,摺疊吧T-T


沒有說某個行業一定工資高,即使有也是暫時的稀缺性,過一段時間市場自然糾正過來了。要說高的也有,金融行業的「保代」一直是比較高的,因為門檻也比較高。

IT 行業即使現在資深DBA也與資深JAVA工程師、系統開發架構師處於同等的水平,並沒有特別高。 即使是JAVA程序猿裡面,薪資也可以差距達到1-5倍,我上家公司就有8000--4W之間各個檔次的JAVA程序猿。關鍵還是個人技術修鍊到的級別。

另外一個重要的地方是公司,好的公司和差的公司經常有一倍或以上的差距,對同一個人來說是經常有的。


DBA屬於專家級別的,而程序員分為初、中、高級的,再往上就是架構師與DBA之類的了,從等級看工資也肯定是DBA很高的,亞馬遜的DBA都開著寶馬上班呢,而做DB2的牛新莊的工資都上幾百萬,因為他是給國內銀行做DB2顧問的,所涉及的資金肯定很多,責任重大,工資當然高了。


同樣情況下 dba 的工資會高於開發部門的.

dba 的入門門檻比較高, 然後需要掌握的知識面也很廣,而不單單是sql 語言.

我招dba 都是找那些從系統管理員,轉行過來的, 通過培訓機構出來的量產的dba 我從來都不要.

不是說他們中沒有好苗子,而是我找好苗子的成本太高了.

經過幾個月的培訓,就出來一個合格的dba ,是不可能的.

完全同意樓上 郭風 的觀點.

樓下的說的不能給公司賺錢,就看他給公司省了多少錢,非常認同.


不能掙錢,就請省著花.


純粹來看,同一個水平的程序員和DBA,感覺DBA賺不過程序員的


dba從屬於程序員,dba也是需要編程的,比如說plsql編程,寫存儲過程,函數,觸發器等等,不僅僅只是會用16條簡單到不行的sql語句,建建表。dba是非常重要的崗位,管理著企業的幾乎所有數據,風險大,門檻高,招聘時經常要求要有工作經驗,工資相對比較高,也無可厚非。


老問題了。
程序員,很廣義的,看寫什麼東西,語言,看工作年限,國內不同的行業區別也很大。
DBA,oralce, mysql ,sqlserver ,可能現在MongoDB,Hbase,Infobright之類的也用的比較多了。
如果是一個正常的DBA,拿oracle來說,要懂的東西很多,資料庫本身,網路,存儲,OS,還有中間件。要寫shell,寫python等腳本。其實這些學個差不多也不是特別難,也就是所謂的實現功能完整。但是資料庫是有性能問題,優化這塊不是幾天能學的會的,而這會涉及到方方面面的問題。
我想DBA工資高,是資料庫裡面的數據值錢,你想想一個公司的數據的在他手裡,老闆還不多給點錢。還有DBA要有救火能力,程序員是沒有的,例如資料庫數據丟失,資料庫崩了,你想想一個 OLTP資料庫掉了,老闆還不哭死。那麼這個時候就該你出手的時候了,如果你能迅速的把資料庫拉起來,重要數據恢復了,老闆是很開森的。而這個時候,是考驗你的承受能力,心理壓力很大的哦,想想公司幾個老大站在你後面看你操作伺服器和資料庫。程序員是沒有的。

又說回來,程序員不是工資不高,高的多了去了,你看看國內的BAT,他們工資低嗎?寫遊戲的那些人,工資低嗎?不低,為什麼吶 因為公司賺到錢了啊,如果老闆摳了吧唧的,有的是公司要他們這些人,懂業務又懂技術,來了就寫現成的代碼。培訓文檔的不用看。吼吼吼。。

樓上說的什麼資料庫賣的貴,我想說的是資料庫能有資料庫裡面存儲的數據貴? 數據丟了是找不回來的哦,例如有些特別重要的CRM數據。

本人java寫過,oracle搞過。


DBA更難,難在需要積累。除了看書,技術上需要在真實環境進行深刻的積累。
另外就是要有強大的內心,dba經常需要處理突發問題,而且解決周期都有時間限制,壓力大。
再一點就是強健的體魄了,三更半夜資料庫宕機了,起來重啟資料庫的是你,資料庫遷移什麼的,通常也只能在晚上進行。


上海交通大學法國格勒諾布爾大學DBA


有一個牛逼的DBA很重要,我有深刻的體驗


別的語言不清楚,但是java想玩的高深,想成為碼農中的架構師,要懂得東西比dba不會少,只會多。現在流行的分散式架構和集群要會玩吧:動靜分離、負載均衡、分散式緩存、mysql分散式,微服務架構。其實任何一個崗位想做到高深都不容易的,但是真正皇冠層的還是搞大數據演算法的,其他的技術只要肯花心思都能學得會,但是大數據的各種演算法,想入門,先至少花N久把數學和統計學補起來吧。


工資高低取決於稀缺性和行業特性。


我是計算機專業,大三的學生,畢業後想從事DBA工作,能不能請教下大家我現在該自學些什麼呢


我是個企業管理員。bill gates 就是個程序員不


我是即將畢業的一名學生,如果以後不想轉行想持續地做IT下去,不知道DBA這種可以通過慢慢積累經驗的工作是否比程序員這種畢業後能馬上打工,但是只能打工10年到後面不得已轉行的工作要好?


推薦閱讀:

為什麼有時候你跟別人的情況完全一樣,但是工資卻差了30%以上?
python爬蟲庫里的get請求是怎麼實現的?
作為一個程序員,至少需要掌握哪幾種編程語言?
什麼筆記本電腦適合學習編程的窮學生學習?
為什麼程序員薪水這麼高?很多工業比如石油能源等行業薪水都偏低?

TAG:程序員 | 編程 | 甲骨文Oracle | 資料庫管理員DBA |