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