校招经验心得收集

https://zhuanlan.zhihu.com/p/35460943 阿里巴巴面试问题总结

 

 

春招实习:已拿到offer,总结一下,一共6面,5轮技术面,一轮HR,其中第一面是计算机基础知识,第二面问的系统基础和白板写题,第三面是问的简历,第四面实现malloc和读写锁设计,第五面简历和分布式基础知识,六面HR小姐姐热情介绍阿里云的发展状况

-----------------------------------------------------------------------------------------

作者:小狼
链接:https://www.zhihu.com/question/267845706/answer/366238902
来源:知乎
著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。

3.24

内推投的简历,问了内推师兄表示在线测评可做可不做,于是就放着没做

3.30

一面,面了大概100分钟

一开始让我介绍自己做的一个比赛

然后从比赛开始聊各种传统机器学习算法,LR,正则,决策树,GBDT,XGB,LGB,优化方法,深度学习全都问了个遍,问的很深入,不仅仅是算法细节,都是要进一步思考算法本质才能回答的问题。

然后问了几道编程题,因为我刷题不多(面试前抱佛脚勉强看完半本剑指offer),在提示下勉强答上来,一面结束。

4.9

二面(应该算是三面,问了师兄本来有个二面但是给我直接过了),面了40分钟

大概是过了个清明,等了很久,向师兄催了下第二天就收到了面试

面的是部门leader,一点也不严肃,很亲切,聊的很愉快。主要也聊了下比赛内容,然后问了些比较实际化的问题,比如GBDT+LR,LR连续特征的处理。然后向我介绍了部门做的内容,然后面试结束,让我有问题可以短信联系。

4.10

交叉面,20多分钟

也是让我挑一个比赛详细讲讲(内心OS,面了那么多快讲吐了,幸好有好几个比赛,每次挑一个不一样的),然后从比赛引开去问了几个机器学习问题。

之后问了一道概率题,一道算法题,本来要线上编程,但是太麻烦了让我口头讲了讲,然后结束了

4.12

HR面,半小时不到

又是让我讲比赛内容(累。。。。)然后问了很多技术问题,从特征提取讲到模型选择,模型差别,问的问题比较偏向实际应用而不是算法细节。

之后又聊了实验室项目,因为实验室是搞DB的,又问了几个相关技术问题。(阿里的HR感觉很厉害。。。)之后又问了我工程水平,未来规划啥的,结束。

 

目前等最终结果ing。。。。有消息更新。

-----------------------------------------------------------------------------------------

坐标北京,渣硕一枚,找暑期实习,投了阿里的算法工程师-机器学习,已拿到录取意向书,6月中旬入职,计算平台事业部的。

3.2 周五。一面,电话面,时长1小时20分钟。一半时间问的机器学习算法,一半时间问的多线程、编译、算法等各种题,还有一道智商题……感觉还OK。3月6号接到电话说一面过了,约我去北京阿里望京中心现场面。

3.12 周一。二面,阿里望京中心现场面,时长1小时。问了算法、概率、机器学习等,还手写了LCA。感觉是个一线leader,问得挺难的,感觉是几轮面试中最难的一轮了。3月2号接到电话说二面过了,约明天电话面。

3.21 周三。三面,电话面,时长1小时20分钟。没问什么技术细节,基本问的是经历、项目、收获,还有思维的扩展,对项目的想法和延伸等。然后在线白板写了全排列(当然不能用库),快速写完后,讨论了一些优化和更高级的算法,聊的很开心,结束。

3.28 周三。四面,HR面,视频面,时长1小时。阿里的HR感觉还是还是挺有智慧的,没问什么技术细节,感觉考察的是你的人生经历、思考问题的方式、面对困难的态度等等。个人感觉还不错。

4.12 周四。五面,交叉面,电话面,时长1小时多。两周没消息,还以为凉了,突然接到电话约面试,说是交叉面。稍微聊了聊项目,然后考了一个小时的各种数学题……开始的时候还比较卡,但好在很快就进入状态,跟面试官聊一步一步的思路,一步步解。

