21世紀我們迎來了互聯網時代,也迎來了數據庫開發工程師。
數據庫開發工程師(Database Developer)是從事數據庫管理系統(DBMS)和數據庫應用軟件設計研發的相關工作人員的統稱,他屬于軟件研發工程師,但又有一部分運維工作的內容。他主要從事軟件研發的工作,但同時也要參與數據庫生產環境的問題優化和解決。
數據庫開發工程師與傳統的數據庫管理員(簡稱DBA,也稱為數據庫工程師)是不同的職位。傳統的DBA主要屬于運維職位,而數據庫開發工程師則屬于軟件研發職位。但二者也有部分工作內容重合,比如都要跟進數據庫生產環境出現的故障問題,其中DBA主要負責故障處理,而數據庫開發工程師主要跟進自己開發的系統模塊出現的bug或性能問題 。
根據研發的內容不同,數據庫開發工程師可以分為兩大發展方向:數據庫內核研發和數據庫應用軟件研發:
a) 數據庫內核研發:主要負責設計和研發數據庫管理系統,重點關注的是數據庫管理系統內部架構的設計和實現,比如MySQL分支的開發、Oracle 10g新特性開發等;
b) 數據庫應用軟件研發:主要負責設計和研發數據庫管理系統衍生的各種應用軟件產品,重點關注的是數據庫外部應用軟件產品架構的設計和實現,比如分布式數據庫、數據庫中間件等。
主要職責:
-
深入研究數據庫內核相關技術,設計并實現數據庫管理系統
-
深入了解數據庫應用的業務需求,主導設計不同數據庫架構的應用軟件,并持續優化
-
根據業務需求設計數據庫邏輯和物理模型, 開發數據庫生產環境所需要的存儲過程、函數、腳本等
-
參與數據庫生產環境的問題優化和解決
-
探索、研究新的數據庫架構發展方向
工作內容:
數據庫開發工程師的日常工作是設計、開發數據庫系統和數據庫應用軟件,因此與軟件研發的過程一樣,會覆蓋需求、設計、編程和測試四個階段:
-
需求:深入調研用戶市場需求,認清項目的應用場景,解決的問題,性能指標等,需要與數據庫系統使用方反復溝通,確定具體的需求。
-
設計:根據收集整理的需求文檔設計數據庫系統軟件的模型和架構,劃分模塊分別進行概要和詳細設計。
-
編程:按照模塊分工和設計文檔,進行編碼和調試。
-
測試:將開發完成的數據庫系統交給測試人員進行測試,主要使用的測試方法有黑盒測試、白盒測試、壓力測試、性能測試等,測試全部通過后即可等待發布。
當數據庫系統軟件完成發布后,數據庫開發工程師還需要跟進具體的生產環境使用情況,參與具體問題的改進和優化,提供解決方案。
技能要求:
1. 通用基礎技能要求
1)精通一種常用編程語言(C/C++、JAVA、PHP等),了解主流的框架、庫使用和原理
2)深入了解計算機數據結構和算法設計,具備Linux操作系統基礎知識
3)掌握基本的網絡編程知識,熟悉多線程編程及其技巧
4)熟練掌握Linux、web server、數據庫、緩存相關技術的使用,了解內部實現機制為最優
5)掌握數據庫基本原理和知識,熟悉SQL語法規則和特點
6)有開源數據庫(MySQL、PostgreSQL等)研究和開發經驗
高階要求:
1)熟練掌握分布式系統理論并有著大量實踐
2)開源社區成員,為開源軟件提交過patch
3)精通Linux系統IO、鎖等調優技術
軟素質要求:
1)有良好的英語閱讀能力,能夠閱讀英文資料
2)自我驅動,主動的學習能力和較強的動手能力
3)工作認真細致,有責任心,勤奮踏實,善于思考問題
4)有時間觀念,獨立性強,溝通能力好,具有團隊合作精神
職業發展:
1. 人才來源
數據庫開發工程師的人才來源可以分為2個方面:應屆畢業生和社招。
1)應屆畢業生:對于應屆畢業生來說,要想成長為數據庫開發工程師需要具備一些軟件研發方面的技能,同時對數據庫理論基礎有一定了解,對于數據庫管理系統有一些實踐經驗,再加上較好的主動性、工作認真細致、具有團隊合作精神即可;
2)社招:社會招聘主要可以從軟件研發和DBA兩個方面來篩選人才。對于之前從事大型分布式軟件系統研發的工程師,比較容易轉型為數據庫開發工程師,只需要熟悉一些數據庫架構和理論基礎即可。而對于DBA來說,已經擁有大量的數據庫運維經驗,對于數據庫研發工作非常有幫助,此時再需要掌握一定的代碼編寫能力和分布式計算的基礎,即可轉型成為數據庫開發工程師。
職業發展方向:
數據庫開發工程師的職業發展主要分為兩條線:技術方向和管理方向。
1)技術方向:根據研究領域的不同,主要分為數據庫架構師和數據庫運維技術專家兩個方向。
-
數據庫架構師:熟練掌握各種數據庫管理系統的架構和內部原理,能夠根據實際業務需求,設計出不同的數據庫應用系統架構,并在業務高速發展時,提供數據庫模型設計的優化建議和解決方案
-
數據庫運維技術專家:這個發展路線與高階DBA的發展路線比較相似。當數據庫開發工程師在跟進和解決數據庫生產環境問題的過程中,積累了大量的運維經驗,熟練掌握了大量先進的數據庫運維技術,比如分布式部署、性能監控、彈性擴容等,可以成長為數據庫運維技術專家,為各產品提供數據庫架構設計和優化建議。
2)管理方向:從數據庫開發工程師開始持續發展,積累了一定技術深度,并且通過與業務部門交互溝通鍛煉了較強的協調和推進能力,可以轉型為管理崗位。管理崗位的常見發展路徑包括經理、總監、CTO、CEO等,往往在小型創業公司管理崗位發展迅速,在中大型公司的發展速度相對較慢。
行業競爭力
1. 薪酬競爭力
1)橫向對比:數據庫開發工程師屬于專項領域的高質量技術人才,市場需求旺盛,薪酬競爭力較高,往往高于軟件研發工程師
2)縱向對比:隨著經驗和技術深度的積累,越資深的研發工程師往往越值錢。但是公司規模不同,薪酬往往差別較大。由于小公司在數據庫研發領域起步晚,需求低,因此中小公司的薪酬往往略低于BAT等大型公司。
3)第三方薪酬調查報告:
《2013年數據庫工程師薪酬調查報告
《Database Developer Salary
市場需求
1)數據庫研發行業的市場價值:參考ITOM(IT Operation Management) 2013年的市場規模是190億美金
2)人員需求:中大型公司尤其緊缺,初創公司需求量較低
3. 技術能力
1)數據庫開發工程可以接觸到最前沿的數據庫系統,目前業界比較流行的數據庫系統主要分為關系型的和非關系型的,這些數據庫都成為當前國內外大型公司的底層存儲系統。
關系型數據庫:MySQL、Oracle、SQL Server、IBM DB2
非關系型數據庫(NoSQL):Redis、MongoDB、HBase、Cassandra
2)根據不同應用場景,數據庫架構又可以分為單機數據庫、集群式數據庫、分布式數據庫和云數據庫等。由于經驗的不同,數據庫開發工程熟練掌握的數據庫架構往往不同,越高階的數據庫開發工程掌握和了解業界的數據庫架構前沿知識越豐富。
數據開發工程師的發展前景好,月薪也高,是一個非常不錯的職業。
本文由培訓無憂網喜巧發布,更多信息歡迎關注培訓無憂網數據庫開發工程師培訓頻道或添加老師微信:15033336050
注:尊重原創文章,轉載請注明出處和鏈接 http://m.dedgn.cn/news-id-3227.html 違者必究!部分文章來源于網絡由培訓無憂網編輯部人員整理發布,內容真實性請自行核實或聯系我們,了解更多相關資訊請關注數據庫工程師頻道查看更多,了解相關專業課程信息您可在線咨詢也可免費申請試課。關注官方微信了解更多:150 3333 6050