临近毕业,同学们来到人生的重要关卡。一边是走出校园,脱离学生身份的向往,一边是即将迈入社会找工作的迷茫。近年来,就业形式严峻,高校毕业生规模屡创新高 ——此外,很多企业看重求职者的社会实践或工作经历,这让很多同学陷入迷茫……我需要提前具备哪些基本素质?
第一份工作到底应该如何抉择?
如何选择毕业后的第一家公司?
如何选择合适自己的赛道和团队?
数据库行业会不会有 35 岁职业危机?
与其独自彷徨,不如与“师兄们”谈一谈,看看他们作为“过来人”有哪些经验~
OceanBase 师兄面对面交流现场
【师兄档案】杨传辉,OceanBase CTO 。主导了 OceanBase 技术架构设计,实现分布式数据库在核心金融场景零的突破,即将发版《OceanBase 数据库源码解析》。在有工程能力之前,需要有良好的学习和积累,对于刚毕业的学生来说,更应该看重在哪能学到核心的技术,再将这些融会贯通,就会有很强的分辨能力和竞争力!
首先,技术基础很重要。对于大学里学习的课程,如数据结构、算法、操作系统等,需要好好掌握,这些基础课程将在之后的职业生涯里提供非常大的帮助。“我刚毕业时也喜欢即时战略游戏和桥牌,随着年龄增长,游戏基本不玩了,我发现重要的还是掌握技术知识。”
其次,数据库研发是一个侧重工程实践的职业,因此会重视候选人的动手实践能力。无论是在导师手下做项目,还是在公司的实习经历,参加 ACM 竞赛,都会给面试加分,也会让你提前对数据库研发有所了解。
最后,对于搞研发的人员来说,还有一些素质决定他们未来成长的潜力或者高度,包括追求极致、好奇心等。
【师兄档案】王国平,OceanBase SQL 引擎的技术负责人。2008 年毕业于哈尔滨工业大学,2014 年在新加坡国立大学获得博士学位,博士期间主要研究方向是数据库领域的(多)查询优化和处理。1970 年,Edgar F.Codd 首先提出了关系模型,至今已经有 53 年的历史,我们从数据库的发展历史来看,这个行业还有哪些问题是待解决的?以及,为什么要选择数据库这个赛道?60 到 70 年代,大家更关注模型的建立,那时大家的争论点在于,数据库应该用关系模型、网络模型还是层次模型。经历了层次数据库、网状数据库和关系数据库而进入数据库管理系统(DBMS)阶段至今, 数据库技术的研究也不断取得进展。到了 80 年代, 关系数据库成为发展的主流, 几乎所有新推出的 DBMS 产品都是关系型的,也涌现出了一批关系型数据库 Oracle、MySQL、DB2、Sybase......这也是计算机数据管理发展史上的重要里程碑。00 年,互联网开始爆发,随着数仓出现后,一批 NoSQL 系统出现了,而在最后这些 NoSQL 系统最终也向 SQL 屈服。10 年,也是互联网的又一次大转折,NewSQL (分布式关系数据库)出现了,OceanBase 也是在这个时候出现的,于此同时还出现了云原生概念,以及 HTAP 系统。关系数据库经历了那么多年的发展,有一些技术相对来说是比较成熟的,但依然有很多仍待解决的问题,比如优化器的估行问题至今始终没有一个很好的解决方案,随着 HTAP,NEWSQL 和云原生的概念出现,又给数据库行业带来了很多新的挑战。虽然未来的数据库行业仍会面诸多挑战,但挑战和机遇是并存的。分布式数据库又是一个理论和实践相结合的一个学科,它要求你有很强的理论知识,以及编程能力。如果你能够将关系数据库的代码写得足够好,那你可以去写任何代码。在这个行业,我们很少去做很多重复的事情,每做一个东西,本质上都是一次积累。 数据库人才在中国也是非常稀缺的,当你一直在这个领域钻研,成为一位真正的数据库专家后,这也就不会有所谓的 35 岁危机。【师兄档案】杨逸飞,本科就读于北京理工大学,2022 年 7 月清华大学研究生毕业,目前在 OceanBase 事务组做技术研发。近两年就业形势变差,如何选择毕业后的第一家公司?来 OceanBase “搬砖”一年半的杨逸飞同学也分享了他选择毕业后第一家公司的考虑。在 2021 年,参加秋招杨逸飞接到了很多 Offer ,但最后选择加入 OceanBase 也离不开他在这里为期一年的实习,所以他也分享说,实习经验对最后的入职决定至关重要,通过实习可以更好的了解这家公司的工作状态,工作内容以及技术氛围。杨逸飞之所以被 OceanBase 吸引主要有以下几点:- 技术氛围:Paper talk、方案评审、头脑风暴......
- 团队氛围:团建、Outing、吃喝玩乐......
(剩下的就靠你来 OceanBase 后自己探索啦~)其实正式的步入职场和在校完全不同,在校期间学习到的更多是理论知识,无法接触到互联网企业的研发流程和真实的业务场景,这时就需要我们多参加一些活动,或去 GitHub 找到自己关注的开源项目,找到适合自己的 Issue。1. 找到行业优秀的项目:数据库行业本手就有复杂性,优秀的项目更是凤毛麟角(PostgreSQL, MySQL, OceanBase, Open-gauss...)2. 找到自己感兴趣的 Topic(一致性 \事务隔离 \ 存储 \ SQL 优化等等),可以通过官方文章或其他开发者的分享来对比和学习不同开源项目的实现,如果对项目实现感兴趣,或者感觉文章本身描述不够具体,可以更进一步去找到相关的代码实现,一般文章和代码还会有比较大的 gap,毕竟会有很多工程实现上的优化或障碍。3. 对不理解的问题在 GitHub 或者官方论坛上提 Issue Discussion,等待官方或其他开发者回答讨论。以 OceanBase 为例,如何快速了解一个开源项目?
1. 上手使用:官方文档会有“快速上手”,教你快速安装部署 OceanBase。https://open.oceanbase.com/quickStart2. 了解项目源代码:进入 GitHub 主仓,可以先通过 Readme 进行快速了解,大家还可以通过修 BUG 或 提交 good first issue 的形式,快速成为 Contributor。https://github.com/oceanbase/oceanbasehttps://github.com/oceanbase/oceanbase#readmehttps://github.com/oceanbase/oceanbase/issues
如果大家后续加入 OceanBase 或偏基层架构的公司,杨逸飞也进行了工作经验分享:
遇到 BUG 是不可避免的,但要尽可能的让 BUG 被察觉和被感知到。
要有好的代码风格和注释,OcesnBase 的代码注释也需要持续提升,欢迎大家提 PR。
持续学习,阅读论文和技术文档,学习其他公司的代码风格,保持兴趣,不断深耕。
保持积极乐观的心态。
现在,是从事数据库事业最好的时代,期待更多研发同学的加入,一起来解决国产数据库正面临的发展问题。同时也谨记:做国产数据库,是一件需要情怀,也需要敬畏之心的事。
最后,也希望大家都能找到真正热爱的领域,奔赴自己的浩瀚星空,未来很长,To Be Continue ......