複製鏈接
請複製以下鏈接發送給好友

數據庫開發工程師

鎖定
數據庫開發工程師(Database Developer)是從事數據庫管理系統(DBMS)和數據庫應用軟件設計研發的相關工作人員的統稱,他屬於軟件研發工程師,但又有一部分運維工作的內容。他主要從事軟件研發的工作,但同時也要參與數據庫生產環境的問題優化和解決。
數據庫開發工程師與傳統的數據庫管理員(簡稱DBA,也稱為數據庫工程師)是不同的職位。傳統的DBA主要屬於運維職位,而數據庫開發工程師則屬於軟件研發職位。但二者也有部分工作內容重合,比如都要跟進數據庫生產環境出現的故障問題,其中DBA主要負責故障處理,而數據庫開發工程師主要跟進自己開發的系統模塊出現的bug或性能問題 [1] 
根據研發的內容不同,數據庫開發工程師可以分為兩大發展方向:數據庫內核研發和數據庫應用軟件研發:
(a)數據庫內核研發:主要負責設計和研發數據庫管理系統,重點關注的是數據庫管理系統內部架構的設計和實現,比如MySQL分支的開發、Oracle 10g新特性開發等;
(b) 數據庫應用軟件研發:主要負責設計和研發數據庫管理系統衍生的各種應用軟件產品,重點關注的是數據庫外部應用軟件產品架構的設計和實現,比如分佈式數據庫數據庫中間件等。
中文名
數據庫開發工程師
外文名
Database Developer
技    能
數據庫軟件研發
相關詞條
數據庫管理員軟件研發工程師

數據庫開發工程師主要職責

  • 深入研究數據庫內核相關技術,設計並實現數據庫管理系統
  • 深入瞭解數據庫應用的業務需求,主導設計不同數據庫架構的應用軟件,並持續優化
  • 根據業務需求設計數據庫邏輯和物理模型, 開發數據庫生產環境所需要的存儲過程、函數、腳本等
  • 參與數據庫生產環境的問題優化和解決
  • 探索、研究新的數據庫架構發展方向

數據庫開發工程師工作內容

數據庫開發工程師的日常工作是設計、開發數據庫系統和數據庫應用軟件,因此與軟件研發的過程一樣,會覆蓋需求、設計、編程和測試四個階段:
  1. 需求:深入調研用户市場需求,認清項目的應用場景,解決的問題,性能指標等,需要與數據庫系統使用方反覆溝通,確定具體的需求。
  2. 設計:根據收集整理的需求文檔設計數據庫系統軟件的模型和架構,劃分模塊分別進行概要和詳細設計。
  3. 編程:按照模塊分工和設計文檔,進行編碼和調試。
  4. 測試:將開發完成的數據庫系統交給測試人員進行測試,主要使用的測試方法有黑盒測試、白盒測試、壓力測試、性能測試等,測試全部通過後即可等待發布。
當數據庫系統軟件完成發佈後,數據庫開發工程師還需要跟進具體的生產環境使用情況,參與具體問題的改進和優化,提供解決方案。

數據庫開發工程師技能要求

1. 通用基礎技能要求
(1)精通一種常用編程語言C/C++、JAVA、PHP等),瞭解主流的框架、庫使用和原理
(2)深入瞭解計算機數據結構和算法設計,具備Linux操作系統基礎知識
(3)掌握基本的網絡編程知識,熟悉多線程編程及其技巧
(4)熟練掌握Linuxweb server、數據庫、緩存相關技術的使用,瞭解內部實現機制為最優
(5)掌握數據庫基本原理和知識,熟悉SQL語法規則和特點
(6)有開源數據庫(MySQLPostgreSQL等)研究和開發經驗
2. 高階要求
(1)熟練掌握分佈式系統理論並有着大量實踐
(2)開源社區成員,為開源軟件提交過patch
(3)精通Linux系統IO、鎖等調優技術
3. 軟素質要求
(1)有良好的英語閲讀能力,能夠閲讀英文資料
(2)自我驅動,主動的學習能力和較強的動手能力
(3)工作認真細緻,有責任心,勤奮踏實,善於思考問題
(4)有時間觀念,獨立性強,溝通能力好,具有團隊合作精神