4.13 周五。HR发消息给了口头offer,说提交到校招团队审核了。

4.21 周六。收到短信和邮件,收到了录取意向书。HR联系我说下周会有人通知体检。一个半月的等待终于尘埃落定。

-----------------------------------------------------------------------------------------

作者:林小花
链接:https://www.zhihu.com/question/267845706/answer/391949937
来源:知乎
著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。

3月12号晚上8:24-9:14电话面试

支付宝小哥哥本来是找我约时间的,我上来就让小哥哥面试,小哥哥有点惊慌失措。

自我介绍,项目经历

RF的具体过程,决策树的特征选择

梯度下降法

最大似然函数

看过的书,印象最深刻的是什么算法(模型)

在线编程题:快排

3月23号晚上20:46电话面试 25分钟

为什么问题用分类方法,而不用回归模型。说一下优缺点。

bagging boosting的区别

项目中的问题

快排的复杂度为什么是o(nlogn)

3月24号早上11点-12点 主管面试

自我介绍

比赛的整个过程:包括数据预处理 特征选择 模型选择 参数调优

smote是什么 easyensemble是什么

GBDT的二分类具体是如何拟合残差的

L1 L2正则是什么 L1正则会遇到什么问题,如何解决

什么是动态规划

三个编程题:

1.连续排序好的数组,找到缺失的那个数。

2.两个字符串,找到公共最长的连续子字符串,输出这个子字符串

3.对于海量数据,如何求出topk

认为自己的优缺点 要了我SCI的链接和PDF 问我有什么想问的

4月2号晚上7点没接到支付宝打的电话

4月3号上午11点接到hr的电话,很激动。

1.简单说一下你现在的情况,研二,在写论文

2.为什么选择阿里,为什么选择蚂蚁金服,你觉得你现在的能力是否可以胜任这里的工作。

3.在团队里你一般充当什么角色

4.你觉得你现在和以前相比,进步最大的是什么

5.你的优点和缺点是什么

6.你的本科和研究生成绩如何,你觉得你大学期间什么科目学的最好

7.你觉得你的研究生生涯科研方面做的怎么样

8.找其他实习了嘛

9.你是如何学习一个你没有接触过的东西

10.实习的时间是什么时候,意向的实习地点

11.还有什么问题

4月29日

收到意向书

5月4日

收到一个师兄的电话,问了我近况和入职时间

5月5日

接到HRG的电话,询问入职时间

5月9日

接到小管家电话,预约体检日期

5月14日

收到正式offer,从此生当蚂蚁人,死当蚂蚁魂

-----------------------------------------------------------------------------------------

2.6 内推

2.9 一面

天池比赛,实习项目介绍,以及比赛项目中用到的机器学习算法

2.9 二面

数据结构算法题coding,主要是链表、二叉树、排序题,难度和编程之美持平

2.28 三面(主管面)

天池比赛,以及最近看过的一些paper,主要聊了下当前比较流行的GBM模型

3.7 四面(交叉面)

主要问了下在阿里的实习经历。算法方面重点介绍了gbdt, random forest, xgboost的源码实现。

3.15 五面(HR面)

介绍个人经历,在实习或者比赛中遇到的有挑战的事情,对自己做个评价,可入职时间



作者:匿名用户
链接:https://www.zhihu.com/question/267845706/answer/349386929
来源:知乎
著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。
-----------------------------------------------------------------------------------------

作者:sosilent

链接:https://www.nowcoder.com/discuss/75360

来源:牛客网

 

由于工作地点选在北京,HR沟通后要求去现场进行面试。

 

一面(现场面)

 

由于现场面大部分原理都需要手写解释。

 

1、监督学习非监督学习啥区别,word2vec 属于啥类型

2、xgb,gbdt啥区别

3、l1,l2正则原理、区别

4、xgb中l1正则怎么用的

5、python 中 list 底层怎么实现

6、list dict有什么区别

7、手写对dict排序

8、介绍项目,从项目中又问了一些

 

二面(现场面)

 

