起初是看到一个在华为云的师兄发的朋友圈,然后上周三联系了他发了简历,本来想投CV,他说CV没有坑位,后来就让帮忙投到nlp;
一面(电话面)
然后第二天下午,华为就打电话面了一下(其实上午就打了,但是当时手机调静音没接到,纠结了很久是否还会再打呢)
这个电话貌似就是一面了,让我自我介绍,然后简单介绍了项目,不过因为项目确实很烂,而且关系也不大,没花多长时间。不过面试官真的有耐心,各种找话题问,甚至还问了Leetcode刷了几题,平时看了哪些技术博客公众号啥的。
强行尬聊了30多分钟结束,话说我当时还在开组会来着,这个面试确实挺突然的。
二面(终面、zoom视频面)
接着这周一,这个部门的一个小哥加了我微信,问我能不能从事一些nlp偏开发类的工作,刚好不久前看了y总的分享,果断回复没问题。就在昨天,hr小姐姐打电话约今天下午5点面试,尴尬的是,第一次打的电话又没接到。电话打得也很有效率,先通知我一面过了,安排今天终面是否可以;然后说了一下终面的时间就挂了。之后发了面试邮件,有zoom的房间号。
面试官小哥哥很敬业,我本来想着提前10分钟进来先调试准备一下,没想到一进来发现他已经在了;不过刚开始听不到他那边的声音,调通了以后面试就开始了。
首先是自我介绍,然后问了一下基本情况,什么时候毕业?能实习多久?之后的职业规划是怎么打算的?常用的语言是什么?之前有没有做一些偏工程的小项目?代码量有多少?
然后就让打开IDE,共享屏幕,写写代码。
题目是两个无序的数组,返回他们的中位数,这个中位数是指两个数组中所有数据排序之后中间的数或中间两个数的平均。
其实可以理解为,将两个数组合并后,对新数组的topK问题。不过当时有点紧张,第一次用自己的IDE在其它人面前写代码,纠结了半天,是用快排呢还是堆排。
面试官看我几分钟都没怎么写就让我说说思路,我就说了堆排的思路,然后他说其实简单的想法就是对合并的数组排序后取第k个,如果考虑优化那就要用到堆排这些了。
最后问我有没有啥问题,我就问了下如果去实习要做些什么工作,他简单介绍了一下,面试就结束了。
总结
我这两面都有点突然,面的时候有点紧张。特别是二面做题,现在反思感觉面试官是想考察一下我的代码能力,没get到点,其实直接排序几行就解决了。而且想的时候也没怎么和面试官沟通,不确定是否可以直接将二者合并然后直接排序。
做题的时候和面试官及时交流确实很重要,有不太清楚的就大胆去问,不要自己在心里纠结。其实我如果问清楚了,先把合并排序的代码快速写出来,然后慢慢优化,肯定比我心里默默纠结然后犹犹豫豫最后啥也没写出来好多了。
现在就是马后炮一下,告诫自己下次面试要注意,也希望我的这波错误经验分享能够提醒到有需要的同学。不过看过再多经验终究是不够深刻,自己踩了一下才真的是印入骨髓,总之还是要多多去面试,积累经验。