Just relax, take it easy..

0%

2017 上海 (python 后端) 面试经历分享

这篇文章主要有两个目的:

1) 总结自己回国一周, 在上海找工作的经历.
2) 为准备在上海寻找 Python 工作的小伙伴的一些参考和建议.
ps. 本人渣渣, 文中也都是主观的观点, 看看开心就好, 不喜勿喷.

Introduction

在尴尬的二月份毕业了, 虽然遗憾错过了校招, 但投了投简历, 回国的一周也面了七八个公司.

有趣的地方是, 面试过的公司各有特色, 例如有

  • 刚建立的初创公司
  • 发展良好进入正轨的创业公司
  • 知名度很高的互联网公司
  • 国企性质的非互联网公司
  • etc.

先简单说说自己想去的公司吧: 成熟的创业团队.

  1. 一是因为一些大公司的规章制度和官僚文化我是真的受不了, 里边的人浮躁滑头, 已经没有那颗做技术的单纯和真诚.
  2. 二是小公司很多也都不靠谱, 例如那些 hr 一打电话过来就告知是 996, 问能不能接受的创业团队. 努力是没错, 但盲目的燃烧生命只不过是自我麻痹罢了.

如何获得面试机会

  1. 拉勾
    1) 支持上传自定义的 pdf 简历.
    2) 一键投递, 并且简历投出去之后有全程的跟踪和状态更新, 给人很靠谱的感觉.
    3) hr 能在 app 内直接发消息与我沟通, 很方便.
    4) 最重要的 核心竞争力: 丰富并真实的职位.

  2. 在程序员的论坛 (eg. V2EX) 上搜索或 google上海有哪些好的用 Python 的公司 --> 给这些公司的 hr 直接发邮件.

  3. 在 github 上搜想要去的公司的开源项目, 找到参与的人员的博客上的邮箱地址, 然后给他们发邮件(传授一个小 tricky: 如果邮箱地址简单加密的话, 用这个命令解下密就 OK 了: echo ZGF5YTA1NzZAZ21haWwuY29tCg== | base64 -d).

  4. 给一些 Python 的大佬 (Google PyCon) 发邮件, 求内推. 比如之前听过直播课的 Shell 就很热心的帮助了我, 很感动.

面试过的公司

首先说下大部分公司的招聘流程吧: 第一步 是 hr 沟通, 随便聊两句, 然后安排电话面试. 第二步 是电话面试, 大概半个小时到一个小时. 第三步 是去公司面试, 一般会有好几轮, 要是没有面到 CTO 或者大 boss 那步, 但 hr 让你回去等消息的话, 基本上是 GG 了. 最后 要是顺利的话就是 hr 和你谈薪资和入职的细节了.

我接下来会写几个实例 (按公司的规模从小到大排序), 不同公司面试的风格也有很大差别.

  1. 巨鲸网络 (初创十人左右的公司):
    面试官是创始人之一, 他介绍他和另一个创始人都来自惠普. 简单介绍了简历然后问了一些问题.
    印象比较深的是他很看中 测试 (TDD) 和代码风格 (可读性), 看的出他对他们做的 gululu 水杯还是很自豪的, 但他一直强调只要程序的可读性够强, 所有注释都是没有必要的, 这点实在不敢苟同.
    后来他问了我一个 一块钱买汽水的算法问题 . 由于我思路不清晰, 手写的代码可读性也不是很好, 感觉他有些不太满意.
    最后他问我有加入小的创业公司的意愿吗, 有的话就让 CTO 过来和我面一下, 如果没有的话就算了, 毕竟大家的时间都很宝贵. 当时感觉有些尴尬, 就说那算了吧, 不打扰了.
    然而.. 某天在范玮琪的 Instagram 的刷到他们的产品.

  2. 再惠 (很有潜力的创业公司):
    虽然电话面试我有一些问题没答出来, 但还是给了现场面的机会.

