程序媛成长纪:从DBA到研发工程师

简介:

编者按:某日于X信偶遇张亮兄弟,已经跳槽到某东了。且开源项目Sharding-Sphere风声水起。开源这件事,做一年不难,难得的是持续投入和品质,包括生态的养成。为了表达对于开源项目的支持,收录张亮兄弟女弟子潘娟投稿一篇,作为程序媛可能获得某些优待如(妹子独有的沟通优势又能推动项目推广、与启荣老板畅谈人生),但仍然要经历无数的虐(P1级故障、投诉、争吵与被尊重)、无数的跨越式成长(数据库、运维、分布式技术...),成功没有捷径......

 十一的北京秋高气爽,坐在地铁上写下这些故事,愿与你产生共鸣,与我总结后,继续战斗。 

起于DBA

  • 契机

诚实讲,我一直不清楚自己想做什么。于是,研究生临近毕业,麻木游离在各大公司的面试中。感谢和启荣 (刘启荣,现京东金融运维副总监)的相遇,让我开启了DBA的航程。启荣老大是个高情商、接地气的老板。我是第一次遇到面试谈人生问题,不告诉面试结果,一言不合就让我来听他讲课的面试官。当时他讲到的数据库与DBA的世界,以及那种自由又充满生机的互联网交流氛围,让我意识到有些人是与众不同的,有些地方是心之所向的。

  • 日常

DBA的工作是严谨、有趣、辛苦的。一个初出茅庐的丫头,突然闯入一个全新数据库世界,又空降在京东这样量级的平台上,所谓的数据库技术、业务架构、系统的视野与互联网的眼界,就像山呼海啸一样奔腾而来,以至于产生了一种真的扛不住的无力感。但是,为我抉择的负责,为大家给予我信任的回报,持有这样心理的我,开始疯狂地像海绵一样吸收着这海洋般的知识,并不断提升着自己的认知。一整年的周末都躲到公司无人的会议室啃着《MySQL技术内幕:innodb存储引擎》、《高性能MySQL》、工作笔记、Shell编程技术,去培养自己的数据库知识及运维技能。因为我知道,当一个人没有足够实力的时候,只有时间和努力才能让她蜕变,以及获得别人的尊重。

作为组里唯一的妹子,感谢他们只是把我当汉子用,而不是当牲口用。很多夜间运维的活儿尽量不给我。不过我真心觉得,只有这些真刀真枪的工作才能见识真正的战场,只有这样的战场才能让战士迅速成长。所以我投入了这无尽的战斗中,看到过凌晨3点的月亮,也哭诉过整夜迁移无尽头的折磨和无奈。而第一次失误导致用户收到乱码短息、被投诉造成P1级别(最高P0)故障时,也终于知道什么叫电话被领导打爆。一个人自责地在冬天回龙观的大街上嚎啕大哭,不知所措,着急地想抽自己两嘴巴子!现在觉得,那场景非常类似电影里小姑娘被男朋友甩了的经典剧情。不过那种疼到骨子里的自责确实让我真切地感受到生产环境的重要性,以及DBA工作的极尽严谨,我输入的一条命令背后是千千万万与业务紧密相关的数据,是无数用户的使用与体验。好吧,更是我甩给老板的锅和整个部门战友们的KPI。感谢那一次次让我头破血流的南墙,因为它让我知道了做事的深浅与尺度,让我拥有了能够面对更大挑战的勇气和力量。

  • 总结

这段时间让我成长为一个合格的DBA。除了掌握数据库知识体系及周围生态外,还积累了大规模数据库运维经验。此外,所谓的风险意识、快狠准和粗中有细的运维意识也开始慢慢建立。但我觉得有两个能力非常重要,那就是:作为下属对上级命令的绝对执行力,以及面对严苛环境的抗击打能力。

承于DevOps

  • 契机

人工运维以及脚本运维已经无法满足激增的业务发展,对数据库运维要求出现多元化、多维度的需求。同时运维的边际效益日益凸显,于是整个运维部门开始向DevOps转变。而当时负责数据库工单系统自动化平台建设的前辈突然被借调,于是该项目基本停滞。那时,我心里小恶魔非常想让我主动请缨负责这个项目,但当时的我并没有多少项目开发经验,人微言轻。可是,依据当时部门发展风向,自动化是大势所趋,只有顺势而为,才能有机会获得大家的认可和肯定,此时若主动出击,便有可能危中求机。再静心分析,前期积累的大规模数据库运维经验,可以让我理解这个项目的核心需求和期望,而曾经和研发及运维同事的交往基础、妹子独有的沟通优势又能推动项目推广。于是在得到欢哥(周欢,现网联数据库负责人)鼓励和授权后,开始动手!正如那句话所说:并不是所有的比赛,都能允许你做好十足的准备。面对危机,有时候尝试放手一搏,可能会带来希望和转机。

  • 日常

