数据库开发工程师的日常工作是设计、开发数据库系统和数据库应用软件,因此与软件研发的过程一样,会覆盖需求、设计、编程和测试四个阶段:
当数据库系统软件完成发布后,数据库开发工程师还需要跟进具体的生产环境使用情况,参与具体问题的改进和优化,提供解决方案。
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)有时间观念,独立性强,沟通能力好,具有团队合作精神
数据库开发工程师的人才来源可以分为2个方面:应届毕业生和社招。
1)应届毕业生:对于应届毕业生来说,要想成长为数据库开发工程师需要具备一些软件研发方面的技能,同时对数据库理论基础有一定了解,对于数据库管理系统有一些实践经验,再加上较好的主动性、工作认真细致、具有团队合作精神即可;
2)社招:社会招聘主要可以从软件研发和DBA两个方面来筛选人才。对于之前从事大型分布式软件系统研发的工程师,比较容易转型为数据库开发工程师,只需要熟悉一些数据库架构和理论基础即可。而对于DBA来说,已经拥有大量的数据库运维经验,对于数据库研发工作非常有帮助,此时再需要掌握一定的代码编写能力和分布式计算的基础,即可转型成为数据库开发工程师。
数据库开发工程师的职业发展主要分为两条线:技术方向和管理方向。
1)技术方向:根据研究领域的不同,主要分为数据库架构师和数据库运维技术专家两个方向。
2)管理方向:从数据库开发工程师开始持续发展,积累了一定技术深度,并且通过与业务部门交互沟通锻炼了较强的协调和推进能力,可以转型为管理岗位。管理岗位的常见发展路径包括经理、总监、CTO、CEO等,往往在小型创业公司管理岗位发展迅速,在中大型公司的发展速度相对较慢。
数据库开发工程师的常见职业发展路径如下图,供参考:
1)横向对比:数据库开发工程师属于专项领域的高质量技术人才,市场需求旺盛,薪酬竞争力较高,往往高于软件研发工程师
2)纵向对比:随着经验和技术深度的积累,越资深的研发工程师往往越值钱。但是公司规模不同,薪酬往往差别较大。由于小公司在数据库研发领域起步晚,需求低,因此中小公司的薪酬往往略低于BAT等大型公司。
3)第三方薪酬调查报告:
《2013年数据库工程师薪酬调查报告》
《Database Developer Salary》
1)数据库研发行业的市场价值:参考ITOM(IT Operation Management) 2013年的市场规模是190亿美金
2)人员需求:中大型公司尤其紧缺,初创公司需求量较低
1)数据库开发工程可以接触到最前沿的数据库系统,目前业界比较流行的数据库系统主要分为关系型的和非关系型的,这些数据库都成为当前国内外大型公司的底层存储系统。
关系型数据库:MySQL、Oracle、SQL Server、IBM DB2
非关系型数据库(NoSQL):Redis、MongoDB、HBase、Cassandra
2)根据不同应用场景,数据库架构又可以分为单机数据库、集群式数据库、分布式数据库和云数据库等。由于经验的不同,数据库开发工程熟练掌握的数据库架构往往不同,越高阶的数据库开发工程掌握和了解业界的数据库架构前沿知识越丰富。