七年老程序员面试经历
2020年3月2号开始,保持每天一个面试的频率开始面试,下面介绍下面试经历。
1、第一家公司是 跟谁学 ,职位是基础架构研发
他们是想自动化运维,主要使用python语言。我虽然写过一段时间的python,但是并不是第一语言。
一面主要聊了聊python基础,和一些基础算法,比如深度优先和广度优先算法。
最后写了一个实际题目,使用python开启多进程(进程数为CPU核数)队列消费
过了大概一周实际,又做了二面,基本都是考察python和算法基础,写了10道题,在这里就不细说了,
大概就是 python的运行周期 和 GC机制
两天后,进行了3面,估计是他们的总监吧,开始也是先暖场,聊一下项目经历和职业诉求,出了一道算法题,
不使用任何内置函数,对两个有序数组取并集且是去重的,但是算法没怎么准备,
现场也没写出来,浪费了这次机会,缺失是挺可惜的
2、第二家公司是好未来,Golang研发工程师
一面主要聊了聊项目经验,以及在项目中的站位,和处理问题的思维模式和经历。
Golang 只聊了一些基础,比如GC 模式, MPG模型等
mysql 聊了索引实现原理 和 日常 mysql 优化方法,以及在面临 技术选型 时如何判断
redis 聊了聊 过期原理,zset 内部结构 跳表等
最后写了一道算法题,洗牌算法
二面依然是视频面,明显感觉段位高一点,主要聊项目经历
架构设计能力 以及 在项目中所处的位置,也是是百度校友,聊得也比较投机
三面是总监面,也是主要聊项目,后面聊了聊假定的情景中,遇到了问题,
应该怎么样去思考,竟可能的想到所有可能出现的情况,如何去解决。
假定的情景也比较简单,就是 老项目迁移如何做到无损迁移。
总体面试还算比较顺利,中间有hrbp面试,就是随便聊聊比较简单。最后顺利拿到offer
3、第三家公司是趣头条,PHP研发工程师
一面是电话面,因为问的比较基础,又是电话的形式,基本上没什么难度
基本上就是mysql,redis,php,golang,linux 基础题目,多说无益
二面应该是组长,视频面的
提高了段位,问的都是一针见血的问题
select a,b from table where a order by b , ab的联合索引 是否能用到索引
redis zset 跳表的步长问题
mysql 默认是rr隔离级别,如何解决幻读问题,GAP锁实例
递归实现二叉树高度,二面勉强通过吧
三面是经理,主要聊项目经历,架构设计,算法写的比较简单,
冒泡排序 和 插入排序, 递归算法,聊得还算可以,最后也顺利拿到offer
4、 第四家公司是云账户,php研发
一面是项目经历和基础知识面,非常顺利
二面是交叉面,别组组长,简单聊了了经历后,出了个算法
连个有序数组,求交集,时间复杂度竟可能小
我写出来,漏斗比较多,面试官又比较较真,最后就挂在了这里
5、头条,Golang研发
一面和二面对调了,先来得是二面面试官
牛客网在线面试,也是上来先暖场,聊了项目经历,架构设计
问了些技术问题,比如mysql事务回滚后,是否记录binlog,分布式事务的一些实现方法和实际应用。
最后写了一个,比较变态的算法,数据流依赖关系
二面也是比较基础,处理聊聊项目经历后
问了单点登录的一些常规设计,算法写了一个 多线程实现顺序输出1~100
三面是他们经理,不过看着很年轻
在项目描述中,抽取出了一些算法,让现场写,确实难度比较高,
比如 我项目组描述在流式算子中开发了过滤算子,他就是让写出所用过滤算法,
但是我的项目描述也是吹的成分较多,过滤算子其实只是正则和字典过滤,算法实现很简单
后面聊技术的时候,聊到 mysql 底层的缓存污染和缓存淘汰算法LRU,
也让现场写,没准备好,难度也比较大,最后也就挂在了这里。
6、贝壳 ,php研发
一面,日常基础,awk,mysql,redis,php,比较基础
二面,项目经历,redis 的rehash原理,mysql索引实现
三面,比较比较自信的技术,redis单线程 高效的原因,中台架构的利与弊
面试比较常规,最后也谈到了offer
后面还有很多家,回头更新。。。
评论 (2 条评论)