二面大哥是临时叫来的,没看过我的简历,就对简历中的项目进行探讨,讨论了一下实现的方式。

 

三面(现场面)

 

1、自我介绍

2、介绍项目

3、集成学习介绍(boosting bagging stacking原理)

4、stacking blending区别

5、分析为什么使用xgb(提示,从特征维度,样本维度等进行比较)

6、过拟合的判断方法

7、过拟合如何解决

8、概率题 X是一个以p的概率产生1,1-p的概率产生0的随机变量,利用X等概率生成1-n的数

9、手写代码 两排序链表合并

 

四面(现场面)

 

1、自我介绍

2、介绍项目

3、手写代码 数组中第k大的数

4、构造堆的时间复杂度

 

五面 交叉面(视频面)

 

1、自我介绍

2、平时成绩

3、python 中 key-value的数据结构

4、dict底层如何实现

5、如何解决哈希冲突

6、非监督学习举例

7、解释k-means原理

8、距离的计算方法

9、监督学习模型如何选取

10、场景题 知道所有信息,为用户推荐饭馆

11、算法题 两个300G的大文件,求两个文件的交集

 

六面 HR面(电话面)

1、自我介绍

2、拿了哪些offer,为什么选择阿里

3、有哪些优缺点

3、性格如何,性格上有什么缺点

4、学习有什么收获,面试有什么收获

5、薪资有什么要求

 

七面 总监面(现场面)

 

总监面史上最难,全程懵逼,每个问题问到不会为止,面试时间大约持续2小时。

1、大概介绍项目

2、详细介绍论文,我的论文方向是交通,就二面面试官稍微讨论了一下,总监大佬让逐一介绍创新点,每一个点讲到逻辑清楚为止

3、介绍比赛,问题都是从比赛,项目展开

4、详细分析xgb原理,怎么选分裂点,为什么用二阶泰勒展开,xgb里面正则项怎么表示。L1,L2正则区别(我用概率跟最优化理论分析完,总监大佬又让我从梯度下降解释为什么L1稀疏),

L1正则如何求梯度。xgb,gbdt区别,gbdt为什么用梯度,用梯度什么好处。最后问了问团队怎么分工。

5、算法题 数组中和最大子序列

问了好多细节,大概就记得这些。

希望大家都能找到心仪的工作~~

-----------------------------------------------------------------------------------------
作者:张小方
链接:https://www.zhihu.com/question/264198516/answer/341999235
来源:知乎
著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。

说下我的面试经验吧,都是亲身经历,不喜勿喷:

我去年12月份从上一家公司离职,一直到今年3月份,基本上都在面试中度过来的。

先交代下背景:坐标上海,做技术开发,我本人求职的职位是linux服务器开发,最倾向的职位是服务器开发主程或技术经理。我本人也是上几家公司的面试官,因为接下来几年面临着成家养小孩,技术上也到了瓶颈期,虽然拿了不少offer,但是想综合比对一下再做决定。于是投递了很多家公司。我先后去了如下一些公司:腾讯、百度、饿了么、爱奇艺、360、携程网、京东、华为、bilibili、上海黄金交易所、东方财富网、zilliz、掌门集团(做无线万能钥匙的那一家)、喜马拉雅听书、UCLOUD、峰果网络、华尔街见闻、万得财经、汇正财经、逗屋网络、朝阳永续,还有数家小规模的公司或创业公司吧。

为了避免引起不必要的纠纷,下面我就不说具体的公司名称了。技术面试的细节我尽量写的详细一点,希望对大家有参考价值,技术面试大致有三种情形:

一、以百度、爱奇艺等为代表的,以数据结构和算法为主,首先是简单地了解下你之前的工作经历和项目经验,然后就是算法和数据结构题目,具体涉及到以下内容:

1. 快速排序(包括算法步骤、平均算法复杂度、最好和最坏的情形),有人说校招要把算法写出来,我是社招,所以描述一下算法过程即可。

2. 写二分查找算法,这个尽管是社招,但是一般也不难,所以要求面试者写出来。但是很多公司,比如不会直接让你写算法,而是结合一个具体场景来提问,然后让你自己联想到二分查找,比如求一个数的平方根。

