我是投的是拼多多算法岗(自然语言处理)
原本是今天上午十点确定的拼多多面试时间。但是自己因为前一晚有事情忙到很晚,导致第二天睡过头,最后十点二十多的时候,拼多多hr打电话过来我才想起来这回事 。然后抓紧时间赶到面试现场,参加面试。
面试等待时间不长,很快就轮到自己了,一共有三轮面试:技术面试,HR面试 ,技术面试。
第一轮技术面试
第一轮技术面试是一个看起来比较严肃其实人比较nice的一个程序员小哥作为我的面试官,然后问了我快速排序应该怎么写,很遗憾我没有当场写出来,但是也完整的讲了我的思路,以及我为什么没有短时间写出来(这里确实要吐槽一下我的基础算法能力 ,很多刷题都默认这些是会的所以反而忽视了对基础算法的练习,而基础算法却是很多面试官都会问的)。然后聊了聊我做的文本生成的项目(LSTM文本生成)。小哥还问了我了解什么机器学习算法,我说有决策树,然后他问了梯度提升树,我就直接说我不了解这个,然后看到小哥好像有点卡壳,然后我就问了为什么梯度提升树这么重要,小哥说梯度提升树是很多算法的基础。然后聊了聊优化算法,我昨晚刚看过这个所以说了很多,但是感觉好像说道后面小哥并不想再听了,可能我谈的都比较泛。整体感觉还是蛮愉快的,不过也暴露出来我对基础算法的薄弱,以及对基础的机器学习算法的了解的过少 。
第二轮HR面试,很nice,问了一些很广泛的问题,比如意向工作城市,实习时间,有没有别的公司offer之类的问题。
第三轮 他们给我安排错了,安排到了一个做后端开发的面试官,问了我一些算法题,我回答的感觉还蛮不错,是一个回文打印问题,然后聊了聊人生,我的技术目标,以及我什么时候编程之类的问题。
然后等到我回到实验室, HR给我打电话说我第三轮面试错了,要重新面试,然后赶紧到面试现场, 问题就出在这一轮面试上了。姑且称之为第四轮吧。
第四轮面试官先是让我自我介绍,然后完毕了之后让我介绍我的论文,要求我说出 做的动机,解决了什么问题,以及贡献。这个我觉得我讲的蛮不错的,但是好像面试官并不care这个问题,没有追问。然后问了我知道什么模型,然后我说LR,但是这个时候我才发现 我连一个实际的完整的模型都说不出来。然后我说我不知道。这样的情况下一般面试官都会放弃追问,问下一个问题,但是这个面试官并没有(哭)然后继续追问,看是在问不出来什么才放弃。当中我一直想说我会的其他东西比如正则,优化算法之类 的,但是面试官并不care。看到在 这个问题上实在是面试不下去了,然后给我一道算法题目:
在一维坐标轴上存在许多条线段, 用最简单的算法找出重合长度最长得两条线段。 比如线段 A(1,5)、B(2,8)、C(3,9),则 B 和 C 的重合长度最长,为 5。
很遗憾我 努力想最优化的方案,反而忽视了用两个for循环暴力求解。然后面试官说 用 一次遍历就可以解决了,当时我觉得不对,但是在自己没有完成再加上之前回答不好的心理压力下没有想出来哪里不对(后来理清了思路才发现他的方法确实不对,我也不知道是真的想问这个算法还是想问我能不能找出他的错误)。然后他看我没回答出来,就更严肃了,继续追问模型,但是我还是回答不上来啊(中间一直推销我会的,但是没有用,最后他实在忍不住了,直接说你连基本的模型都不知道,会那些有什么用,我一想好像是的)。 不过最后很nice 的一点是,面试官直接指出来我的弱点,就是对基础算法的薄弱以及基本模型的不清楚。这一点是非常棒的能够直接指出我在面试过程中的缺点,不过也可能是我太弱了,面试官实在忍不住了。 不管怎么说,这很可能代表着我这一次拼多多面试的失败,反正再接再厉吧。知道了缺点再去努力改正就好了!