国内互联网公司算法机器学习岗(阿里星)面试总结

从2015年8月到2015年10月,花了3个月时间找工作,先后通过内推参加了美团、阿里蚂蚁金服、京东、腾讯、今日头条、Growing IO、微软这7个公司的面试,同时参加了网易游戏、LinkedI In中国这2个公司的笔试,拿到比较优质的offer是京东Star和阿里星2个Offer。应聘的岗位要么是算法工程师,要么是机器学习与数据挖掘岗,企业叫法不同,工作实质都是利用机器学习与特征工程去解决业务问题。整个求职过程是一个和互联网企业双向了解,接收面试反馈后不断思考、调整职业规划与重复完善知识体系的过程,本文通过介绍我个人的求职过程,向后来者揭示国内互联网企业对算法&机器学习岗的要求、面试过程、薪资状况,也分享一些个人在这个过程中积累起来的见闻、经验。

本文分为三个部分,笔试&面试、经验心得、题目汇总。笔试&面试部分介绍各个公司的内推时间点、内推形式、我个人的笔试&面试情况,对了,还有不涉及保密协议的一些薪资情况;经验心得部分简单介绍简历、内推、面试的一些体会,对了,还有一些捷径;题目汇总部分包括我个人3个月求职过程中遇到的题目,分为笔试题、编程题、机器学习&数据挖掘问题、解决方案类题目。

笔试&面试

  1. 美团公司-猫眼电影部门。美团在2015年8月初开始接收内推。猫眼电影今年刚单独拆分出来,部门内缺少算法工程师负责机器学习类的工作,所以面试不难,你懂模型、能搞业务就没问题,编程题简单。薪资为15薪,月薪分为13K、15K、16.5K三档,后2档为special offer,16.5档可以谈薪水,没期权股票,没北京户口。
  2. 阿里蚂蚁金服-安全&服务与数据事业群-数据智能部。阿里集团2014年上市,将包括支付宝在内的金融业务剥离单独成立为蚂蚁金服。数据智能部刚成立,战略定位颇似蚂蚁的数据中枢,用于为各个部门产出数据智能。我因为参加阿里的移动推荐竞赛获得亚军,有专场面试的机会。在专场面试中表现神勇,连面4面+CTO面+HR总监面,获得阿里星。阿里的面试等级为B+,A-,A,A+,A+可以被面试官推到CTO处进行交叉面,面过了就是阿里星。今年阿里的薪资分为AB档,B档薪资有8K、10K两档,A档我知道的有16K一档,定级都是P5。阿里星年薪(此处马赛克)。
  3. 京东-数字营销业务部。京东8月底开始内推。数字营销业务部2014年成立,一年实现100多亿的营收,赚了大钱,公司因此开始重视技术。在NLP Job上看到相关内推,顺手发了封邮件,第2周的周一就被安排面试,面完2轮面试官给了special offer面试机会。最终的面试流程是2轮技术面+1轮HR面+1轮交叉面+1轮VP面,按照校招宣讲的说法这个是京东Star的流程。京东今年的年薪有19.5W、21.5W、26.5W三档,26.5W档的薪资可以谈,最高可谈到40W左右。数字营销部门有5个左右的户口,需要按照简历情况、面试反馈排队。
  4. 腾讯-TEG。7月底到阿根廷参加IJCAI会议时,碰到TEG的部门老大,在微信上把简历给了他。但部门老大自然不把这种校招内推的事放心上,到了9月初才被安排面试。面了2轮,算法题比较简单,但要求bug free,其他时间都在聊模型、数据挖掘比赛、实习项目。第二轮面试聊了很久,比较有意思,面试官给我分析了我拿到和可能拿到的offer。腾讯月薪我知道的有13K,15K,18K三档,18K是腾讯大咖档。腾讯加班多的部门年终在4个月以上,LOL部门几十个月年终。北京户口概率比较大。
  5. 今日头条-推荐组。今日头条算是一家国内少有的技术驱动的公司,目前是C轮。头条的笔试出的比较有水平,所以会比较看重笔试。我在面头条时心态不好,先是拒绝参加笔试,而后以比较高的姿态和HR、面试官沟通。所以头条的面试在第三轮时就中断了。头条面试的编程题不难,但对模型、推荐系统、项目线上经验等考察得比较深入。了解到的offer是月薪23K,加2000股票,没有户口。
  6. Growing IO-机器学习组。Growing IO是原Linked In商务分析部门总监张溪梦先生回国创立以提供数据分析为主,一键埋点为技术壁垒的Start up公司,目前仍在天使轮,进去的话工号排在十几。面了5面,部门leader2面+交叉面1面+co-founder面+CEO面。面试是按照社招的标准走的,leader面对机器学习考察得比较全面、深入,其他面就是聊聊天,画画饼。底薪一般,期权较多,无北京户口。团队里都是比较资深的工程师,但机器学习业务不多。
  7. 微软-Ads。2015年7月开始在微软小冰组实习,9月中旬开始转正面试,转到Ads部门。微软的转正面试是2轮技术面+1轮AA面,2轮技术面1轮positive就可以AA面。如果非实习生则需要2轮技术面都positive。另外,微软有预科生计划,转正只需要presentation,无需面试。转正面试的编程题相对较难,对模型、项目的考察较为深入。微软今年大幅扩招,还涨薪。21万左右Base,10%~20% Bonus,一些股票,28万左右的Package。MSRA的Base是28万,40万左右的Package。
  8. 网易游戏、LinkedIn中国。在9月中和10月初参加了这2个公司的笔试,2个公司的笔试都比较切合业务,与SQL语句相关。网易的笔试做了340分,但没被通知面试LinkedIn中国的笔试接近满分,但已经10月多,已经开始参加数据挖掘竞赛,没什么面试状态就没去面试。LinkedIn中国的Package在30万+,网易游戏看学校给钱。

 