3. 链表,常见的面试题有写一个链表中删除一个节点的算法、单链表倒转、两个链表找相交的部分,这个一般必须得完全无误的情况下写出来;

4. 自己实现一些基础的函数,例如strcpy / memcpy / memmov / atoi,同样的道理,这些必须完全无误且高效地写出来,比如你的实现中有动态分配堆内存,那么这道题目就算答错。

第3点和第4点的关键点一般在于考察你的代码风格、对边界条件的处理

 
,比如判断指针是否为空,千万不要故意不考虑这种情形,即使你知道也不行,只要你不写,一般面试官就认为你的思路不周详,容错率低;再比如,单链表的倒转,最后的返回值肯定是倒转后的链表头结点,这样才能引用一个链表,这些都是面试官想考虑的重点。

 

5. 哈希表,对哈希表的细节要求很高,比如哈希表的冲突检测、哈希函数常用实现、算法复杂度;比如百度二面就让我写一个哈希表插入元素算法,元素类型是任意类型。

6. AVL树和B树的概念、细节,比如会问mysql数据库的索引的实现原理,基本上就等于问你B树了。

7. 红黑树,这个基本上必问的一个数据结构,包括红黑树的概念、平均算法复杂度、最好最坏情况下的算法复杂度、、左右旋转、颜色变换。面试官常见的算法套路有:你熟悉C++的stl吗?你说熟悉,ok,stl的map用过吧?用过,ok,那map是如何实现的?红黑树,ok,那什么是红黑树?这样提问,红黑树就开始了。Java的也类似。

 

二、以饿了么、bilibli、喜马拉雅、360、携程等为代表的,兼顾算法数据结构和其他开发技术,算法和数据结构部分上文提过了,下面提一下其他技术,大致包括以下东西:

1. 以C++语言为例(不是C++开发的朋友可以跳过这一点),第一类是基础的C++问题,常见的有C++的继承体系中virtual关键字的作用(如继承关系中析构函数为什么要申明成virtual函数,如果不申明为virtual会有什么影响)、

在涉及到父子类时构造与析构函数的执行顺序、多重继承时类的成员列表在地址空间的排列;static关键字的作用,static_cast / reinterpret_cast / dynamic_cast等几个转换符的使用场景;问的最多的就是虚表的布局,尤其是菱形继承(B和C继承A,D继承B和C)时每个对象的空间结构分布,比如问D有几份虚表,D中B和C的成员空间排布。

另外,如果你应聘的职位使用C++开发,很多公司会问你一些C++11的东西(或者问boost库,基本上都一样),这个你用过就用过,没有用过就说没用过不要装X,常见的C++11需要掌握的一些技术库我也列举一下吧(JAVA及其他语言的读者可以忽略):

auto关键字、for-each循环、右值及移动构造函数 + std::forward + std::move + stl容器新增的emplace_back()方法、std::thread库、std::chrono库、智能指针系列(std::shared_ptr/std::unique_ptr/std::weak_ptr)(智能

指针的实现原理一定要知道,最好是自己实现过)、线程库std::thread+线程同步技术库std::mutex/std::condition_variable/std::lock_guard等、lamda表达式(JAVA中现在也常常考察lamda表达式的作用)、std::bind/std::function库、

其他的就是一些关键字的用法(override、final、delete),还有就是一些细节如可以像JAVA一样在类成员变量定义处给出初始化值。

 

2. 网络通信问题,比如协议栈的层级关系,三次握手和四次挥手的【细节】,注意我说的是细节,比如CLOSE_WAIT和TIME_WAIT状态(bilibili问了这样一个问题,你可以感受一下:A与B建立了正常连接后,从未相互发过数据,这个时候B突然机器重启,问A此时的tcp状态处于什么状态?如何消除服务器程序中的这个状态?

万得问过流量拥塞和控制机制、腾讯问过tcp和ip包头常见有哪些字段),阻塞和非阻塞socket在send、recv函数上的行为表现,异步connect函数的写法,select函数的用法,epoll与select的区别,

