更新
一周前发意向书了,忘记更新啦2333
四面
研发部门的面试官,面试前先告诉我准备纸笔备用,感觉人很好。先做了自我介绍,然后和面试官聊了一会儿项目。面试官说他不太熟机器学习算法2333,感觉就听了图一乐。然后撕了一道代码题,大小为N的数组,元素范围0-N-1,打印重复元素,要求时间复杂度O(n),空间复杂度O(1). 想了好多方法,但是不满足复杂度阿。。。用哈希表不满足空间复杂度,暴力法不满足时间,我好菜。无奈向面试官求提示,答:元素与下标有关,然后做出来了。做一次遍历,把元素放到对应位置上。然后再做一次遍历,不在对应位置上的元素打印出来,AC~。然后就结束了……反问环节,很直白地问他“您觉得我有机会吗?”,他发出蜜汁大笑,我感觉好慌。然后问了一些部门分工架构的事情,就结束啦。能做的已经都做了,剩下的只有等待……
我还要四面,还是技术面,人裂开来了……是不是之前的面试表现得不好,那为啥还能通过??……有没有同样情况的小伙伴告诉我什么情况。
前言
我是请同届的同学帮忙内推的,内推很重要。之前自己一直是做深度学习方向,有一些项目也是偏科研方向的,但是简历还是顺利通过了。不过有一个小插曲,本来投的是暑期实习,然后简历审核期间似乎是暑期那一批招入结束了,HR小姐姐问能不能放到秋招提前批面试,觉得没问题也就同意了。
一面
提前批不需要笔试(nice),一面安排在6月23日下午5:00。面试官是小姐姐(1-3面都是小姐姐面试,这就是字节的测开吗爱了爱了)。面试的流程体验下来是先项目,然后基础知识,随后是测试开发知识(带一点产品有关的),最后是算法。
1. 首先问了一些项目相关的:
问:选择一个自己觉得不错的项目详细介绍一下? 答:最后一个深度主动学习的项目,在深度学习的基础上加入主动学习减少对有标签数据的依赖balabala...
问:对这样一个需要数据处理之后迭代训练更新的系统如何进行测试? 答:输出一些中间结果,比如数据预处理结果、模型损失变化等等...(这部分当时答了一些人工的测试方法,感觉面试官想听一些自动化的方法?)
......项目的话大家因人而异,也就不细写(其实问了什么也快忘得差不多了)
2. 基础知识三次面试都没有考数据库。基本上就是计算机网络(http协议,tcp三次握手,服务端客户端如何交互),操作系统(主要考线程和进程,多线程),和语言(我考的是Python)。
3. 测试知识,问:如何为一个APP的网络通话功能设计测试用例? 答:正常情况通话、网络连接差时、多人通话、设备故障时通话。 (小姐姐特别好,一边面试一边教我,后来帮我补充了一些,比如说功能测试:电话能否拒接,能否挂断,响铃能否取消,能否设置为震动,我自己一直以为这是产品设计要管的事)
4. 算法:说到算法一面的时候真的丢脸。这次是我第一次去大厂面试,之前也一直以科研为主,算法刷得不多,所以底子还是差了点。小姐姐出了一道很简单的题,就是字符串倒序。我在准备面试的时候刷了一段时间的leetcode,不用自己处理输入输出真的爽,结果面试火葬场。就一两行代码的题目提交了几次才过,过程中还被面试官问是不是不太写代码……真的没脸见人。
第二题是机器人走方格,也就是leetcode 62 不同路径。面试过程中动态规划的思路有了但是边界条件没处理好,没写完。面试官后来说讲一下思路,也就讲了。
其实一面算法方面表现得比较差,当时心里是比较凉的。
二面
一面结束,快7点了 ,我本来打算吃晚饭去了,然后面试房间没关,幸好我在客厅听到了邀请面试的闹铃,不然就错过二面了。我真没想到一二面是连发的。
二面面试官,感觉更加循规蹈矩一点,问的问题感觉就很题库。
1. 项目相关: 还是讲了深度主动学习这个项目,我提到通过判别单个样本的信息量来选择高信息量样本。
问:如何判别样本的信息量? 答:基于两种方法,信息熵和KL散度...
问:如何避免过拟合问题? 答:数据增强和迁移学习
问:如何避免欠拟合问题? 答:增加迭代次数、提高学习率
反正感觉面试官并不是特别了解深度学习领域hhh,问的问题不难
2. 基础知识:
计网的问题有一个印象深刻的就是问http请求方法,我先说比较常见的get, post, put, delete。其实面试之前正好背到这个题目,但又不能表现出来我是死记硬背的,所以就回答了比较常见的四个。但她一直问还有吗,再想想,最后就像挤牙膏一样全说了哈哈哈。
然后问了多线程和python多线程的特点,答了全局锁,只能并发。
后来还问python多线程和协程的区别,这个没答上来。
问了哈希表存储原理,然后要求解释哈希算法。
3. 测试知识:
问:如何对视频播放软件卡顿的原因进行测试? 答:网络连接、服务器并发过高、客户端出错(答得比较宽泛),后来经面试官提示,又答设备性能问题(CPU和内存),视频编码解码异常。
4. 算法
长度至少为K的最大子数组和,先用了一个暴力滑窗,有点bug,只过了25%,还是吃了边界判断的亏。还没改完,面试官让用动态规划,写了个正确的状态转移方程,要是普通的最大子数组和就过了,但是要记录K,自己是建了二维的状态数组,然后面试官让写两个数组分别记录。反正倒腾到最后有思路但没写完……
三面
说实话,前两面基础知识和项目自认为答得尚可,但是算法时真的堪忧,毕竟都没有A。 二面结束第二天收到了HR的通知,说前二面通过了,约了端午后的三面。Great!不仅有机会三面,甚至还有机会再准备一段时间。
虽然说跨了个端午,有大约一周,但是在期末各种DDL和考试的摧残下,我最终仅有一天时间用于刷算法和理论复习。
三面感觉氛围不太一样了,面试官会问一些未来发展的方向,技术和业务更倾向于哪方面,性格等等问题。
1. python问了一些问题,深拷贝和浅拷贝的区别,*args和**kargs的作用,迭代器和生成器的作用。
2. 测试方面,面试官看我之前做深度学习图像处理的,问了拍修系统如何测试?她说大概是一个拍照批改作业的系统?我大概答了一些文字字符识别效果,照片清晰程度,答案批改正确情况。她说答得太简单了,要求有算法的分析。继续答文字字符识别可能使用深度卷积神经网络,答案批改需要自然语言处理模块,可以使用基于规则的方法也可以用循环神经网络做编码器解码器,另外需要测试一些同义词的模糊匹配正确性。
3. 算法,第一题是经典爬楼梯,第一次写错一点,改完就A了。第二题是在一个字符串中匹配一个子串,使词典中所有词都出现,用了一个set就解决了,中间还是遇到输入输出处理的问题,稍微调试了一下也A了。继续追问如果词典中出现重复的字母怎么匹配,答用hash map记录出现的词以及次数,一起匹配。继续追问,如果词典中出现的是词语而不是字母,怎么在字符串中匹配。先答了DFS,然后面试官表示效率不高,考虑了一会儿答字典树,也不太清楚她满意吗。。
至此,三面就结束了,后来继续闲聊了一会儿,基本上就谈学校活动,领导力这些事情。。
总结
1. 内推很关键,简历容易通过。
2. 基础知识很重要,除非完全不知道,否则尽力思考并给出回答。
3. 算法很重要,我的三次面试中都出了动态规划,并且面试前需要提前适应牛客的输入输出操作。
4. 实力不足也要给自己打气,充满自信能提升通过的机会。
5. 秋梨膏让我过吧!!
全部评论
(12) 回帖