快捷搜索: 王者荣耀 脱发

纵横算法之二:社招如何面对算法面试

我的读者大部分都是工作过的,那社招该如何看待面试呢?

首先算法有校招和社招两种情况,校招算法的首要目的是什么呢?刷人!每年投阿里头条的可能有十万几十万,面试官不能一个个去面吧,那怎么办呢?用一些难的算法干掉一大波人,剩下的再择优录取,所以你在网上看到的什么阿里秋招、头条春招试题集里的算法都挺难,会觉得只有会这些难题才行,但其实对社招没啥用,因为面试的时候不会让你写这么难的问题,但是天天看这些材料本身就加剧了你畏惧。

而社招考察算法,不是为了刷人而刷人,只要你简历筛选通过了,就说明他愿意放下各种外在因素,考察一下这个人的功力如何,能力怎么样,此时算法就是考察思维能力的重要一环。但是,在面试的时候还要考虑时间因素, 如果你两个小时还没写出来,面试官自己也坐不住了,因此对于社招面试会以中等问题为主。

具体来说,社招面试主要考察三点:

1.这个人的编程基本功是否扎实。基本功不扎实,写的代码可能到处是bug。

2.这个人的编码规范性如何。如果很混乱,边界、异常等处理不清楚,那承担的任务肯定让人不放心的。

3.这个人思维能力如何,能够短时间内解决某些问题。这个反应的就是平时遇到问题是否能够很好的解决掉,而不是无能为力。

由此面试算法的特点是:

1.能够让面试者在20~30min左右完成,时间太久,面试官也没这么多耐心。

2.基本数据结构的变型题,有思维含量,但不会太难太偏。

3.代码精简,50行以内就能解决问题。

根据上面三点,我们可以认为不是所有算法都会考,刷算法也不是乱刷,而是应该更有针对性的刷。这与校招笔试有本质不同。因此不要看头条秋招算法汇总,阿里算法合集等,除了打击信心,浪费时间外没有任何用 。

看三个美团的例子:

自己经历的例子:

这几个问题感觉如何?其实都是基本数据结构的拓展,不是晦涩难懂的动态规划什么的。而这种类型的题目在社招的面试过程中能占到80%以上,所以大部分情况下只要你掌握这些基本内容,就不用怕大部分的算法面试。

那什么时候会出现难题呢?有以下几种情况

1.校招的时候,上面已经说了,不再赘述。

2.有些公司会先让你做个笔试题,然后根据成绩决定是否让你面试,这时候面试官不用考虑浪费自己时间的问题,可以给你两三个小时让你一直做,那这时候算法题的难度就会高很多。

3.还有的公司会让你在线做个题目,给你个链接,两三个小时内不得离开桌面,做完提交。之后根据结果决定是否让你参加面试。还有的直接发你一个题目,限时做完,然后将结果一并用来参考。

4.面试官不喜欢你,想让你走。这时候他可能会说你水平不错,但是我们更需要高级开发工程师等等,这不扯淡吗!招聘公告里压根就没说好不,再说了什么叫高级?难道不是更需要干活的吗?还有就是有些公司出现了严重的问题,招人只是宣传作用而不会真正招人,比如今年去滴滴,你觉得他们是真的需要人吗?

5.面试官不会出题,我们不要觉得自己来面试就低面试官一等,面试是双向选择的过程,有时候真可能是面试官经验不够不会出题,这就导致题目比较偏。所以网上各种说面试官奇葩的也不少。

如果遇到上面这些情况该怎么办呢?就当走路的时候踩到狗屎,被恶心了一下,清理一下该干嘛干嘛。我们工作已经很忙了,还要学习技术什么的,没精力没时间去迎合面试官的口味,而且这些算法本身也没啥用,就是为了面试的时候锻炼脑子的。

经验分享 程序员 微信小程序 职场和发展