基本上只要问到epoll,必问epoll的水平模式和边缘模式的区别;一些socket选项的用法,nagle / keepalive / linger等选项的区别;tcp / udp的区别和适用场景;

通信协议如何设计避免粘包;http协议的get和post方法的区别(问的比较深的会让你画出http协议的格式,参照这篇文章中关于http协议格式的讲解:);

windows用户可能会问到完成端口模型(IOCP),网络通信方面的问题,我专门开了一个知乎live系统地总结

了一下,有兴趣的朋友可以看这里: 和 这里:

总之,网络通信问题能搞的多清楚就可以搞的多清楚,最起码把tcp应用层的各种socket API的用法细节搞清楚。

 

3. 操作系统原理性的东西

比如linux下elf文件的节结构,映射到进程地址空间后,分别对应哪些段,相关的问题还有,全局变量、静态存储在进程地址空间的哪里;堆和栈的区别,栈的结构,栈的细节一点要搞的特别清楚,因为一些对技术要求比较高的公司会

问的比较深入,例如京东的一面是让我先写一个从1加到100的求和函数,然后让我写出这个函数的汇编代码(JAVA开发的同学可能会让你试着去写一点JVM的指令),如果你对栈的结构(如函数参数入栈顺序、函数局部变量在栈中的布局、栈帧指针和栈顶指针位置)不熟悉的话,这题目就无法答对了;栈的问题,可能会以

常见的函数调用方式来提问,常见的函数调用有如下__cdecl/__stdcall/__thiscall/__fastcall的区别,比如像printf这样具有不定参数的函数为什么不能使用__stdcall;

还有就是进程和线程的联系与区别,问的最多的就是线程之间的一些同步技术,如互斥体、信号量、条件变量等(Windows上还有事件、临界区等),这些东西你必须熟悉到具体的API函数使用的层面上来,从另外一个角度来说,这是咱们实际工作中编码最常用的东西,如果你连这个都不能熟练使用,那么你肯定不是一个合格的开发者;这类问题还可以引申为什么是死锁、如何避免死锁;进程之间通信的常用技术也需要掌握,常用的通信方式(linux下)有共享内存、匿名和具名管道、socket、消息队列等等,管道和socket是两个必须深入掌握的考察点(与上面网络通信有点重复);

linux系统下可能还会问什么是daemon进程,如何产生daemo进程,什么是僵尸进程,僵尸进程如何产生和消除(bilibili问过)。

CAS机制(饿了么二面问过)。

 

4. 第四类就是一个使用过的开源技术,比如代表nosql技术的的redis;网络库libevent等等;数据库如mysql的一些东西。这个一般不做硬性要求,但是这里必须强调的就是redis,熟练使用redis甚至研究过redis源码,现在一般是对做后台开发的技术硬性要求或者说不可缺少的部分,

基于redis的面试题既可以聊算法与数据结构,也可以聊网络框架等等一类东西。我面试的公司中基本上百分之九十以上都问到了redis,只是深浅不一而已,比如喜马拉雅问了redis的数据存储结构、rehash;bilibili问了redis的事务与集群。

 

三、只问一些做过的业务或者项目经验,这类公司他们招人其实对技术要求不高(资深及主管级开发除外),只要你过往的项目与当前应聘职位匹配,可以过来直接上手干活就可以了,

当然薪资也就不会给很多。比如游戏公司会关心你是否有某某类型的游戏开发经验、股票类公司会关心你是否有过证券或者交易系统的开发经验等。我的经验就是这类公司,能去的话可以去,不能去的话就当积累面试经验。

业务开发哪里都能找到,真正的重视技术的公司,应该是广大做技术尤其是初中级开发的朋友应该值得关心的事情。

 

四、不靠谱型公司

我遇到的大致有四类:

