上岸算法I 谈一谈大家是如何准备IT面试的?

迎战春招,我该准备什么?

面试风向

或许很多人还在埋头苦刷。但殊不知,SDE的技术面试已经不再向“更难的题”进发。我们搜集了大量在2020年面试的同学反馈资料,面试考题依旧停留在以Medium至Hard难度之间,并没有因为疫情将题目门槛大大提高。题目难度相比往年几乎持平,也没有大范围出现更新,更难的算法知识。

相比较之下,近几年开始,面试对于求职者的交流能力提出了更高的要求。如何在面试中准确的提问,以及表达、阐述自己的算法思想,反而成了区别面试者能力的一大因素。恰巧,这又是很多求职者忽略的部分。我们要知道,“我会写题,我能写题” 和“我是一个Productive的工程师” 之间是有很大分歧的。要做一个多产的工程师,组间、组内的交流能力显然是最重要的素质之一。

用直观的量化表达,在一场面试中,算法能力的比重在我们看来高达60%,但剩余40%均来自于交流软技能。假设,你需要在一场面试中得到6/10的分数才能够通过,而假设能写对所有算法题(最优解, bug free)在四场onsite面试能得6分,能准确回答所有交流问题满分4分,大部分通过的同学会落在算法部分(3 to 5) + 交流部分(2 to 3)的区间内。

另外不要忘了,人是社会动物,好的交流能力能在面试官心理上帮你提分不少。

SDE面试准备

基于以上情况,假如你的目标是能够在2021年找到一份“给sponsorship”的年薪(总)不低于100k的SDE相关工作,那以下是我们给出的建议:

首先明确自己的算法能力,要深度掌握面试的必要算法,但不要盲目追求题量。刷题对于人的算法能力提升是显而易见的,但盲目追求数量而不去总结和归类一定是事半功倍。

以下是你必须深知的算法知识:

排序(常规/拓扑)/二分法

宽度优先搜索/深度优先搜索

双指针/链表的操作

盏的运用(包含单调盏等)

队列的运用

双向队列的运用

优先队列的运用

扫描线

树的问题

(除去BFS, DFS,树的一些经典操作,遍历(当然也可以算作dfs),序列化等)

有人可能要问为什么没有DP?

因为DP在大部分公司都不是面试要求,而且可以用DFS + 优化处理。另外在准备学习DP的时间性价比上并不高。所以不做推荐。

推荐题量?

我们推荐您在系统性的训练上述算法后,刷至400-500题即可。这些知识足够达成我们的目标。但我们还是要强调,刷题因人而异,我刷500题的体会和他刷500题的体会显然有很大区别。所以我们强调您需要“系统性”的训练算法。假如您不能在做到一题新题(假设是上述算法知识之一),并将之迅速归类到某种算法和某种写法,我们认为您的算法知识还有缺陷。

Data方向求职策略

数据领域和SDE领域的求职非常不同,SDE领域的求职知识往往集中在算法和计算机知识等领域。而数据领域的工作,很多人却仍有迷思。Data方向包括以下岗位:数据科学家(Data Scientist)、机器学习工程师(machine Learning Engineer)、数据/产品分析师(Data/Product Analyst)、商业智能工程师(Business Intelligence Engineer)、数据工程师(Data Engineer)。除此之外,数量研究师(Quantitative Researcher)、研究/应用科学家(Research/Applied Scientist)、甚至产品经理(Product/Program Manager)等等,也能属于data方向的广义范畴。

2020年,Data方向的简历投递策略是什么?

2020年无疑是属于海投的一年,往年可能还能集中几十个大厂投递,今年只能不论公司规模和名气,三十六计投为上计。因为Data方向的岗位众多,学生在投递简历的时候,往往走了一些弯路。我们在辅导中,经常碰到的几个关于投递的误区是:

1)投得晚

这一点毋庸置疑,太多学生想等到万事俱备只欠投递的时候、才投出神圣的简历,因此白白错过了最佳的投递时机。这样的例子数不胜数。明年春招在即,建议大家早早丰富好自己的简历,准备好在1-2月疯狂地投递吧。如果自己面试准备得已经要修炼成仙了,错过了投递时机而没有拿到面试,也只是屠龙之术。

2)投得精

Data方向尤其常见这一失误。很多学生只知Data Scientist,其实还有很多岗位和DS一脉相承。既然投了Data Scientist,为什么不同时投Analyst、ML、BIE、AS等等岗位呢?这些岗位面试需要的技能点和考察的知识点,和DS有一定的overlap。公司会根据自己的headcount和招聘策略,实时调整自己在不同岗位上的招聘额度。所以扩宽自己的投递范围也是常见的应对策略。

3)投得高

又是一个Data方向的求职者容易犯得错误。有些人很迷恋一些高端大气上档次的Research Scientist,或者时下很火的Machine Learning Engineer。这里我们不是不建议投递这样的岗位,如果背景合适,当然要死命地投递。但是,同时我们还要指出的是,这一类岗位通常僧多粥少,而且竞争可能远比想象得激烈。

有些很优秀的人,因为看不到和他们一起竞争的candidate pool有多大,就只往一些难度系数最大的岗位投递。我们给出的建议是,就算对这类岗位把握极大,还是要投递一些其它的岗位来保证自己能上岸,如BI类的岗位。

其实,不论是公司,还是岗位,职业发展是长期的,这样的事情不需要追求一蹴而就。只要你上了岸,之后不论往大厂跳还是转岗,都是有很多办法的;比起因为好高骛远而上不了岸,有了H1B之后的转岗和跳槽,要容易得多得多。很多的成功实例都有survivorship bias,并不是每年毕业的人中都有那么大比例的人拿了大包,找到最适合自己的路才是最重要的。

DS 面试准备

当然,Data领域这么宽泛的范畴也意味着面试准备不能千人一面。

1)夯实基础,SQL和Python编程基本功不可丢,关于array的data manipulation要会用Python写些easy题目;

2)举一反三,侧重case study的灵活运用,现在公司越来越侧重考查数据科学中business acumen了,也就是给你一个实际的情景,如何找到相应的数据来解决问题;

3)点面结合,machine learning的基础知识要懂,更重要的是怎么将你的机器学习设计与产品需求相结合。

你可能感兴趣的:(上岸算法I 谈一谈大家是如何准备IT面试的?)