个人近期面试复盘
近期面试-各大厂几乎面了一遍,有些不只面了一个部门。
一般的面试流程都是
简历转化率较高,而面试转化率较低,在这里做一个简单复盘。
数据统计
从一定角度上来说,求职是一场个人营销。在能力(简历转化率、面试转化率)既定的情况下,求职是一道可以倒推的数学题。
7.28-8.20投递及转化统计
进度 | 数量 | 转化 | 转化率 |
---|---|---|---|
沟通数 | 572 | ||
投递数 | 209 | 沟通回复率 | 36.54% |
面试邀约 | 43 | 面试邀约率 | 20.57% |
1面数 | 36 | 面试接受率 | 83.72% |
2面数 | 16 | 1面通过率 | 44.44% |
3面数 | 8 | 2面通过率 | 50.00% |
4面数 | 3 | 3面通过率 | 62.50% |
offer数 | 5 | 4面通过率 | 75.00% |
- 综合简历转化率:
17.22%
- 综合面试转化率:
13.89%
面试邀约率低原因复盘:
- 海投和盲目投递带来的业务匹配度低
- 大公司阿里、快手,简历已在流程中,导致大量投递无效
改进目标:> 30%
1面2面通过率较低原因复盘:
- 基本的SQL查询、分组统计,Linux分组统计没有复习准备
- 掌握的算法题目还不够丰富
- 性能测试、MySQL索引、Redis、Nginx负载均衡等未好好复习,原理理解不透彻
- 面试排期较满,面试发挥千篇一律,没有仔细查看各个机会所需能力(业务还是服务端还是侧开),导致评定业务不匹配
- 讲话语气和态度还有有待改进
改进目标:> 60 %
面试排期
近期面试排期表如下:
日期 | 星期 | 面试单位 | 轮次 | 面试时间 | 备注 |
---|---|---|---|---|---|
8月27日 | 周五 | 字节跳动 | 1面 | 15:00 | 未通过 |
8月25日 | 周三 | 腾讯云-长安链 | 3面(HR) | 15:00 | Offer,T9 |
领创 | 1面 | 18:00 | 放弃 | ||
8月24日 | 周二 | 腾讯音乐(深圳) | 1面 | 16:00 | 放弃 |
高瓴DVC | 4面 | 14:00 | Offer,L2架构师,Offer 放弃 | ||
腾讯云-长安链 | 2面 | 20:00 | 通过 | ||
8月23日 | 周一 | 百度IDG-指挥交通 | 1面 | 15:00 | 放弃 |
理想汽车 | 1面 | 18:00 | HR变卦、从P7降到P6(无职位) | ||
高德 | 1面 | 20:00 | 未通过 | ||
8月20日 | 周五 | 京东零售-居家 | 4面-总监面 | 18:00 | 通过,T7,后续5面面试官近期没时间,流程被HR直接关闭(京东HR好傲慢呀) |
8月19日 | 周四 | 京东零售-居家 | 3面-交叉总监面 | 11:00 | 通过 |
8月18日 | 周三 | 瓜子二手车 | 1面 | 11:00 | 放弃 |
美团-充电宝业务 | HR谈薪资 | 14:00 | Offer,L7,QA岗,评价技术能力与测试开发岗不匹配(达不到),Offer推迟入职后放弃 | ||
陌陌 | 1面 | 14:30 | 个人放弃 | ||
百度IDG-自动驾驶 | 1面 | 15:00 | 反馈业务不匹配,转其他组重新1面 | ||
中国通信 | 2面(现场) | 17:00 | 放弃 | ||
字节跳动-数据中台 | 3面 | 17:30 | 未通过,跟现在团队的匹配度不是很高 | ||
8月17日 | 周二 | SphereEx | 1面(现场) | 15:00 | 放弃 |
字节跳动-数据中台 | 2面 | 16:00 | 通过 | ||
天眼查-测试开发 | 2面 | 18:00 | 因大小周原因放弃 | ||
去哪儿网 | 1面 | 19:00 | 面试官迟到,放弃 | ||
8月16日 | 周一 | 天眼查-测试开发 | 1面 | 11:00 | 通过 |
美团-充电宝业务 | HR沟通 | 13:30 | 通过 | ||
欢忻网络 | 1面 | 14:00 | 不匹配,需要的还是功能测试为主 | ||
高领DVC | 3面 | 15:00 | 通过 | ||
阿里文娱-优酷 | 1面 | 16:00 | 未通过-面试回答太分散 | ||
字节跳动-数据中台 | 1面 | 17:00 | 通过 | ||
京东零售-居家 | 2面-HR沟通 | 18:00 | 通过 | ||
腾讯-区块链业务 | 1面 | 19:00 | 通过 | ||
8月13日 | 周五 | 便利蜂 | 1面 | 10:30 | 技术深度不够,整体评估不符合预期 |
网易有道 | 2面 | 14:00 | 未通过 | ||
转转 | 1面 | 15:00 | 个人放弃 | ||
知乎 | 1面 | 18:00 | 未通过 | ||
销售易CRM | 3面(HR定薪) | 18:00 | Offer,P8,测试开发Leader,Offer放弃 | ||
8月12日 | 周四 | 高领DVC | 1面 | 10:00 | 通过 |
龙湖-龙珠优选 | 1面 | 10:00 | 放弃 | ||
美团-充电宝业务 | 4面 | 11:00 | 通过 | ||
分贝通 | 1面(现场) | 15:30 | 放弃 | ||
探探 | 3面 | 18:00 | 后续反馈找到了更合适人选 | ||
高领DVC | 2面 | 19:00 | 通过 | ||
8月11日 | 周三 | 云粒智慧 | 笔试 | 10:00 | 放弃 |
巴比特 | 1面 | 10:00 | 通过,后续面试个人放弃 | ||
人民科技-测试经理 | 1面 | 11:00 | 个人感觉为,性能测试经验有短板,管理经验缺失 | ||
网易有道 | 1面 | 14:00 | 通过 | ||
京东国际 | 2面 | 18:00 | 未通过-提问了一些负面问题 | ||
销售易CRM | 2面 | 17:00 | 通过 | ||
京东零售-居家 | 2面 | 19:00 | 朋友内推,通过 | ||
百度 | 1面 | 20:00 | 未通过 | ||
8月10日 | 周二 | Paytm | 2面 | 11:00 | 对方爽约,需要有游戏经验 |
美团-充电宝业务 | 3面 | 15:00 | 通过 | ||
Keep | 1面 | 16:00 | 未通过 | ||
探探 | 2面 | 18:00 | 通过 | ||
8月9日 | 周一 | 自如 | 2面+3面(现场) | 11:00 | 反馈找到了更合适的 |
滴滴-Rlab | 4面-BP | 15:00 | Offer,D6+ ,服务端测试,放弃Offer | ||
8月6日 | 周五 | 美团-充电宝业务 | 2面 | 11:00 | 通过 |
龙湖 | 2面 | 15:30 | 未通过 | ||
京东国际 | 1面 | 17:00 | 通过 | ||
滴滴-Rlab | 3面 | 19:00 | 通过 | ||
8月5日 | 周四 | 探探 | 1面 | 11:00 | 通过 |
销售易CRM | 1面 | 14:00 | 通过 | ||
小米 | 1面 | 17:00 | 未参加 | ||
京东科技 | 3面 | 17:30 | 后续反馈待定,个人猜测技术栈匹配度不高或薪资问题 | ||
新氧 | 1面 | 19:00 | 职位不太匹配,个人放弃 | ||
8月4日 | 周三 | 京东科技 | 2面 | 10:30 | 转工具方向 |
美团-充电宝业务 | 1面 | 11:00 | 通过 | ||
爱奇艺 | 1面 | 14:00 | 未通过 | ||
龙湖 | 1面 | 16:30 | 通过 | ||
Moka(杭州) | 1面 | 15:30 | 通过-后续面试放弃 | ||
有赞(杭州) | 1面 | 19:30 | 通过-后续面试放弃 | ||
8月3日 | 周二 | 中国通信 | 1面(现场) | 11:00 | 通过 |
自如 | 1面(现场) | 15:00 | 通过 | ||
滴滴-Rlab | 2面 | 19:30 | 通过 | ||
MetaApp | 20:30 | 个人放弃 | |||
8月2日 | 周一 | 58同城 | 1面 | 17:00 | 未找到会议室-个人放弃 |
8月2日 | 周一 | 国美电器 | 2面 | 18:40 | 后续反馈薪资给不到预期 |
7月30日 | 周五 | 滴滴-Rlab | 1面 | 16:00 | 通过 |
7月29日 | 周四 | 京东科技 | 1面 | 17:00 | 通过 |
7月28日 | 周三 | 国美电器 | 1面 | 17:30 | 通过 |
流程复盘
滴滴Rlab
服务端高级测试开发工程师 23-35k 15薪
职位描述:
- 负责服务端项目的质量保障工作,确保项目高质量上线。
- 参与产品需求和技术架构设计评审,评估整体技术架构合理性以及可测性,给出合理建议。
- 运用测试相关流程、策略、方法和工具等,提升测试质量和效率。
- 沉淀通用测试的解决方案,主导关键技术的专项建设。
- 测试领域前瞻性探索,推进整个测试团队技术进步。
任职要求:
- 工科、计算机相关专业本科以上学历, 3 年以上软件测试开发、自动化测试或白盒测试工作经验。
- 熟悉软件开发、测试理论和流程。
- 熟练java/go/python/php等至少一种编程语言;
- 熟悉软件测试的常用技术手段如:mock测试、代码diff等;
- 具备广泛的技术视野和很好的技术前瞻性,对测试行业发展有自己的思考及总结;
- 很强的学习能力、分析能力和问题闭环推动能力;
- 在某一测试领域如性能、自动化测试、环境治理等具备很强的专业技能者优先。
面试流程
共18days
美团充电宝
充电宝高级测试工程师 30-60k 15薪
岗位职责:
- 按照产品架构和业务要求,制定和推进测试策略和测试方法;
- 参与产品需求和设计评审,在理解产品设计的基础上确保产品具有可测试性;
- 通过在软件开发流程、测试策略、测试方法和测试工具等方面的创新,提升产品质量和工程效率;
- 构建CI环境,将功能测试、接口测试和压力测试等集成到CI环境中;
- 引入持续交付,通过测试可视化等技术手段增加团队发布信心;
- 解决日常工作中的复杂技术问题;
- 负责测试团队的技术培训,引领团队测试技术的进步。
岗位基本要求:
- 计算机或相关专业本科以上学历;
- 五年以上测试工作经验,熟悉软件开发和测试流程;
- 对持续集成和持续交付有深入理解并且具有实战应用经验;
- 精通Python或Java编程语言;
- 具备广泛的技术视野和很强的技术前瞻性,了解测试技术的发展;
- 极强的学习能力和解决问题能力。
具备以下优先:
- 自动化框架开发
- 提效工具或者是平台的开发
- CI/CD推动落地的经验
岗位亮点:
充电宝是美团的新业务,同时也是核心项目,能够提供成长空间。
面试流程
共22days
题目复盘
面试内容中,必考的是测试经验、数据库、Shell、编程等。
业务岗会有用例设计,偏自动化的会问很多框架中的稳定性及维护成本等方面的内容,MySQL和Redis相关问题也问的比较多。
复盘:由于砍柴(面试)前没有好好磨刀(刷题),导致面试还是有很多问题一下答不上来,以及算法不能顺利写出。后续还是需要进行刻意训练。
- 最常见的SQL问题为: 基本数据库查询、分组查询+聚合判断、左连接
- 最常见的Linux问题为:大型日志,grep过滤,sort + uniq -c + sort nr分组统计,和分组后使用awk求平均数
- 遇到的Python编程有:分组统计、列表相关操作
网易有道
- 【编程】有序列表合并
给出一个整数数组 和有序的整数数组 ,请将数组 合并到数组 中,变成一个有序的升序数组
注意:
1.可以假设 数组有足够的空间存放 数组的元素, 和 中初始的元素数目分别为 和 ,的数组空间大小为 +
2.不要返回合并的数组,返回是空的,将数组 的数据合并到里面就好了
3.数组在[0,m-1]的范围也是有序的
例1:
A: [4,5,6,0,0,0],m=3
B: [1,2,3],n=3
合并过后A为:
A: [1,2,3,4,5,6]
- 【编程】大型日志文件指定时间短按接口+异常归类统计
log分析。 给你一份10w行的log文件,内容如下 :
20180118 10:00:31 hello world
20180118 10:00:32 Exception:Null Pointer
20180118 10:01:01 something normal
20180118 10:02:15 Exception: invalid parameter
...
请按小时打印出exception的种类和数量,如:
20180118 10 Exception:Null Pointer 6
20180118 10 Exception: invalid parameter 10
字节跳动
-
【SQL】有student表 有字段,id,name;score表,有字段 id, course, score;数学科目分数大于80分的学生的名字?
-
【编程】二维递增矩阵查找
给定二维m * n矩阵matrix,满足一定特性: 1. 每行从左到右递增 2. 每列从上到下递增 给定目标元素num,判断num是否在矩阵中存在
例如:
matrix = [
[1, 3, 5, 10],
[2, 4, 6, 11],
[7, 9, 12, 20],
]
num = 4存在;num = 13不存在
这个题时在字节一面面试官的逐步提示下做出来的。这是一道图路径求解的过程。
类似于二分查找,对应一维有序数组,我们可以通过一次判断,来确定一个明确的方向(小于部分还是大于部分)。
而在矩阵中,一般一个节点有上下左右4个路径(排除斜线相邻点),每个节点有向左(减少)、向右(增加),向上(减少),向下(增加)四种方向。
我们需要找到只有两个方向,并且两个方向分别是增加和减少的节点作为初始节点。
矩阵的4个顶角满足只有两个方向,左上角定点两个方向(向右、向下)都是增大,右下角定点两个方向(向上、向左)都是减小,不符合要求。
因此,可以选择右上和左下任意一个定点作为起始点开始判断,模板值大于该点,则向下,小于该点则向左,直到找到目标点或超出矩阵范围。
参考实现:
def matrix_find(matrix, m, n, num):
y = 0
x = m - 1
while y < n and x>=0:
print(x, y, matrix[y][x])
if matrix[x][y] == num:
return True
if matrix[x][y] > num:
y -= 1
elif matrix[x][y] < num:
x += 1
return False
matrix = [
[1, 3, 5, 10],
[2, 4, 6, 11],
[7, 9, 12, 20],
]
print(matrix_find(matrix, 4, 3, 4))
- 【编程】数字转大写数字
将一个整数转成相应的中文,输入的数字不超过8位
0 零
1 一
1234 一千二百三十四
- 【编程】给定一个正整数n,任意调整位数顺序,找吃比n大且离它最近的数
比如 1234 输出1243
美团
- 【SQL】有score表,格式如下,求平均分 > 60的人的姓名
name | chinese | math | english |
---|---|---|---|
张三 | 100 | 100 | 100 |
李四 | 80 | 70 | 60 |
李四 | 50 | 50 | 50 |
平均分大于60相当于3课加起来成绩>180即可。
参考答案
SELECT name FROM score WHERE chinese + math + english > 180;
爱奇艺
- 【编程】二叉树前序遍历(迭代方式)
# class TreeNode:
# def __init__(self, x):
# self.val = x
# self.left = None
# self.right = None
#
#
# @param root TreeNode类
# @return int整型一维数组
#
class Solution:
def preorderTraversal(self , root ):
思路:在迭代外使用一个列表模拟队列,While循环,不断弹出节点并追加其左右子节点,直到列表为空。
-
【编程】单链表反转
思路:遍历链表,使用tmp缓存上一个节点,将每个节点的next指向上一个节点,首个节点指向None,时间复杂度O(N)。
当时答题时使用了数组型的列表或者栈来实现,时间复杂度一样,但是空间复杂度较高。 -
【SQL+编程】学生成绩文件分组统计
百度
- 【编程】8进制转10进制
思路:Python中可以使用bin()、oct()、hex()方法将10进制转2进制、8进制、16进制。也可以使用int()方法将2进制、8进制、16进制转为10进制。
进制转化方法1:采用除8取余法。
例:将十进制数115转化为八进制数
8| 115…… 3
8| 14 …… 6
8| 1 …… 1
然后得到163
参考实现:
def int2oct(num: int)->str:
m_list = []
cur_num = num
d = cur_num // 8
m_list.append(str(cur_num % 8))
while d != 0:
cur_num = d
d = cur_num // 8
m_list.append(str(cur_num % 8))
num_oct = ''.join(m_list[::-1])
return num_oct
print(int2oct(20))
- 【编程】有序列表合并求中位数
- 【SQL】数据库tb表,字段为name, class, score,查询平均分大于60分的班级
京东科技
- 【编程】根据屏幕截图及布局xml元素bounds进行元素图片截取
1.解析test.xml文件,输出所有class="android.widget.ImageView"的node节点。
2.每个节点代表test.png中的一个图片元素。每个node节点会包含一个坐标bounds值,如:bounds="[96,793][240,937]",
代表这个元素在图片中的位置。要求根据这个bounds值,
从test.png图片文件中截取指定区域图片,并保存,文件名为bounds四个数字,如96793240937.png。
思路:使用lxml结合xpath获取元素节点,并通过节点对象的attrib来获取bounds属性
使用pillow库Image对象的crop方法对指定坐标区域进行截图保存。
参考实现:
import os
from lxml import etree # pip install lxml
from PIL import Image # pip install pillow
def parse_xml_and_crop_img(xml_file, img_file, output_dir='.'):
root = etree.parse(xml_file).getroot()
img = Image.open(img_file)
img_node_list = root.xpath('//*[@class="android.widget.ImageView"]')
for node in img_node_list:
bounds_str = node.attrib['bounds'] # '[0,0][1080,2282]'
_bounds = bounds_str[1:-1].replace('][', ',').split(',') # list
bounds = [int(i) for i in _bounds] # item to num
print(bounds)
cropped_img_file = os.path.join(output_dir, f"{''.join(_bounds)}.png")
img.crop(bounds).save(cropped_img_file)
if __name__ == '__main__':
parse_xml_and_crop_img('D:\\test.xml', 'D:\\test.png')
-
【编码】CSV文件解析
CSV文件格式标准:
1.开头是不留空,以行为单位。
2.可含或不含列名,含列名则居文件第一行。
3.一行数据不跨行,无空行。
4.以半角逗号(即,)作分隔符,列为空也要表达其存在。
5.列内容如存在半角逗号(即,)则用半角引号(即',')将该字段值包含起来。
6.列内容如存在半角引号(即")则应替换成半角双引号("")转义,并用半角引号(即"")将该字段值包含起来。
7.内码格式不限,可为 ASCII、Unicode 或者其他。
8.不支持特殊字符。
要求:
写一个方法,输入为一个csv的文件,输出为解析后的真实的文本。
例如,
输入:你好,",","""xxx""",:,""",aaa
输出:你好 , "xxx" : " aaa -
4层负载均衡和7层负载均衡的逻辑
4层如LVS基于IP+端口的负载均衡,在传输层对指定TCP/UDP流量进行NAT和分配转发。
4层负载均衡复杂度低,性能高(吞吐量大),不需要理解应用层协议。
7层负载均衡,如Nginx, 应用层根据虚拟URL或者主机IP,对HTTP请求进行分配转发。
7层负载均衡,业务负载均衡逻辑更加灵活,可以应对一些安全问题,如SYN Flood DDos等工具。较耗费CPU。
haproxy可以做4层也可以做7层 -
Nginx负载均衡有哪些策略
- 轮询(默认策略),平均分配,自动剔除故障系统。
- 加权轮询(Weight),根据服务器性能加权分配
- ip_hash,按哈希表分配,ip访问固定的服务器
- 扩展fair: 根据页面大小和加载时间长短智能地进行负载均衡
- 扩展url_hash: url走固定的后端服务器。
-
vue页面生命周期
大致可以分为创建-》挂载-》销毁 3个环节
详细步骤为:
创建Vue对象-》开始监听数据-》初始化事件-》处理元素参数和模板参数-》编译模板-》
挂载页面(实时监控数据并更新)-》 -
高可用原理
-
MySQL索引如何支持百万级搜索?基于什么结构?B+树,二叉树,红黑树有什么区别?
-
NIO和AIO底层逻辑有什么不同?
-
框架设计目标?
-
关键字框架及缺点?
-
你熟悉那种测试框架?
-
如果让你自己实现一个关键字框架怎么设计?
-
RPC接口有那些优点?
-
你了解哪些序列化协议?
腾讯
- 【编程】合并重叠区间
给出一个区间的集合,合并所有重叠的区间
输入:[[1,3],[2,6],[8,10],[15,18]]
输出:[[1,6],[8,10],[15,18]]
解释:区间[1,3]和[2,6]重叠,将他们合并为[1,6]
参考实现(待优化)
def merge(arr):
if not arr:
return arr
result = []
min,max = arr[0][0], arr[0][1]
for start, end in a[1:]:
if end <= min:
continue
if start >= max:
result.append([min, max])
min, max = start, end
elif end > max:
max = end
result.append([min, max])
return result
知乎
- 【SQL】数据库tb表,id,name,age,查询 相同年龄,人数最多的age
参考答案
SELECT age, count(age) as num from tb GROUP BY age ORDER BY num desc limit 1;
- 【编程】括号闭合判断
思路:这是一道经典的栈道使用题目,遇到左括号{、[、(则入栈,遇到右括号则和栈顶对比,匹配则弹出,不匹配则返回False。
Moka
- 【SQL】数据库student表,包含name,course,score 3个字段,查询所有成绩大于80的学生
name | course | score |
---|---|---|
张三 | 语文 | 81 |
张三 | 数学 | 75 |
李四 | 语文 | 76 |
李四 | 数学 | 90 |
王五 | 语文 | 81 |
王五 | 数学 | 100 |
王五 | 英语 | 90 |
全部判断一般需要使用反向判断实现,先找到存在成绩<=0的学生姓名并去重。
然后使用NOT IN,查询不在这个集合内的学生
参考答案
SELECT DISTINCT name FROM tb4 WHERE name NOT IN (SELECT DISTINCT name FROM tb4 WHERE score <= 80);
- 【编程】列表偶数元素转
*
输入一个字符串如a1v23333de,将偶数位替换为`*`
自如
- 【编程】3数之和
职业规划复盘
缺少一线大厂背景
缺少管理经验
缺少落地的经验
大厂技术体系一览表
更多参考:https://www.zhihu.com/question/424489896/answer/2072139461
等级对比参考:https://baijiahao.baidu.com/s?id=1687557018539230402&wfr=spider&for=pc