数据库工程师教程全程指导,说说数据库工程师必备的一个技能
数据库工程师教程全程指导,说说数据库工程师必备的一个技能回到上面那个例子中来,我们跑数据的,是不是只要让数据跑完就结束了呢?这种做法我大概率是不同意的。如果你工作不满5年,我觉得还可以原谅,但如果你已经工作了7 8年,还是这种态度对自己的程序,那我多半也是不会给你太重要的任务。我想你的领导或者老板也是。如果一个人能够愿意接受别人的批评,对自己还是大有裨益的。在我的整个职业生涯中,似乎遇到都是客客气气,很nice的同事,上级。你做错了,也不会有人来指出你的错误。但恰恰是这样顺风顺水的环境,让我做出了很多自以为是的错误,也付出了很多的代价。如今看来,还是缺少那种善于向我抛出反对意见的朋友。当然也有可能是我自己脸皮太厚,别人善意的一个小批评我没留意听。这只能是我的损失。所以有读者要留言说我两句,请尽量留言。这是我少数认真吸取别人意见的地方。有人害怕别人向自己指出自己的错误,不够坦然,甚至勃然大怒,连朋友都没得做。有人不愿启齿,指出你的错误,也怕你不能
图 | 榖依米
作为一名程序员,尤其是数据库程序员,你会对你的代码负责吗?你是怎么做的。
我经常看到很多年轻的数据库编程人员,似乎唯一的目的就是让代码跑起来,能够成功地搬运数据,从一个地方到另一个地方,就满足了。偶尔有遇到程序跑的慢的时候,他们会停下来,思考下,如何让程序跑的更快。除此之外,只要程序跑下来不出错,也就丢在那里,不管不问。
当然这样也没错,没有人逼着你非要去整一套完美的方案。在职场上,几乎没人愿意去说你的不对,指出你做错的地方,因为错误的地方,终究是要有人负责的,那么谁负责呢,谁是工作中失误最大的受害人呢?我想我不说,你也知道。
在我的整个职业生涯中,似乎遇到都是客客气气,很nice的同事,上级。你做错了,也不会有人来指出你的错误。但恰恰是这样顺风顺水的环境,让我做出了很多自以为是的错误,也付出了很多的代价。如今看来,还是缺少那种善于向我抛出反对意见的朋友。
当然也有可能是我自己脸皮太厚,别人善意的一个小批评我没留意听。这只能是我的损失。所以有读者要留言说我两句,请尽量留言。这是我少数认真吸取别人意见的地方。
有人害怕别人向自己指出自己的错误,不够坦然,甚至勃然大怒,连朋友都没得做。有人不愿启齿,指出你的错误,也怕你不能承受,怕被你当成仇人。所以犯错和捕获,并不像程序那般简单,认错与批评总是矛盾的对立面。
如果一个人能够愿意接受别人的批评,对自己还是大有裨益的。
回到上面那个例子中来,我们跑数据的,是不是只要让数据跑完就结束了呢?这种做法我大概率是不同意的。如果你工作不满5年,我觉得还可以原谅,但如果你已经工作了7 8年,还是这种态度对自己的程序,那我多半也是不会给你太重要的任务。我想你的领导或者老板也是。
我举个例子,好比你有一项任务,就是跑数据,将2亿数据从生产库导入到报表库。
老板什么都没说,就丢给你这个活儿,你准备怎么做?这也是我经常问面试者的一个话题,你从面经上,基本找不到这样的题目吧。
这里提下我作为面试官,经常提的一些问题:
我在面试数据库工程师候选人时,常问的一些题
但这类题目却和实际项目息息相关。你的技能经验,你的细心,你做事的态度,还有对程序的一种好奇心,都能体现在这一个题目中,更重要的是你给上级领导、主管的一种信任基础。
那么,回答这类题,大概有几个方向,做到了,我认为就合格了 比如:
- 是否流程可控,随时可停,可启(动)
- 是否影响正常业务的流转,运行
- 是否能随时调整批次的数量大小(直接说 update/insert 的朋友,好好补课)
- 能否有跑批的存量、效能监控图
- 能否有效验证最终结果的一致性,完整性
- 能否随时跟上级主管汇报工作进展,包括进展,异常以及完成时间预估
做到这几点,无非就是做个监控,加个日志表,但这些却都体现你做事的完整性,属于职场加分。但现实中,很少有朋友原意这样做,大都一个存储过程解决所有问题,看不到完整性,上级问起来进展,也就是还在进行,数据量大,需要花些时间。
哪怕自己用excel搭两个报表,自己看着是不是有种尽在掌握的感觉?
--完--