-
18年毕业,17年11月份出去实习+转正至今(马马虎虎算一年经验了吧=。=)。
-
某C轮小厂,做 Python开发工程师。(工作制:965,算时薪比的话还是相当可观的,手动滑稽: ))
-
目前薪资:正常价格,你懂得!
-
对方规模不能太小,起码不能比我司还低吧
- 这里指的是管理层对公司定位及产品方向还是有的,千万别是连自己做什么都不知道,那就没法玩了
-
薪资:package 25w(按 base * 12 算的,说白了就是 20k左右/月,这是猎头提议的:低了没必要跳槽)
-
其他,貌似除了薪资其他的也没啥好说的?
题外话: 这个是直接告知到对方公司的,作为参考
我提交的附件,在另外一个仓库里:MyBlog-py3/parse 包括问题描述(PS:除了 README 里面的问题描述部分,其他都是自己写的)。
通过。猎头说推了四个,我一个人过了(我也是奇怪,题目本身貌似没难度;是我文档写的太好了么=。=)
现场面试:2轮技术面+HR面(2019年5月27日下午兩點开始)
-
我重点说的 【ScanEngine】 ,这个从设计到实现基本我一个人搞定的,除了脚本部分编写。
- 解释一下整个项目,画一下了架构图
- 脚本什么写的(python),扩展性如何,目前(由公司某大佬接盘,600+脚本)
- Crontab 怎么实现的?(后续写文章聊一下(环形队列))
- 模板模式定义脚本的输入输出,怎么保证脚本执行安全性(内部架构师团队人员review以及,容器部署)
- 脚本异常捕捉、重试机制(聊了一堆)
- 任务生命周期以及所有任务监控情况(聊了一堆,自己实现的简易监控,后续打算优化)
- 其他的我也记不清问了啥了(聊得挺久的)
-
题外话
这个项目是我公司项目,仓库里面放的是终极精简版本(连README都没有,不是我风格呀 :-)),后续有机会完善一下。
-
MyISAM 与 InnoDB 关于锁方面的区别
-
索引管理
- 索引好处
- B+树、为什么不用B-树
-
锁管理
- 四种隔离机制
- InnoDB 下 RR如何避免幻读(当前读和快照读、next-keys(行锁+gap锁))
- 其他没印象了
题外话:
- 关于索引管理和锁管理之前博客有谈过链接如下
- like count by postIds
- user like staus about post
- like / unlike
- like users list by timeline
设计:
- 数据库,索引如何建立、
- 幂等、缓存
- 描述每个请求流程,最好简单画一下时序图
- count优化(count ++, count表)
- 我:用redis HyperLogLog + 定期数据对齐;
- 面试官:给了一种自愈方案,不需要定期数据对齐(或者说非冷数据基本不会用到);算是学到了(后续待我总结一下,看看网上有没有相关讨论,系统写个笔记)
-
基本答得可以,就问了三个问题,聊的时间蛮长的。
-
可能主要是自己项目占用时间比较多,才会让后面直接进入主题的吧。
-
前两个问题基本是我再说,聊得算是不错;最后一个问题,我给了个思路,然后面试官问一下细节,不是最优方案,但还凑合,大部分设计算是合理。
-
总体来说,这一面感觉就是,如果能让面试官对你的项目感兴趣,那么你基本这轮面试就成功了,因为大部分都在谈你熟悉的东西,让你很容易发挥。
-
第一次尝试
-
思考阶段
- 不可能用 Map 做统计,空间太耗费了
- 咦?三路快排思想好像不错。
-
交流过程
- 我:三路快排思想,每次看 等于部分的长度是否大于 n/2,如不是则丢弃这部分,并且把两边长度小于 n/2 的部分去掉。
- 面试官:时间复杂度
- 我:n+n/2+...+1 < 2n,所以总体 O(n)。
- 面试官:最坏情况呢?
- 我思考了一下。。。:额。。。终极退化。
-
-
第二次尝试
-
思考阶段
- 括号匹配思想貌似可以
-
交流过程
- 我:栈为空则入栈,否则对比栈顶元素,如果相等入栈,不相等则出栈,最后栈里剩的是大于 n/2 的元素。(栈是基于原数组基础上加了 index+size 实现的,不需要额外空间,并且出入栈时间O(1))
- 虽然空间O(1),时间O(n),时间空间复杂度确实是最优了,但是好像并不是很满意
-
-
第三次尝试
-
思考阶段
- 我去,摩尔投票法
-
没有机会说了
-
-
了解 Proxy 机制吗?它的包与普通的包有什么区别?
-
只说了表面的问题,扯了正向代理、反向代理,然后从网络分区相关点去回答,但是他貌似希望让我细聊整个 HTTP 协议细节相关,这个后续需要总结了
-
简单查了一下:HTTP 1.1 以后相关
-
-
HTTP 与 HTTPS 的 区别?
-
HTTPS 如何做到保密的?
-
整个流程说一下?
-
如何信任 CA 什么的等等
确实 HTTPS 问的非常细节。我只说了大致流程,细节部分基本答得不好(有点胡说的意味),并且被发现明显是来面试前随便看了一下,没仔细钻研的(挂的导火索=。=)
-
二面总的来说,答得不满意。
-
一个简单的算法问题,也答得不好;而后面几个问题问的 HTTP/HTTPS 相关的知识(然而我确实只是来前随便看了两眼),之前没有琢磨。
-
老实说:下层协议个人真心挺自信的(来自看完 《TCP/IP 详解 卷一》的自信),基本很多都 真的动手操作过(之前在学校网络安全玩的)。
-
不多说了,下一步直接把 RFC文档 翻出来,常用协议全部再看一遍,再用一下许久不用的 wireshark。
挂了
两点面到四点半,还是有所收获的。
-
总的来说,问的东西并不深奥,基本都是需要掌握的。
-
几乎没有问任何语言相关基础;本次是毕业后的第一次面试,体验还算行,这种面试节奏是我喜欢的,这次准备不够充分,以后继续努力。
本次关键:
-
心里因素,多少有一些,以后多面试,继续调整就好了。
-
二面面试官,连续三个问题答的都有瑕疵。最后问题更是直接暴露,对问题本身回答的不上心,没自己动手过的,然后用看到的表面理论乱说。(本人自己都看不下去)
-
不会直接过就好了,记住似懂非懂等于不懂(当然可能面试官有可能就是想考察这个点,直接过也有可能存在挂的风险,看情况吧)。
-
自己太菜呀,继续加油:-)
- 感谢两个面试官,也感谢猎头大哥给的帮助。