第一类:装X忽悠型,面试过程冗长繁琐,比如号称每一百份简历中才发一个面试邀请,号称每一个面试者发一个offer,号称硅谷风格,我面试的有一家公司就是这个样子,先是一轮长长的电话面试,然后是五轮技术面试,前三轮是刷leetcode上原题,然后后几轮面试,面试官从基本的操作系统的

中断、GDT、LDT、分表分页机制问到上层高并发海量数据的架构,说的不好听,真是从外太空聊到内子宫,最后问具体职位做什么时,要么遮遮掩掩要么原型毕露;或者讨论薪资时,要么面露难色要么各种画饼,但是实际就给不了多少薪水的。

第二类:佛性公司

面试下来,全程面试官面带微笑,问你的问题你回答的面试官也很赞同,但最后你就没通过,我猜测要么公司不是很缺人,想观望一下是否有合适的人才;要么招聘信息上开的薪资给不到。

第三类:老奶奶裹脚布型公司

其特点是面试周期长,往往第一轮面试通知你过了,让你回去等上十天半个月后,给你打电话通知你来第二轮面试,面试要求穿正装,带好各种证件,面试前必须先查验你的身份证、学历证学位证,甚至是四六级考试证等等,麻烦至极,即使你一路过关斩将过了终面,薪资也给不了多少。

大家都是要养家糊口的,都是忙着找工作,谁有时间和你耗上十天半个月呢?

第四类:不尊重人类型公司

我这里说的不尊重人,不是指的是面试过程中对你人身攻击,而是不根据你的工作年限和经验随意安排面试官,举个例子,比如你工作十年,你去面试一个技术总监的职位,对方公司安排一个工作不满两年的部门职员作为面试官,这个面试官如果是走过场可以理解,但是非要和你纠结一个如二进制位移、现代编译器要不要在子类析构函数前加virtual关键字这些技术细节就没必要了。还有一类就是故意问一些***钻的问题,或者全场都心不在焉、玩手机、漫不经心的面试官,比如问你tcp协议头有多少个字段,每个字段是干啥的。遇到这一类面试官我的经验就是要么婉拒,要么直接怼回去。

 

下面再说下面试中需要注意的一些细节:

第一,如果你的工作年限不长,尤其是渴望在技术方面有一定的造诣,那么你首先考虑的应该是新的单位是否能有利于你技术上的成长,而不是两份同样的工作,薪资上的上下相差的三五千、五六千。如果

想转行的同学(比如从客户端转服务器,从C++转JAVA),不要因为薪资突然变低而拒绝这种阵痛,要把目光放长远一点。

第二,一些公司虽然招聘信息上写了最多能给到多少多少,但实际即使你全程面试下来都很完美,可能最终你也会因为薪资要求达不到不被录取。

第三,一些根本不想去的公司,如果你有时间的话,去面试积累下经验也不是什么坏事。

第四,面试的时候,同时也是你在考察面试官,一般面试官问你的问题,你能回答出来的在百分之八十左右,这样的公司可以考虑去入职,你进去的话可能才会在技术上有一些提升。如果你全场秒杀面试官的题目,

你的技术天花板可能也在那里。

第五,面试的时候聊清楚你将来的职位内容,避免进去客串一些不想做的工作。

第六,遇到不会的面试题,不要直接就否定自己,可以尝试着去和面试官沟通一下,或者要求给点提示或者思路。

第七,不要轻视笔试中的一些数学智力题目,认真作答,试问算法不也是数学智力题吗?

第八,自信一点,每个人的经历和经验都是独一无二的,面试的时候,一些特定领域的问题,回答不出来也不要太在意。

 

希望对阅读的朋友有所帮助。因为个人经验能力有限,所说的也可能只是一家之言,说的不妥当的地方还请温和地提出建议。

 

因时间有限,很多地方不便详细展开,如果您对于面试有什么细节的地方想和我交流,欢迎关注我的微信公众号『easyserverdev』,进行私人一对一交流。

-----------------------------------------------------------------------------------------
-----------------------------------------------------------------------------------------
-----------------------------------------------------------------------------------------

 

posted @ 2018-06-04 15:15  BigJelly  阅读(619)  评论(0编辑  收藏  举报