经验心得

  1. 国内互联网公司和国外FLAGS的面试有很大不同,前者重视项目、实习经验、专业积累,后者看重的是你聪不聪明与编程题刷得多不多。在求职开始的时候心里得有个谱,合理分配时间、精力,并理性看待自己挂了笔试或面试。
  2. 简历讲究简单粗暴有逼格,简历包含联系方式、教育背景、实习经历、项目介绍、牛逼的荣誉、岗位相关的技能就好,谓之简单粗暴,有逼格则指的是实习、项目多用数字量化描述,省去叙事的过程,结果导向。还有一点经验,可以适当装逼,但不能装逼得超过可掌控范围。
  3. 投简历的时候,多走内推渠道,省去大部分笔试或者电话面试,不吃力又讨好。内推渠道有以下几种,我按照靠谱程度排个序:1) 总监以下的内部技术员工 2) HR 3)总监以上的高管 4)北邮人论坛 5)Linked In 6)知乎 7)NLP job 8)微信公众号。1)和2)是比较靠谱的,3)~7)只能作为备胎。还有一个非主流但很有效的捷径是参加企业举办的比赛并取得好名次。
  4. 面试时要抓住提问环节问一些实质性的问题,比如具体的技术问题、部门组织架构、部门战略地位、以后的工作团队、对个人的定位、KPI怎样给出等,尤以部门组织架构、战略地位、团队这类大又可说的问题最佳。京东面试官给我讲了百度架构部门的痛点,在之后的面试中我就经常和面试官聊关于架构部门和业务部门的话题,学到很多,大局观也慢慢改善。
  5. 在精力允许的情况下多面,多拿offer,一方面涨见识、谈资,一方面在谈理想公司的offer时能争取到更好的薪资待遇。