没有Python经验,我就死啃Python开发,并换工位到组里Python大神旁边,方便随时请教。大半年的时间基本处于封闭开发状态,实行小步迭代的敏捷开发方针。在地铁上分析需求、设计方案、构思代码。在公司跟老板明确需求、开发功能、解决Bug。周末则利用业务低谷,进行上线测试。此外,还要跨部门合作和推广。刚开始的时候,工作推动很难有进展。因为别人根本不听你说什么,任你焦急、愤怒,全都无济于事。越是想着如何说服对方,越只能得到升级版的争吵。后来渐渐意识到,不要尝试与他人争对错,因为根本没有对错。如何通过协商、退让达到双方共赢、双方满意的目的才是王道。同时,启荣哥告诉我互联网的三不要精神:不要钱、不要脸、不要命,我觉得很有道理。在一次次的沟通和打脸后,信任逐渐被建立起来了。对方尊重你,是尊重你的付出,尊重你的能力,尊重双方的利益。最终,数据库工单平均执行效率提高70%、非法工单拦截率为30%、工单正确执行率保持在99.99%的报告终于为这大半年的付出画上圆满的句号。

  • 总结

这个阶段依据部门风向,从运维DBA转向数据库运维开发DBA,积累了项目开发经验,未卜先知的情况下,竟为后续转行打下基础。此外,跨部门沟通合作、推广也让我懂得了要学会选择和衡量、共赢与合作,并保持乐观平和的心态。

转于JAVA

  • 契机

数据库自动化工单平台已取代人肉工单操作,发展趋于平稳,同时深感自己的圈子和视界太狭隘。就在这样浑水摸鱼的时候,启荣老板给我介绍了新的男神:张亮,原当当架构部负责人,热爱开源,怀揣着将Sharding-Sphere打造为业界一流的金融级开源分布式数据库中间件的梦想加入了京东金融。可能考虑到我DBA的知识积累和研究生英语水平,当然最重要的是我不要脸的人美心善。所以,让我协助亮哥将Sharding-Sphere官档翻译成英文。开源、数据库中间件、微服务、分布式事务、数据库治理……一大堆新鲜的名词冲进我贫困的大脑,打开了更广阔世界的天窗,并对我产生强大吸引力。此外,当时平滑的成长曲线让我迫切想打开自己狭隘视野的枷锁。于是,我开始仔细分析现状:开源、分布式、微服务、Java开发等对我来说又是个全新领域,转行可能将抛弃部分积累的数据库行业积淀。不过,这些数据库运维经验,对全是Java开发以及架构出身的团队来讲,未尝不是一种互补的优势。同时,前期数据库自动化工单平台项目也能帮我做跨行的平滑过渡。思及此时,我终于跟启荣探讨了人生问题和情感问题,并转向了金融级开源分布式数据库中间件Sharding-Sphere的开发。

  • 日常

前期对官档的翻译工作,让我对Sharding-Sphere的核心功能,产品定位有了比较全面的理论层面认识。于是开始从源码层面入手,修改小的Bug,编写测试用例,到后来负责一整块的内核功能。在亮哥的指导下不断深入Sharding-Sphere,并对编码又了新的理解。它绝对不是故步自封,随心所欲地编写,而是存在规则和逻辑的简洁优雅编码之道以及重构迭代的价值意义。函数与函数之间的空行、段首多少空格、变量名字命名这些在常人眼里无足轻重的事情都会被亮哥格外重视,他对设计和代码120%的要求让我对细节有了100%的注重。从GitHub代码提交记录可以看出整个变化的步伐,从平缓的小步改造,到后期的模块开发(见下图)。坐在工位上看似发呆地进行思考设计、逻辑整理。获得对整套业务逻辑的深刻理解,便觉得酣畅淋漓;通过DBA视觉和亮哥交流需求,得到新的启示和想法,便觉得颇有意义;而更多时候是一个人进入所谓的”心流”,将脑子里勾画出架构用代码去渐渐实现,那种忘记周遭,沉迷于代码与音乐世界,又让人感觉时光飞逝。当真正想做一件事情、对其充满兴趣的时候,才会知道什么叫乐此不疲。

11eb8188327c50696a7e64dcafa61b44ad9a7681

此外,也开始逐渐走向台前,对外分享,建立影响力。通过认识大牛,同样开阔了自己的眼界并培养行业灵敏度。京东在线平台的分享扩大了Sharding-Sphere内部影响力;参加火币、饿了么、贝壳金服的交流分享则了解大家对数据库中间件的认识和需求;担任2018 ODF数据库大会的主持,重新看到数据库的行业发展;担任ServiceComb交流活动的主持,则能感受到开源的力量。一次次活动经验,也是一次次小小的积淀,慢慢让自己懂得了分享的价值,并建立对外影响力。感谢各位大牛的提携之恩,也感谢启荣总,亮哥给予的一次次分享交流的机会。其实,每个人都有自己独特的优势,多多分析总结,因地制宜,合理运用,才有可能百尺竿头更进一步。