數據庫開發工程師職業發展

數據庫開發工程師人才來源

數據庫開發工程師的人才來源可以分為2個方面:應屆畢業生和社招。
(1)應屆畢業生:對於應屆畢業生來説,要想成長為數據庫開發工程師需要具備一些軟件研發方面的技能,同時對數據庫理論基礎有一定了解,對於數據庫管理系統有一些實踐經驗,再加上較好的主動性、工作認真細緻、具有團隊合作精神即可;
(2)社招:社會招聘主要可以從軟件研發和DBA兩個方面來篩選人才。對於之前從事大型分佈式軟件系統研發的工程師,比較容易轉型為數據庫開發工程師,只需要熟悉一些數據庫架構和理論基礎即可。而對於DBA來説,已經擁有大量的數據庫運維經驗,對於數據庫研發工作非常有幫助,此時再需要掌握一定的代碼編寫能力和分佈式計算的基礎,即可轉型成為數據庫開發工程師。

數據庫開發工程師職業發展方向

數據庫開發工程師的職業發展主要分為兩條線:技術方向和管理方向。
(1)技術方向:根據研究領域的不同,主要分為數據庫架構師和數據庫運維技術專家兩個方向。
  • 數據庫架構師:熟練掌握各種數據庫管理系統的架構和內部原理,能夠根據實際業務需求,設計出不同的數據庫應用系統架構,並在業務高速發展時,提供數據庫模型設計的優化建議和解決方案
  • 數據庫運維技術專家:這個發展路線與高階DBA的發展路線比較相似。當數據庫開發工程師在跟進和解決數據庫生產環境問題的過程中,積累了大量的運維經驗,熟練掌握了大量先進的數據庫運維技術,比如分佈式部署、性能監控、彈性擴容等,可以成長為數據庫運維技術專家,為各產品提供數據庫架構設計和優化建議。
(2)管理方向:從數據庫開發工程師開始持續發展,積累了一定技術深度,並且通過與業務部門交互溝通鍛鍊了較強的協調和推進能力,可以轉型為管理崗位。管理崗位的常見發展路徑包括經理、總監、CTO、CEO等,往往在小型創業公司管理崗位發展迅速,在中大型公司的發展速度相對較慢。

數據庫開發工程師職業發展路徑

數據庫開發工程師的常見職業發展路徑如圖1所示,供參考:
圖1 圖1

數據庫開發工程師行業競爭力

數據庫開發工程師薪酬競爭力

(1)橫向對比:數據庫開發工程師屬於專項領域的高質量技術人才市場需求旺盛,薪酬競爭力較高,往往高於軟件研發工程師
(2)縱向對比:隨着經驗和技術深度的積累,越資深的研發工程師往往越值錢。但是公司規模不同,薪酬往往差別較大。由於小公司在數據庫研發領域起步晚,需求低,因此中小公司的薪酬往往略低於BAT等大型公司。
(3)第三方薪酬調查報告
《2013年數據庫工程師薪酬調查報告 [2] 
《Database Developer Salary [3] 

數據庫開發工程師市場需求

(1)數據庫研發行業的市場價值:參考ITOM(IT Operation Management) 2013年的市場規模是190億美金
(2)人員需求:中大型公司尤其緊缺,初創公司需求量較低

數據庫開發工程師技術能力

(1)數據庫開發工程可以接觸到最前沿的數據庫系統,業界比較流行的數據庫系統主要分為關係型的和非關係型的,這些數據庫都成為當前國內外大型公司的底層存儲系統
關係型數據庫:MySQL、Oracle、SQL Server、IBM DB2
非關係型數據庫(NoSQL):Redis、MongoDB、HBase、Cassandra
(2)根據不同應用場景,數據庫架構又可以分為單機數據庫、集羣式數據庫、分佈式數據庫雲數據庫等。由於經驗的不同,數據庫開發工程熟練掌握的數據庫架構往往不同,越高階的數據庫開發工程掌握和了解業界的數據庫架構前沿知識越豐富。
參考資料