题目汇总

  1. 笔试题
    • 在互联网分析中,通常会关注用户的【第N日激活率】来衡量用户质量。用户的第N日激活指的是用户在注册的第N天登录网站或App,即算为该用户的第N日激活。第N日激活率指的是某日注册用户在第N天激活的数量除以该日所有注册用户数量
    • “赤兔”是领英中国针对中国职场人士推出的一款本土化的社交应用。如果你是领英中国的数据分析师,你会从哪些方面和维度来设计各项指标,给产品的设计和运营提供数据上的支持?请给出具体的维度和指标,并说明原因。
    • 网易游戏的一道笔试题是给定一条包含3个join的SQL语句,要求写代码模拟实现SQL的功能。
  2. 编程题
    • 最少时间复杂度求数组中第k大的数,写code
    • 去除字符串S1中的字符使得最终的字符串S2不包含’ab’和’c’,写code
    • 长度为N的序列Sequence=abc….Z,问有多少不同的二叉树形态中序遍历是这个,写递推公式
    • 给定整数n和m,问能不能找出整数x,使得x以后的所有整数都可以由整数n和m组合而成
    • 中序遍历二叉树,利用O(1)空间统计遍历的每个节点的层次,写bug free的code
    • 排序二叉树转双向链表
    • 一个运算序列只有+、*、数字,计算运算序列的结果
  3. 机器学习&数据挖掘问题
    • L1和L2正则项 >> 它们间的比较
    • 各个模型的Loss function,牛顿学习法、SGD如何训练
    • 介绍LR、RF、GBDT ,分析它们的优缺点,是否写过它们的分布式代码
    • 介绍SVD、SVD++
    • 是否了解线性加权、bagging、boosting、cascade等模型融合方式
    • 推荐系统的冷启动问题如何解决
    • 是否了解A/B Test以及A/B Test结果的置信度
    • 特征工程经验
    • 是否了解mutual infomation、chi-square、LR前后向、树模型等特征选择方式
  4. 解决方案类题目
    • 为今日头条设计一个热门评论系统,支持实时更新
    • 给定淘宝上同类目同价格范围的两个商品A和B,如何利用淘宝已有的用户、商品数据、搜索数据、评论数据、用户行为数据等所有能拿到的数据进行建模,判断A和B统计平均性价比高低。统计平均性价比的衡量标准是大量曝光,购买者多则高。
    • 有n个elements和1个Compare(A, B)函数,用Compare函数作为排序算法中的比较算子给elements排序。Compare函数有p的可能比较错。排序完取Top m个元素,本来就在Top m并被正确分在Top m的元素个数是x。问x的数学期望。

 

读到最后,希望能对你有所帮助。

阿里巴巴研发工程师Java 面经

作者:成长ing

一面: 

1. 自我介绍 

2. 问:看过什么书? 

3. 问:最近有开发过并发的吗? 

4. 问:那知道线程安全吗? 

5. 问:程序中是如何实现并发的? 

6. 问:如何选择使用哪一个,有什么区别? 

7. 问:HashMap线程安全吗? 

8. 问:Hashmap的底层是怎么实现的? 

9. 问:ConcorrentHashMap安全吗? 

10. 问:是如何实现的? 

11. 问:是用怎样的锁? 

12. 问:如果Key值放置的是object对象,需要怎么做? 

13. 问:String有重写Object的hashcode和toString吗? 

14. 问:如果重写equals不重写hashcode会出现什么问题? 

15. 问:String 为什么要重写这两个方法? 

16. 问:100000个数找出最小或最大的10个? 

17. 问:堆排序是稳定的吗? 

18. 问:稳定和不稳定会导致什么问题? 

19. 问:那如果你定义一个类,包括学号,姓名,分数,如何把这个对象作为key要重写equals和hashcode吗 

20. 问:知道TCP、IP的连接过程吗?我问是三次握手吗? 

21. 问:如果只有两次会怎样? 

22. 问:那两次服务端会怎样? 

23. 问:如果客户端不断的发送请求连接会怎样? 

24. 问:那怎么知道连接是恶意的呢?可能是正常连接? 

25. 问:如果多个客户端多个请求连接,但是都只是两次会客户端会怎样? 

26. 问:用过SYNGLA。。吗?什么鬼东西,听不清楚,就说没用过。 

27. 问:你刚刚说你最近在研究1.8吗? 

28. 问:说一说Java内存模型?我问是内存分区吗? 

29. 问:说说堆的分区? 

30. 问:打算留在广州吗?还是杭州。 

31. 问:打算读研还是毕业工作? 

32. 问:为什么不读研? 

33. 问:有什么问题要反问吗?问哪里做得好和做得不好的? 

二面: 

1. 没有自我介绍,直接进入正题 

2. 问:一堆数字里面继续去重,要怎么处理? 

3. 问:hashset怎么实现?底层是hashmap 

4. 问:因为别人知道源码怎么实现的,故意构造相同的hash的字符串进行攻击,怎么处理? 

5. 问:那jdk7怎么办? 

6. 问:如果要去除后还要有序? 

7. 问:对线程安全怎么看? 

8. 问:为什么要实现内存模型? 

9. 问:如何让线程安全? 

10. 问:如果要你做一个防火墙,有10万个黑名单,有可能会增长达20万个,一个数据包过来,如何匹配? 

11. 问:数据库的实现比自己实现B树快? 

12. 问:二分查找复杂度是? 

13. 问:GET和POST的区别? 

14. 问:用面向过程可以实现面向对象吗? 