一面 的话问了两个算法题, 二分查找的变种 斐波那契 非递归实现, 虽然答的磕磕盼盼, 但还是很喜欢那种面试中交流思考的感觉. 印象比较深的是面试官很年轻, 也是 93 年的. 很平易近人, 口头禅就是 很科学 , 不断的给你鼓励.
二面 的话问了后台工程师的基础知识, 例如 What happens when u type in google.com in browser. https 的实现, 和一些状态码. Restful. 缓存. 队列消息. cdn 实现的原理. 数据库事务. 所有 Join 的含义. 都是一些常规的问题, 可惜自己没准备好. 之后 hr 过来寒暄一下就让我等消息 (婉拒的意思).
说实话自己是很喜欢这家公司的, 从面试接触下来, 就能很强烈地感觉到他们的工程师都是非常聪明也很优秀的人, 这个世界上真的是越优秀的人越低调和平易近人.
虽然问的问题不难也很常规, 但真的是自己没怎么准备. 但真正觉得可惜的是错过了一家对同事标准很苛刻的公司.

  1. HyperS (创立八年发展良好的创业公司):
    一面先让我做了一份试卷, 考的都是 Python 的特性, 我大部分都答出来了. 然后问了一些问题, 例如完全二叉树的定义, hash 是如何实现去重的, Django 的 middleware, session. Django 如何直接操作数据库. Django 中 template 变量的默认值. range(1, 101)[::2] 迭代最后剩下的两个数. len=10 的数组分成两半, 得到和的差最小 (数组分隔 - 编程之美 )
    二面感觉挺随意的, 但我也答的不是很好, 幸运还是过了.
    最后就是 CTO 的面试, 他会根据面试者的简历进行提问, 看到我学过 DBMS Implementation, 就问了我数据库索引的实现方法, 我答上了三四种, 感觉他还是挺意外的. 还问了 排序算法 ,分析一下时间复杂度,总的来说,问的都不太难。
    感觉 CTO 思路逻辑也十分的清晰, 想要考察的几个点都提前想好了. 最后决定去这家公司, 对这个 CTO 的好印象也是加了很多分的.
    但第一次去他家面试的时候, 其实印象是不太好的, 感觉 有些压抑: 例如整个办公环境有些乱, 一些咖啡机, 桌上足球娱乐设施都堆积着杂物, 完全沦为装饰了. 去网上搜的时候, 信息也少的可怜. 例如微博主页, 微信公共号都没有持续经营. 但听说今年六月会搬公司, 期待~~

  2. DAOCloud
    应该是个很不错的公司, 但电话面试就 gg 了. 当最后面试官说我给你一些建议吧, 我还试图挣扎一下, 让他问我一些 Python 的问题, 结果他问了 asyncio 和 import future 的实现原理, GG~

  3. 方付通
    面试官一进来就一副高冷的样子, 全程面无表情. 虽然我菜, 既然都来了, 人与人之间最基本的尊重还是要有的.
    问了很多基础知识和 一个算法题: N 个数依次入栈,出栈顺序有多少种?

  4. 饿了吗
    饿了吗还是高大上, 门口还有帅气的保安在迎接, 取了号等了一会面, 试官就来了.
    感觉面试官有些莫名的高傲, 面的也很随意, 不太喜欢.
    一开始问了个数据库的问题,查找所有用户最近的一天登录记录 .
    问的也都是一些很常规的面试题, 例如写一个装饰器的单例模式, GIL, metaclass. 最后让我徒手写个 flask 的 app O.O
    但还是自己能力不够 + 没有好好准备吧 XD.

  5. 药明康德 - 明码生物科技
    五六个人一起面我, 感觉氛围还是很轻松的.
    公司很大, 楼都数不过来. 但自身还是不太喜欢这样国企性质的公司吧, 而且感觉技术氛围也不是特别强.
    虽然福利有保障, 人手一部 mbp, 开的工资也比 hypers 还高。 但位置太偏了, 女朋友要是来找我, 不是要多做一个小时地铁. 最后毫不犹豫的放弃它了.
    影响最深的一点就是去找面试的那幢楼的时候, 看到一幢楼竟然有个保安在门口嘘嘘...

如何成为好的面试官的感想

虽然只面试了一周, 但对一些好的面试官也是印象深刻. 有一天自己也可能会变成面试官, 记录一下优秀面试官的特质:

  1. 无论面试者的水平高低, 给予最基本的 尊重. 例如真诚的沟通和正面的鼓励.
  2. 提前准备, 思路清晰, 想好自己要考察的点. 例如是否真的热爱写程序, 基础知识是否扎实, 表达能力是否清晰等等
  3. 根据面试者的简历问问题, 讨论他感兴趣擅长的领域, 而不是问全部是那些常规无趣的问题.
  4. 不断地去挖掘面试者的潜力, 并帮助面试者更有 展示自己的欲望.

总结

感觉自己这个人还是没什么上进心, 面试的题库也懒得背, 工资也随便公司开, 一个星期就把自己的命运决定了.
但最后去 hypers 主要还是这么几个原因:

  1. 不加班: 周六不上班, 入职之后每天也基本没有超过七点的加班, 作息大概是 十点前到, 七点前下班.
  2. 盲目的自信: 工资虽然并不高, 但自己总有些盲目的自信, 觉得以后能通过工作的表现证明自己的能力, 拿到应有的薪资.
  3. CTO: 对 CTO 的思路清晰的好印象, 觉得这家公司的研发也应该差不到哪里去.

真心的几点建议:

这个世界上总是有很多的捷径, 有时候做选择可能比努力更重要一些?

用面试去准备面试

提早 用面试去准备面试. 国内后台开发面试题其实都挺死板的, 例如 http 协议, 数据库的事务和那几个简单算法题. 提早参加几个面试了解自己不足的地方, 然后去准备面试才是最正确的姿势.

平时的积累

平时的积累 才是最重要的, 基础知识 (数据结构, 算法, 网络, 操作系统..) 是你通过面试的保障, 但对于我们普通人来说, 打动面试官的是你对写代码的那份热情和平时学习积累的细节.

大公司实习

还在读书的时候, 放假时要尽可能 去大公司找找实习, 不管对自己能力的证明和提高, 对人生规划的眼界, 都是最快的捷径.