admin 发表于 2016-3-26 19:14:35

春节后开始准备,我是如何拿到百度腾讯小米的数据挖掘...

拿到的offer:
实习(支付宝)正式(百度、腾讯、网易、小米)所有公司都是数据挖掘工程师这个岗位
背景:
本科北邮通信,研究生中科院计算机(主要做图像识别相关)

准备过程:
01、明确方向
开始找工作之前,我结合自己当时的状态,觉得不想继续做视觉相关的岗位,但是对数据或者说机器学习还是有一定的兴趣,所以求职的目标定位为大公司的数据挖掘工程师。这个岗位总体来说面试中算法题会相对简单(我个人的感受是最多到Leetcode的中等难度,大部分时间都是考察基础算法),但是会对面试者的数据挖掘和机器学习知识要求比较高。

02、打好基础
差不多在春节之前开始刷了一些LeetCode比较简单的题,因为本科不是计算机的,其实很多比较基础的算法知识反而是我的弱项,在这上面花了不少的时间,建议基础和我一样不算太好的同学花一点时间巩固基础(排序、二叉树、贪心、动态、深度优先、宽度优先等等)。春节假期回学校之后花了一些时间准备数据挖掘和机器学习相关的基础知识,这里推荐李航的《统计机器学习》这本书,基础的数据挖掘和机器学习算法里面都涉及了,而且数学推导比较清楚,厚度也比较适合快速复习,这部分内容在面试中是被问得最多的,特别是Kmeans聚类和SVM(KKT条件,margin的含义等等,kernel的选择),逻辑回顾和决策树也经常问到。如果平时没有这个方向相关的项目经验的同学可以看看《Machine Learning in Action》这本书,里面有一些简单的例子帮助你理解各个算法的应用场景。如果有相关背景项目的同学建议也花一些时间整理一下,面试中比较理想的情况还是围绕着自己熟悉的项目来进行,展现自己在这个领域的能力。

03、初次找实习
三月份是找暑期实习的时间,因为我实验室的规定,暑期实习也是我唯一实习的机会,这里说一下,第一份的简历一定要找比较熟悉且热心的师兄帮忙修改一下,大部分人第一份简历都写得太模糊,重点不清楚。实习生的面试我只参与了阿里的,三轮电话面试,两轮技术一轮HR,说实话去年阿里招的实习生很多,我感觉难度也不是很大(今年可能情况有变),基本上就是我介绍了一下我平时在实验室负责的项目,问了决策树和SVM两个算法。第二轮是后来部门的大主管面的,基本属于谈人生谈理想,HR属于了解你的基本情况和你的一些想法,然后拿到支付宝这个实习offer之后我就没有在继续面其他的实习岗位了(当时的想法是实习去一个还不错的就可以了)。四月和五月我基本上是在一边准备投NIPS一边刷LeetCode中度过,多说一句,刷题不是单纯的快就行了,掌握某种类型的题目的解题思路远比所谓的最后Leetcode刷了多少遍重要。

04、校招面试
六月(应该是)参加了第一个正式校招面试,一家美国公司在东京的分公司(Indeed),后来我还去东京参加了onsite的面试,虽然最后没有拿到offer,但是整个面试经历还是很难得的,如果希望去国外工作的同学也可以关注一下这个公司(当时去日本面试的同学好像只有一个北邮的同学,感觉大家没怎么注意到这个公司,其实公司条件什么的都挺好的),整个面试的过程和我听师兄们描述的谷歌的很类似,onsite三轮面试,面试官会分别给出评价,综合起来考虑你能不能拿到offer。面试内容一般是你先简单介绍自己的情况和项目,然后就是做题,这个时候题目的难度就稍微难一些了,而且面试官会根据你写代码中使用的一些东西提问,你用了hashmap会问你一些相关的知识,你用了map也会问你红黑树相关的知识,为什么会选择某个数据结构,分析时间空间复杂度,这些都是必须的,而不是说你简单的把题目做完就可以了,所以单纯地刷题是没有意义的,想出国工作的同学可以参考一下。

05、拥抱变化
七月和八月在支付宝暑期实习,八月底转正面试,本来一切都很顺利,主管也告知我没啥问题,但是后来由于众所周知的『拥抱变化』还是没能去支付宝,这也涉及到一个我想提醒大家的,在没有见到最后的正式offer之前,不要放松自己,找工作是持久战,我当时多少是心里觉得留在支付宝杭州挺好的,很多八月北京公司的内推都没有投,结果九月初被拥抱变化之后比较好的部门都不接受简历了,而且整个面试的状态也断掉了。建议大家在实习中每天也要刷刷题看看相关岗位的技术书籍,不断保持自己找工作的状态。

06、整理再战
网易是当时在杭州实习的时候觉得来都来了去面试一下吧,面试一共三轮,一轮电话技术面,简单聊聊项目和基础数据挖掘算法,第二轮onsite技术面,时间比较长,我简历上写了一个很简单的新闻搜索,面试官问了比较多怎么解决自然语言相关的问题,写了一个二叉树的后序遍历(不能递归),第三轮HR面试,聊天为主。被拥抱变化之后,我老师帮我内推了百度和小米,赶上了百度内推的deadline。百度面试两轮技术面,一轮经理面,第一轮的面试官对我做的项目比较感兴趣,围绕项目的细节聊了比较多(深度模型的设计,优化算法等),第二轮的面试官对我的项目没啥兴趣,就做了两个算法题,但是都比较基础,第三轮技术经理问了一些比较抽象的问题(我项目的意义,我怎么调研和实现,怎么验证算法的性能,有没有什么可以改进的地方等),解答了我一些关于百度的问题。小米我面试了两轮,都是技术面,也简单介绍了一下项目,但大部分时间也就是白纸上写代码,感觉比百度的稍微难一点,但也没有超过Leetcode中等难度。腾讯是在阿里拥抱变化之后的绿色通道拿到的offer,一轮电话面试就拿到了offer,没有一般性就不具体说了。

如果可以重来:
一定要看到真正的offer才算是offer,虽然我不建议不停地刷offer,但是多拿几个自己满意的offer再进行选择是我现在觉得比较合理的一种方案。机会是会随时出现的,所以一定要保持好自己的状态,不要中途有放松的情况。最后祝大家都能找到自己满意的工作。

--------------END-----------------


转载自北邮人论坛
http://www.yuanyuanba.com/data/attachment/portal/201512/10/224938q4b50w9lfqz0gx9v.jpg
页: [1]
查看完整版本: 春节后开始准备,我是如何拿到百度腾讯小米的数据挖掘...