►前言:

马云先生曾提出人类正从IT时代走向DT时代。

你是否乐于从事DS领域的工作,从数据中挖掘价值,提炼出可以辅助商业决策的有效信息?或是从数据分析的角度提升现有产品和服务,注重insights带来的商业效应与客户反馈?

DS求职综合篇将会从Networking,面试经验,投递技巧这三个角度对DS领域的求职进行干货分享。

Networking有哪些步骤?怎样的reach out最有效?面试的SQL和Product轮如何准备?有什么好的方法和学习资料?你是否也有过这些疑问?

打开备忘录,让我们一起来听一听Sophie导师的分享吧——

Networking:

内推对第一轮简历筛选至关重要,拿一个内推名额胜过海投20封简历,所以入读研究生以前,我就开始了networking. 这个阶段networking的主要目标就是认识人,留下印象,方便以后在秋招时拿到内推。

留下印象的最好方式,我认为是打电话>>>>>邮件>发消息。电话是最快速有效给对方留下印象的方法,只需要一个5-10分钟的对话,对方就能对你有一个大致的了解了。你问的问题、你的交流方式都能让对方对你的credibility有一个评估。

我不建议发邮件和消息,一是一来一回时间拖沓,且很有可能会被ghost,二是发完消息对方还是很难知道你是个spam、random person,还是个真心求职的人。综合以上的mindset,我总结了以下求职早期networking的步骤:

  • Step 1: 找到目标职位,比如Apple Data Scientist
  • Step 2: 在领英上输入目标职位Apple Data Scientist,向出现的人发送邀请,邀请时添加note,简单介绍自己、学校、申请职位,看到对方的经历很感兴趣所以想请教几个问题,提前感谢对方的帮助
  • Step 3: 邀请通过以后,进一步发消息问对方是否有10分钟时间可以打个电话
  • Step 4: 对方答应电话以后,准备好问对方的问题,注意要是smart questions,而不是在官网上就能找到答案的
  • Step 5: 电话完以后,要发Thank You note,并说自己在这次电话中学到了新知识(能具体举例更好),问对方将来申请该职位时能否再联系TA.

领英上的大多数陌生人都很热心,发出的消息回复率很高,很多人甚至都主动问我需不需要referral. 即使对方无法提供referral,能和行业人士聊聊求职体验也能学到很多东西。

面试 —— SQL:

  • · 秋招前

秋招前建议刷完Leetcode的easy+medium+小部分hard。刷这些题学到的知识足以应付大部分面试。很多人觉得要啃难题,但其实大多数难题例如pivot table,recursive CTE,面试里根本不会考到。搞清楚windows function,join,CTE比花1小时解开一题recursive CTE的marginal return高多了。

  • · 秋招时

拿到面试后,最有效的方式就是刷面经。像Meta,Onsite的SQL题几乎所有人都一样,刷到就是赚到。刷面经可以多和小伙伴交流、mock,尝试不同的解法,互相问follow-up,因为即使考到面经一样的table,面试官可能会问不同的问题,有个灵活的思路很重要。多Mock可以防止面试时因为紧张而答不出来,也可以提升沟通能力。

  • · General Tips

SQL最重要的是保持手感,最好能每天都刷2-3题SQL,不能生疏。尽管我暑假时刷了140多题,两个礼拜没碰SQL连join都有点生疏。

面试 —— Product:

Mindset

  • · Product没有正确答案,任何解法只要言之有理都能成为好答案
  • · 日常使用产品,把自己代入设计产品的人,思考产品的目标客户、产品收益、可能缺陷
  • 把面试官当成队友,比起能完美给出标准答案的candidate,面试官更喜欢能和他们交流、 互相inspire的teammate
  • · 不要害怕犯错,因为讨论过程>>给出完美答案;有了这个mindset,可以避免面试中因为紧张而影响发挥

刷题和资料

  • · 刷题:Meta的product题是很好的题库,量多,考点全。在地里找就有很多总结好的面经。秋招我基本刷完了Meta的产品题,去面其他公司的产品题比如Pinterest和Robinhood也都得心应手了。
  • · 资料:练product最高效的方法就是问专业人士。我的PH导师Emma给了我巨大的帮助。每次遇到想不明白的题,导师都用实际工作经验教我解答。导师之外,我在Networking打电话时也会问对方1-2 个product的思路。这样不仅学到了知识,也让对方觉得我是真的对他们公司的产品感兴趣,更愿意帮助我。其他重要资料我参考了3个:Udacity A/B testing,Youtube视频,《40题产品问题和答案》

  1. 1. Udacity A/B testing是个免费的介绍A/B testing的课程。适合初步学习和准备时间充裕的同学。课程本身比较基础,缺点是有点长,和三人教学的形式有点乱,重点不清晰。第一次看不一定能完全看懂。我反复看了3遍才完全理解每个点。
  2. 2. Youtube上Emma Ding的视频非常有用。特别是她的A/B testing系列总结地特别好,建议反复观看。特别是如果面试将近还没有啃完Udacity的话,这个系列抓住了A/B testing几乎所有的考点, 特别有针对性。其他有用的博主还有Data Science Jay,课代表立正。
  3. 3. 《40题产品问题和答案》地里可以下载,提供多角度产品问题的解题思路,言简意赅,非常好读。 其他辅助资料还包括Towards Data Science网站上的文章,小红书的product短视频等。

