每当我向别人介绍我的数据库工程师职位时,人们都会用不解的目光看着我。总会有一个问题:数据库工程师是做什么的?我经常听到数据库管理员(DBA)、数据分析师、数据库开发工程师、数据挖掘工程师、数据架构师和ETL工程师等职位。比较迷茫。但是随着我工作的时间长了,我对这些职位也有了一些了解。希望通过这篇文章,让想从事数据库的朋友们有一定的了解。数据库工程师一般分为两种:开发和管理。普通人刚接触数据库基本都是数据库开发,就是写SQL代码,按照一定的语法完成一定的逻辑任务。这个阶段根据需求查询数据就可以了,没有逻辑错误就可以了。我一开始就是从事这种工作的。每天统计各个部门的数据就可以了。工作比较简单。当然,初期的工作不会让你做很复杂的工作。一般一些小公司会直接聘请软件开发工程师来做这类工作。只有对数据需求频繁的公司,才会单独设置这种比较初级的数据统计岗位。或者给一些大型企业做服务外包,比如银行、电信、电力等,这些企业还是需要这类数据库开发的人才,尤其是应届毕业生实习生。随着知识的积累,你将接触到的开发任务会越来越复杂。这个时候你会接触到越来越多的技术,从数据采集,到数据处理,到数据分发等等都会涉及到。数据库管理就是我们常说的DBA。主要从事数据库管理工作,包括数据备份、恢复、故障排除、查询优化、性能监控等,需要对操作系统和数据库的原理有一定的了解。对自身技术能力的要求比较高,所以除非那些新人在这方面有比较高的造诣和研究,否则公司是不会招新人来担任这个职位的。一般数据库开发或者软件开发都会转DBA。他们使用了大量的数据库,经过长时间的使用,对数据库的性能和故障排除有了一定的了解。当然,也有其他职位跳槽到DBA的。不变的是,他们长期与数据库打交道。在工作薪资方面,了解到DBA的薪资普遍高于数据库开发,有经验的DBA只能和普通人相提并论。当然,也有删除数据库跑路的DBA。重要的是一些技术原理的掌握和对故障的准确判断,这些都是日积月累积累的。目前国内普遍比较流行的DBA有Oracle和Mysql,也有MSSQL的DBA,比较少。这与数据库的共享性和通用性有关。Oracle和Mysql在Windows和Linux环境下都很好兼容,但是MSSQL直到2017年才支持自家的Windows操作系统。新手想进入数据行业的启蒙数据库大多是MSSQL,主要是因为它的可视化界面是比Oracle和Mysql更友好。但真正的高手还是更喜欢命令界面。毕竟命令界面的响应速度不是一点点的快,而且命令界面也有助于更好的记住数据库的相关命令(以上是我的愚见)。想要快速上手数据库,唯一的办法就是理论加实践,多看书,多操作。我觉得不管是哪一行都是一样的。我真的不同意那些宣传一个月从入门到精通的培训或教程。也许我很笨。之前的一个月,我连跟视频教程的门都找不到。真正让我成长的是每天下班后成堆的数据需求,逼着我不断努力提高。当然,这并不是否定培训的价值。它们是指导我们打好基础的有效方法,剩下的就完全靠我们自己了。因为有些问题只能在工作中遇到才能处理,纸上谈兵是解决不了问题的。另外,要有提问的精神和勇气。就算老师想把所有的知识都传授给你,但你不懂的地方他也不知道,只能按照他自己的规矩教。结果是他的任务完成了。至于你懂不懂,他不知道。同样的,我在写这篇公众号的时候,也是从我的经历的角度来科普一下知识,但是至于我科普的内容你们有没有完全掌握,或者有什么不懂的,不知道你们有没有告诉我。其实我也欢迎大家来问我,但是我发现很多同学只是关注而已,被动接受知识的效果不是很明显。我不是一个伟大的大师。遇到问题我会去问别人,直到我自己解决了,想通了。能帮你解决问题的人值得学习和求教。把数据库打好基础真的不难,只要肯花时间练。基础知识可以在短时间内掌握。再加上实践,经过时间的磨练,总会在某一方面有自己的成就。与其他软件工程师相比,数据库工程师目前确实比较尴尬。很少有人知道,但随着互联网数据的爆发式增长,我个人认为对这方面更多专业人才的需求会越来越强烈。当然,我个人认为最重要的是兴趣,切不可随波逐流。
