在 PingCAP(北京)实习的日子

候选者

我是 1 月 9 日入职 PingCAP 的——作为 TiDB 组实习生。

已经记不清具体什么时候几面了……

听说 PingCAP

第一次听说 PingCAP,是在■■的谷歌内推群里的听■■■说的,当时是说:“各位群聚内推 Google 失败了不要灰心,来了解了解 PingCAP 鸭!”

于是我问了之前帮我内推其他很多公司的■■■:"你听说过 PingCAP 吗?""国内很牛逼的公司,你这简历估计肯定会被挂,别想了。“

■■■不知道的是,那时候我其实是“先斩后奏”,简历已经投递出去了。

面试前

很好评的是,面试前会有 HR 小姐姐打电话过来给你介绍公司基本情况,介绍各个组的主要工作,让你去自己选择去哪里。整个公司文化都很像这样,很在乎每个人发展,在乎每个人兴趣。每个人做的都是有趣的事情。

笔试

漫长的等待了两个星期,终于简历被捞了……

先是别开生面的一场笔试题,对我的题目是要求一周,在 Github 上写(不亏是开源社区)。

题目本身很有意思,之前在其他公司面试的时候也被问到类似的问题,但是这是第一次让我实现出来,所以非常开心地就开搞了。

那时候还在准备其他公司的面试,而且当时挂了很多了,心态不是很好,做的时候比较急躁。在最后提交上去的时候,感觉还有很多地方可以优化和调整。所以感觉这次凉定了……

幸运的是,笔试通过了。不知道是因为笔试主要在考察工程能力还是因为只是第一面,会放过的多一些?(作为 Github 装逼用户,CI,badges 这些用的还是很溜的)。(之后看到其他人的笔试,写的真是十分仰慕了)。

一面

一面面试官■■■,刚加微信的时候觉得是个大神,来了公司之后觉得是个二次元技术宅,来了公司一段时间后觉得是个二次元技术大神。

简单问了问三四道算法,在网站中在线撕代码,难度不是很难。不知道是一面还是因为我的组的缘故,我感觉公司对算法题的考察,略低于同实力的其他公司。(不过那几个对算法要求恐怖的组不知道是不知也是这样)。

这时候心态还是比较轻松的,因为觉得自己肯定过不去

幸运的是,笔试通过了。

二面

二面是我的 mentor ■■,超级好也超级厉害的一个人,对我教了很多东西,影响很大。教了我什么是技,什么是道,对我之后的学习、工作提了很多有用的建议。

二面之后,心态认真了很多。因为自己算法一直是弱项(丢 ACMer 这个名声了),算法既然过了,后面的一些不考察算法的话,我对计算机基础还是有信心的。

结果二面一开口就把我问懵了……

“你知不知道 x86 字节对齐?你知不知道 CPU 流水线?如何避免分支预测失误的开销……”

看来自己对基础的信心拯救不了我啊,sigh……

“那你知不知道哈希?”

我知道我知道!嘿嘿,我准备了很久面试,哈希这么常考的我怎么会不会?不就是——“再哈希、拉链法、线性探测法等那几个课本上的嘛?我不光知道,我还知道装载因子还知道……“

“那你知不知道分布式哈希?一致性哈希?”

啥?这我没听过啊,课本没有啊……

这次的面试,也让我知道了我的很多不足,潜下心去补了很多知识。

三面

三面是老大 ■■,很温和很有魅力的一个人,对人总是很好,很在乎每一个人的发展……

三面是把我榨干的一面,问了很多我不太熟悉的分布式知识,以限流算法为引子聊了很多。

因为对分布式基本没接触过,所以只能凭我微薄的算法知识去猜测应该是怎么样怎么样。

然后每次得出一个似是而非的,看起来可以工作的算法,又会被 ■■ 的各种 corner case 击败6

三面面试官懂得非常多,而且技术上各种刁钻细节了如指掌。

被面完感觉自己是条榨干了的咸鱼了……

很幸运,三面也通过了,就这样,踏上了正式入职 PingCAP 的航班。

面试总结

面试整体体验非常非常非常棒

之所以这么说,是因为每次面试之后的:“你有什么向我问的吗?“这个环节。这个环节面试官真的是在推心置腹和你说他的看法和宝贵经验。在这个过程中我学到了不少东西,有很多知识点豁然开朗……就算只走一次面试流程,我感觉也不虚此行了。

很多人问我面试会问什么?我感觉这个因人而异吧,面试难度其实不高——PingCAP 使用 Golang,Rust 开发兼容 MySQL 的数据库。我入职之前,不会 Golang,不会 Rust,不会 SQL 语句。这么说来要求确实不高叭?

不过我感觉公司面试难度也不低,刚刚入职的时候,觉得公司挺在乎候选者的性格、责任心、自我驱动力和对技术的热爱的。

整体而言,PingCAP 面试还是很硬核的,感觉比不少大厂难。

面试的时候,我感觉我会的所有东西都被问到了,问的都很深入,让我感觉很舒适(有一种,就算挂了也很知足,毕竟我展现出了风采)。

而面某大厂,经常是:“我还没用力,面试官怎么就觉得回答的够了。”

实习

我主要在公司负责给团队拖后腿……