面试 —— Mock & 学习伙伴:

  • · Mock

申请暑期实习时我面了Facebook和LinkedIn,但都以失败告终。当时我不相信mock能带来任何帮助,一次mock都没有尝试。直到和一个拿到很多offer的朋友说起,她说面试前她mock了至少 10次,每一次她都学到特别多。申请全职时我就决定改变战略,mock次数越多越好。几乎每周都安排5-7次mock,结果就比实习好了很多。 不论是我mock别人还是别人mock我,我都觉得受益匪浅。

Mock时你的思维是流动的,即使你想到一个完美无缺的点子,在另一个人的思考方式里,可能就有很多破绽。Mock别人时,你会站在面试官的角度审视对方的观点,想到很多面经里没有的follow-up。同时mock别人看到的优点和缺点也能取其精华,去其糟粕。

更重要的是,mock让我找到了面试最舒服的状态。我学会了怎样drive conversation,怎样make conversation flow,说错或者有异议的时候怎样给对方解释,这些都是product面试的重要指标,只靠自己刷题是学不到的。 所以我非常建议准备product时能多mock就多mock,和不同的人1v1 mock,互相给feedback.

  • · 学习伙伴

除开刷题、资料和mock,我觉得最有帮助的是有一群一起学习的小伙伴。一个人的思路永远有局限,汲取他人的思路才能拓宽自己的思维。Product本身就是发散性的问题,多一条思路的益处超乎想象。其次,遇到问题随时有人和你一起思考,随时得到反馈,也能大大增加学习的动力。

我准备面试时在地里认识了2个非常热心且负责任的小伙伴。每天刷题时,遇到不会的题就发给对方,互相讨论自己的答案。不像自己刷题没有反馈,和小伙伴交流,每天学习都充满了动力,也无意之间拓宽了自己刷题的量。


申请投递:

申请暑期实习时,我最吃亏的地方就是没有规划好投递顺序。什么公司都是一放职位就去投,导致我最先面试的几家都是我的dream company,在毫无经验下去面试,结果就是被拒了。

申请全职时,我就把要投的公司分成2种:

  1. Dream company
  2. Other company

秋招刚开始时, 我先投了很多other company,拿到面试后就当练手,拿到offer就当增加信心。觉得心理准备充足 ,SQL和Product题也刷得差不多的时候才投了Dream Company.

我的时间线差不多是8月初和中旬投other company,9月初投dream company,9月面试other company,10月初开始dream company的面试流程,11月初拿到dream company的offer.

真实面试:

面试时,把面试官当成队友而不是考官。如果思路卡壳,可以适当寻求帮助,比如”I think I reach a dead end. Can you give me some hints here?” “My approach will be xx and yy. Do you think this is where we wanna go?”

具体到Product轮,衡量面试者的一项指标就是communication skills,看你能不能用沟通能力获取到有效信息,是否自顾自说话而不是有来有回的conversation,对话时是主动还是被动,能不能get到对方的Hint.

所以,真实面试Product轮我会遵循以下两点:

  1. 开始回答时,先说一遍解法, step1,step2,step3,然后再逐一分析
  2. 连续说话不超过1分钟,适当停下来问面试官before I proceed, do you have any questions?

Coding/SQL我建议先说一遍思路,再开始写题。这样先让面试官了解你的思路,如果你的思路不对,面试官会给你hint引导你,而且也表现你的沟通能力。其次,写码的过程中尽量边写边解释自己的code。比如为什么使用group by,windows function的作用是什么。

面试结束后,和每一位面试官、HR、coordinator都发一下Thank You Note. 如果面试过程中出现问题,比如面试官来迟了,网络不通畅等问题,都要和HR说。HR是最希望你拿到offer的人,因为你拿到offer,HR也有奖金。所以千万不要怕麻烦HR。

我有一轮面试时,和面试官对于一个语法有不同观点,面试结束后我查证了我的解法是对的。我就把这个事情告诉了HR ,如果面试官因为这个挂我的话,我还可以申请加面。