15. 问:那是不是不能面向对象? 

三面: 

一道题:两个小时 

//IP地址库查找,自定义内存中的数据结构,需要考虑性能最优,内存最少。 
//精确编写该类的实现并且包括单元测试程序。 
//编译环境为标准Java。 
public class IpLib{ 

//第一个接口 
/* file 为IP地址库文件,格式为每行一个点分十进制的IP,上亿条。 需要判断IP格式是否正确,且IP需要去重 */ 
bool LoadIpLibFile( String file); 

//第二个接口 
/* 输入一个点分十进制的IP,若该IP在内存数据结构中,返回true,否则返回 false */ 
bool Find( String ip); 

我当时想到的方法 创建1亿个元素的long数组,然后将每一个读入的IP用正则判断无误后转为 long 放入数组中,然后用快速排序排序,对输入的IP转long进行二分查找。当然去重操作是做不到的 

四面: 

一道题:四个小时 

考察学习能力: 

阅读 RFC2616 文档,即 HTTP/1.1 规范,输入某个网址,利用 Java 的 Socket 发送 HTTP请求,特别要求能够解码 chunked 编码,观察文档中的伪代码实现,自己用Java代码实现,将解析后的整个html文档输出到控制台上,不要求关注太多细节。(就是不允许用httpclient的jar包,自行实现这个jar包类似的功能) 

五面: 

1. 问:为什么选择后台? 

2. 问:之前填写意向的时候说是去UC的移动事业群,说说你对手游的理解 

3. 问:谈谈对阿里云的理解?后来说如果前面面试官没介绍过就不用说了 

4. 问:说说对安全的理解? 

5. 问:准备往哪个方向?大数据,云计算? 

6. 问:看你填了之前去过某个XX公司兼职过,平时是干什么的? 

7. 问:开发的项目是负责什么?是成员吗 

8. 问:那两个人负责,你是主导还是配合? 

9. 问:当初为什么选择去XX公司? 

10. 问:为什么不考研? 

具体看我是怎么答的: 

https://zebinlin.github.io/tags/#interview



本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/386081.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

疯狂涨知识!「高并发秒杀」微信抢红包实战案例帮你突破瓶颈

推荐阅读: 阿里二面凉经:设计模式缓存Spring虚拟机MySQL中间件并发等难题,全部迎刃而解阿里巴巴字节跳动那些大厂必问的HTTP该怎么学?我建议你看看这篇文章!蚂蚁、字节、PDD社招面经Java岗(分布式线程安全…

2016面试——腾讯、蚂蚁金服、蘑菇街

腾讯TST技术面: 先罗列一下问题吧: 编程语言编译的过程 同样的逻辑,golang的二进制代码比C语言的二进制代码长很多.试分析原因 项目 ,三个项目都有聊.因为现场面,可以用纸写,所以描述的更清楚些 N * N的方格纸,里面有多少个正方形 两个数组求交集 什么样的…

Android开发;Activity-Hook你了解多少?一起来debug

享学课堂特邀作者:周周 转载请声明出处! 前言 手把手讲解系列文章,是我写给各位看官,也是写给我自己的。文章可能过分详细,但是这是为了帮助到尽量多的人,毕竟工作5,6年,不能老吸血,…

牛客网笔记之JAVA运算符

计算机的最基本用途之一就是执行数学运算,作为一门计算机语言,Java也提供了一套丰富的运算符来操纵变量。我们可以把运算符分成以下几组: 算术运算符 关系运算符 位运算符 逻辑运算符 赋值运算符 其他运算符 逻辑运算符结果 ~a是按位非&#…

Android架构师谈:View-Pager-性能优化之-无限循环

作者:享学课堂Alvin老师 转载请声明出处! ViewPager实现无限滑动 **方案一:**将viewpager上限设置成一个很大的数,第一个页面设置到中间。然后滑动的时候,用当前的序号与viewpager页面数取余得到目标页面的序号&#…

你知道如何用面向对象思想写好并发编程吗?

在工作中,我发现很多人在设计之初都是直接按照单线程的思路来写程序的,而忽略了本应该重视的并发问题;等上线后的某天,突然发现诡异的 Bug,再历经千辛万苦终于定位到问题所在,却发现对于如何解决已经没有了…

你知道怎么在生产环境下部署tomcat吗?

享学课堂特邀作者:老顾 转载请声明出处! 一、前言 小伙伴们在网上看到的很多文章,都是对tomcat的一些介绍,什么配置啊,怎么启动。其实在生产环境中怎么部署,和网上介绍的有很大区别。这篇文章老顾就带着大…

浅谈HashMap

Java集合类的整体架构 比较重要的集合类图如下: 有序否 允许元素重复否 Collection 否 是 List 是 是 Set AbstractSet 否 否 HashSet TreeSet 是(用二叉树排序) Map AbstractMap 否 使用 key-value 来映射和存储数据, Key 必须惟…

matlab实现一元线性回归和多元线性回归

在回归分析中,如果有两个或两个以上的自变量,就称为多元回归。事实上,一种现象常常是与多个因素相联系的,由多个自变量的最优组合共同来预测或估计因变量,比只用一个自变量进行预测或估计更有效,更符合实际。 在实际经济问题中,一个变量往往受到多个变量的影响。例如,家…

互联网寒冬!“996”为什么还没实行?我还等着早点下班呢!

“喊了十多个月的‘996’,说要实行‘996’,上班上到现在,影子都没看到,我还能早点下班吗?” 我一个在广州上班的朋友小李,在我去广州出差期间,与他聊天的时候发出了这样的牢骚,我刚…

matlab求解常微分方程组/传染病模型并绘制SIR曲线

看了很多关于传染病模型的matlab程序,大都是绘制出两条曲线(I、S)的,本文最大的不同是绘出SIR三条曲线。 先给出SIR微分方程组 函数文件: run的程序:

互联网寒冬!技术站最全MySQL数据库实战规范

享学课堂特邀作者:老顾 转载请声明出处! 前言 我们小伙伴们经常使用到mysql数据库,一般就这么一用,很少会考虑mysql里面的细节问题,如sql语句的规范,或索引有没有起到相应的效果,今天老顾就给大…

SQL求一个表中非重复数据及其出现的次数

mysql中,我们可以用distinct求不重复的数据有多少,也可以用group by。 这里有个例子,如下表sheet1,共有5411条数据 查询语句 共有3446条不重复数据,每条不重复数据出现的次数在第二列显示:

什么是微服务扩展性和高可用-可扩展性、高可用性和性能

欢迎关注专栏:Java架构技术进阶。里面有大量batj面试题集锦,还有各种技术分享,如有好文章也欢迎投稿哦。 Overview 可扩展性、高可用性和性能 术语可扩展性、高可用性、性能和关键任务对于不同的组织或组织内的不同部门来说可能意味着不同的…

SQL实现当前行等于前面两行数据之和

sql实现类似斐波那契数列的功能,即当前数据等于前面两个数据之和,详看本文例子 原表: sql语句(此处要熟悉JION ON的用法) 结果

【大牛系列教学】靠着这份面试题跟答案

开篇闲扯 打工人,打工魂,我们生而人上人。当“资本主义”逐渐禁锢我们人(大)上(韭)人(菜)肉体的时候,那一刻我才明白那个日不落帝国资本主义收割机瑞民族之光幸瑞幸咖啡…

matlab实现二项分布

二项分布 1. 求n次独立重复试验中事件A恰好发生k次的概率P。 命令:pdf 或 binopdf 格式:pdf (‘bino’, k, n, p) 或 binopdf (k, n, p) 说明:该命令的功能是计算二项分布中事件A恰好发生k次的概率。pdf为通用函数,bino表示二项分布,binopdf为专用函数,n为试验总次数,…

【工作感悟】成功入职阿里月薪45K

前言 苦苦寻觅找工作之间,殊不知今日之时乃我心之痛,难道是我不配拥有工作嘛。自面试后他所谓的等待都过去一段时日,可惜在下京东上的小金库都要见低啦。每每想到不由心中一紧。正处为难之间,手机忽然来了个短信预约后续面试。 我…

Mysql优化技巧

索引优化,查询优化,查询缓存,服务器设置优化,操作系统和硬件优化,应用层面优化(web服务器,缓存)等等。这里的记录的优化技巧更适用于开发人员,都是从网络上收集和自己整理…

【工作经验分享】不会真有人觉得mybatis很难学吧

什么是自旋锁和互斥锁? 由于CLH锁是一种自旋锁,那么我们先来看看自旋锁是什么? 自旋锁说白了也是一种互斥锁,只不过没有抢到锁的线程会一直自旋等待锁的释放,处于busy-waiting的状态,此时等待锁的线程不会…