入职的时候,会和老大 ■■ 吃饭,吃饭的时候问了之前的问题:“我这简历我以为会被挂呢……” ■■ 表示:“我们基本不筛简历的。”(所以应届生小伙伴快投啦)。

记得刚来的时候,还挺害怕自己不能胜任工作的,因为大家都很强!

后来想想:“如果不能胜任工作,不仅仅是我一个人的错,也说明公司的面试流程可能有点问题嘛!”

于是释然……

体验

体验满分,因为是开源公司,所以很多资料可以放肆学习,整个偌大的社区任我交流学习。

mentor,同事都很关照人,会主动询问你困难,邀请你一起吃饭。

在这里每个人都很关心我的成长和学习,会经常询问我是否遇到困难,亦或是询问我在这里是否学到东西,有什么想学的东西。

这个体验,还不满分嘛?

很喜欢这里,感觉每个人都很可爱,也很热爱技术,大家都可以讨论自己感兴趣的技术。

而且感觉很尊重每个人,很照顾每个人的感受(吐槽某大厂面试,打了 6 个电话,只有 1 个提前预约了时间,其他 5 个都是突然袭击,其中 2 个还是 21 点以后打来……感觉体验就不是很好了)。

任务

做的具体的任务,可以看我的 Github,毕竟是开源社区。

在这里比较爽的是,没有人把我当实习生看待,给的活都是硬核的适合我的活。我可以随意就技术上的问题和人争论,也可以随意解决我擅长的问题。

记得有一次差点搞坏了,mentor 还说让我随意整,只有随意整,才能学到东西。

待遇

工作时间上真的很弹性,有一位后来入职的伙伴还觉得公司上班时间好晚……

是真正的弹性工作,随意来,随意走,蛮爽的。(毕竟支持 remote 的公司,怎么可能不支持弹性工作嘛!)

公司有很多人文关怀,不会因实习生而不同。一起参加年会,过节小礼,年岁红包、抽奖,并不会因你是实习生而不同。

具体待遇,真的很爽,不过就不在这里说啦。

对我的帮助

开源社区

开源社区,对个人帮助很大,Github 上闪闪发光,走到哪里都是履历上靓丽的一笔。

做事

能做的很多,可以随便搞,不会有权限控制你,让你做一些简单重复性劳动。

关注个人提升

无论是 ■■ 还是 ■■,都十分关注个人的提升和成长。

活动多

公司内部有很多讲座活动:

  • meetup

  • paper reading(这个 Bilibili 可以看哦~)

  • 内部培训

  • ……

指路

无论是 ■■ 还是 ■■ , 在我将要短暂离开的时候,都和我谈了很多心里话,带给我很多启发和思考。推心置腹地告诉我了我很多他们多年开发的经验。并且站在我的角度替我考虑了很多,为我之后规划提供了很多建议。

可能的缺点

说了这么多,公司其实还是有一些可以提升的空间的。(毕竟我不是托……)

对我来说:

  1. 公司内部的文档、资料等,会有一些重复的情况……比如第一版在 ■■ 里,第二版又在 ■■ 里。
  2. 有时候资料分类不是很恰当,比如需要 ■■ 需要在 ■■ 找,需要 ■■,可能又在 ■■ 里……
  3. 自带电脑……对于我这种 windows 开虚拟机 linux 开发的……经常会 OOM 或者死机,比较难过了……对正式员工会有报销电脑的政策,实习生在这点上使用起来不太方便……(穷苦大学生的渣渣电脑)。

问题

我是带着问题来实习的,自然也要解决问题。

带着问题来实习,感觉对自己帮助也会很大。

大型软件如何开发?

之前只会做做 ACM,学学基础知识的样子,一直害怕自己不适合做真正的开发。

来了这里之后得益于优秀的新人辅导计划,很快上手工作。

发现工作比自己想象中可能还要简单一些。因为工作有些时候是修改别人的内容,这时对语言语法掌握不精通,也可以现场看和查。所以在这一块倒是没有太大压力(也可能是 Go 语法太简单了?)。

也算理解了为什么之前有人说一门新语言不到一周就可以上手——因为实际开发中很少用到很多的语法糖,毕竟不是每个人都系统学过 XX 语言嘛。

大型软件开发起来,其实对于一个具体的需求,关注点没有想象中那么多。毕竟对于某个功能,运行的代码可能只有很少一部分。比如你去解决 show table 语句,显然就不需要关注其他 DDL,DML 语句的代码嘛。

什么是核心竞争力?

在这里一直在观察,自己和从业多年的开发人员的最大的差距在哪里?

■■ 在这里教了我许多,告诉了我什么是计算机的道,什么是计算机的术。

也让我重视了之前一直不重视,觉得像个文科的软件工程……

并且推荐了我一本书: Clean Code。

说是帮助很大,会找到自己的道……

因为还没有拜读,所以就先说这么多啦。


2019 年 4 月 12 日星期五于北京西开往西安北 G87 次车厢



本文标题:在 PingCAP(北京)实习的日子

文章作者:Xie Keyi

发布时间:2019年04月12日 - 14:04

原始链接:https://xiekeyi98.com/2a9774a3.html

许可协议: 署名-非商业性使用-相同方式共享 4.0 国际 转载请保留原文链接及作者。