b4f0232831e1515048452bf13cd4872d2d559b5a

    部分分享照

  • 总结

这一阶段对内低头磨炼开发之道以及学习架构重构,并了解开源、分布式、中间件的架构体系。对外积极交流分享,培养行业影响力,锻炼表达能力。对时间自由掌控,对事情要求极致。

合于?

当下,仍需不断对所在行业的宽度、深度进行积累。在数据库中间件、DataBase Mesh、开源方面投入主要精力。在亮哥带领下将Sharding-Sphere做到理想高度(P.欢迎关注https://github.com/sharding-sphere!)。同时,也希望自己多思考,多磨砺下品性,把控前进方向,明确目标。然而现实很骨干,浅薄的我还在探索之中。对于未来,如果你的高度不足以支撑你当下的选择,不如借鉴下大牛和前辈的思考,站的在那个高度的他们的指点或许会给你打开新的天窗。

一路成长,总结其原因,我觉得主要有三大点。第一,感谢我上面提到的各位老板能给予我机会、能放权让我去做事情、能宽容我的傲慢与偏见;第二,感谢京东的大平台,能让我结识到这些大牛前辈,能让我看到不断变化进步的世界,并推动我不得不去自我提升;第三,则是感谢自己,懂得思考并及时按照发展调节方向,唯有全力以赴、放手一搏才能危中求机。

我会在这个领域走多远多高,我能拥怎样的生活, 能写什么样的故事,又能和哪些人一路相伴?对于未来,现在的我也同样没有答案。只是,曾经一步步扎扎实实的探索确实让我有了更坚强的意志和勇气去面对必须要面对的现实。愿这一路的小小故事,能给正在阅读的你一些思考和想法,并引起你的共鸣。倘若如此,也不枉这个十一假期一次次的码字和修改,也不枉右军老师的邀请。我相信每个人都有自己的故事,每个人都是独特的你!


原文发布时间为:2018-10-18

本文作者: 潘娟

本文来自云栖社区合作伙伴“技术琐话”,了解相关信息可以关注“技术琐话”。

相关文章
|
监控 架构师 程序员
阿里技术专家撰写程序员“不迷茫”职业路指南,切中痛点规划未来
我一直都是一个“笨孩子”,但我不以笨为耻。小学三年级时要写一篇关于柑橘树的作文,那时自己肚子没货、下笔万难,父亲知道后教了我两招:是从 整体到局部观察事物;二是阅读,看看别人是怎样写的。
|
消息中间件 架构师 Java
华为资深架构师十年总结:进阶成为架构师需要掌握哪些技能?
当前你感到迷茫吗? 有很多人对现在的工作感到很没意思,因为当前的工作,完全是实现业务,技术上没有任何提高。在这种状态下就会感到迷茫,特别是一想到将来这种迷茫感就更强烈了。
206 0
|
消息中间件 运维 Kubernetes
【架构师之路 六】两年期计划
【架构师之路 六】两年期计划
138 0
|
关系型数据库 MySQL 新能源
一位资深DBA的投资之道
一位资深DBA的投资之道
|
Java 测试技术 项目管理
15 年经验资深测试经理的经验分享:测试人职场晋升“潜规则”
本文整理自霍格沃兹测试学院「测试开发在线沙龙」主题分享《测试人晋升指南:如何做好个人绩效管理》,略有删减。文末链接进阶学习。
15 年经验资深测试经理的经验分享:测试人职场晋升“潜规则”
|
SQL 安全 项目管理
这是一篇工程师对产品经理的吐槽
优秀的产品负责人拥有塑造产品愿景的天赋,但如果负责人在产品的初始构想阶段就没能与工程师有效沟通,结果只会浪费时间、机会和人才,这样下去最后可能会毁掉一个项目。
|
前端开发 Java 程序员
从三流小公司到一线大厂,聊聊程序员的成长之道
阅读本文大概需要 2.8 分钟。 作者:黄小斜 文章来源:程序员江湖 ​ 我想,没有一个程序员能够一步登天,一下子达到很高的高度,有些路是我们必须要走的,有些阶段是我们必须要经历的。有入门,才有进阶,才有更上一层楼。
|
分布式计算 运维 架构师
数据技术工程师成长之路
  最近或许有伙伴发现,写技术实现及细节的变少了,更多是经历以及思想、规范。莫非是道则道,非常道,你道我也道?然,并不是:)。   当入行四五年时,个人经历中,从14年开始实习工作到15年转正,各电信项目现场跑,开发、测试、产品部署及支持运维。
9693 0
|
Java 应用服务中间件 UED
阿里巴巴高级技术专家聊工程师思维
本文整理自至简在团队内部的个人分享,希望通过对工程师思维的分析和解读,让工程师能正确对待那些在现实工作中看上去与本职岗位无关,却对团队效能影响极大的一些点和一些事。
993 0