春招上岸漂流记

楼主CV方向底层玩家,三月初开始正式准备春招,陆续投了阿里,腾讯等主流互联网公司,在牛客上深受各位前辈的帮助,特来还愿。因为太菜所以本人采取的是算法+开发混投的策略,漂了一个多月后终于成功上岸,下面直接上干货。


阿里云块存储提前批-开发(一面挂)

说起本次面试真是大写的尴尬,由于当时完全不会开发,面试前一天去捡起了当年的计网,操作系统等,结果上来前两个问题都不会。

1.c++用头文件和直接写在本文件有什么区别(当时没听懂是个啥意思)

2.结构体大小计算

3.线程和进程,协程呢?

4.进程间通信方式,TCP用的是哪种?

5.野指针是什么,如何避免?

6.socket套接字

7.集群和分布式有什么区别

8.万年不变三次握手四次挥手,time_waitclose_wait有什么作用?

9.尽最大的可能描述vtblvptr

10.线程池有什么用,手写线程池

11.c++内存分配

12.structclass有什么区别

13.智能指针

14.什么是死锁,说一个会出现死锁的场景


面完基础面试官大哥表示非常惊讶:你不是“计算机科学与技术”科班出身的么?接下来手撕了两道算法题:

1.leetcode子数组最大和(easy)

2.leetcode反转链表(medium)


总结:本轮是春招处女面,面试官大哥人挺不错的,很耐心地听我在那强行自圆其说,无奈自己实在是没做过开发相关,最后还帮我把简历转给算法组的了,感谢。吃一堑长一智,于是我立马开始女娲补天般地复习起了计算机基础。



阿里云块存储提前批-应用算法(三面挂)

一面:

1.上来没有自我介绍,说挑一个项目讲一讲

2.项目中遇到了什么困难,怎么解决的

3.如果再做一次,会怎么改进

4.手撕两道算法题

1)最长公共子序列,写完之后出了一道变型题:最长连续公共子序列

2leetcode 37 Sudoku Solver(hard)


二面:

二面是一个比较玄学的女leader,全程没有问基础和算法

1.讲项目

2.给了一个场景设计题:如果给你淘宝过去一些时间段某些商品的销量,怎么预测另一时间段的销量,需要从样本不均衡等方面综合考虑


三面:

三面P9大佬先简单介绍了一下,说他这边是做应用算法的,然后开始问问题

1.首先问我会不会图的算法,P9大佬果然名不虚传,问算法的level都不一样了

2.图的两种表示方式

3.prim算法

4.树的递归和非递归遍历,非递归用什么数据结构

5.树的bfs用什么数据结构

6.海量数据排序该怎么做

7.python有哪些基本容器

8.tuplelist有什么区别

9.python list的底层实现,自己设计list的查找插入和删除

10.智力题:有64个苹果,一个有八个托盘的称,问最少多少次可以找出最重的八个


面完之后P9大佬说,感觉你是做research算法的,一般做应用工程算法的同学在我这会比较有优势,果不其然面完之后找内推人查了下状态,凉凉。


总结:不得不说阿里在想要你的时候约面试的速度是真的快,基本面完一次马上约下一面,然而面的快凉的也快,不过这也是提前批的好处,正式批流程太漫长了,走完全部流程一般一个月。



阿里淘系技术部提前批-机器学习算法

一面面试官是一个十分温柔的小哥哥,问的问题也比较专业

1.python经常用哪些容器

2.python with openopen有什么区别

3.为什么list不能作为dictkey

4.快速排序时间复杂度,为什么?

5.有没有时间复杂度为O(n)的排序算法

6.既然计数排序时间复杂度低,为什么它并不常用

7.快速选择算法,时间复杂度,为什么?

8.tuplelist区别,哪些情况需要tuple

9.介绍深度学习常用模型

10.深度学习训练有哪些trick

11.1*1的卷积核有什么作用



总结:面了这么多轮感觉淘系的小哥哥思维是最敏捷的,提问题比较深入,面试体验也很棒,基本全程是互动交流中进行的,可惜这边主要是做推荐的,方向不太对口,因此也选择放弃后续面试流程了。

阿里蚂蚁金服人工智能部正式批-机器学习算法(offer

一面

1.简单介绍机器学习各种算法

2.线性回归的优化过程,有没有解析解?

3.逻辑回归

4.支持向量回归SVR

5.xgboostgbdt

6.深度学习优化算法

7.随机梯度下降和批梯度下降有什么区别

8.SGD为什么能避免local minima

9.batch sizelearning rate的关系

10.1*1的卷积核有什么作用

11.聊了聊在投的论文

12.问我是希望做research还是应用


二面

1.聊在投论文

2.由于本人是做domain adaptation的,因此简单介绍了深度迁移学习方面的研究

3.GAN相关

4.baggingboosting的区别

5.智力题:有100个苹果,两个人,每个人最少拿1个最多拿6个,最后拿完的取胜,问先手胜还是后手胜

6.海量数据找中位数

7.手写代码:快速选择算法


三面

晚上九点多手机响了,一看是0571,就知道是突击面了

1.聊在投论文

2.问项目

3.模型压缩有哪些方法

4.怎么看待模型压缩在业界的使用情况

5.时序模型在金融数据上的应用

6.迁移学习相关,数据来自multiple source domain怎么做

7.pytorchtf的区别以及优缺点,适用什么场景

8.pytorch模型参数量化

9.知识蒸馏

感觉三面的P9大佬问问题会比较宏观,会考察你对问题的整体把握。


四面交叉面

面完三面松了一口气,都准备去洗澡了,结果0571它又来了,实在顶不住

1.介绍项目

2.项目有什么应用价值

3.介绍一下各种分类算法的优缺点

4.如何处理来自于不同domain的数据(也就是相当于domain-to-domain translation的方法)

5.影响模型在不同domain上性能表现的因素有哪些

6.为什么想来阿里


五面HR

过了差不多一周HR小姐姐打电话来了

1.没有自我介绍,先是确认个人信息以及毕业时间

2.个人职业规划

3.有什么优缺点,用三个词来形容自己

4.团队合作沟通中遇到过什么问题

5.项目中是如何分工的,为什么这么分

6.项目中遇到了哪些困难

7.还投了哪些公司的哪些岗位(这里建议不要说不同的岗位,差点踩雷)

8.家在哪里

9.什么时候能过来

10.绩点(难道是要用绩点综合排序???)


三天后主管打电话来沟通了入职时间,给了口头offer,一周后顺利收到意向书


总结:个人感觉面AI算法岗除了扎实的代码能力和基础知识,最重要的还是研究方向要对口,也之所以是因为自己的研究方向和部门的比较match所以全程也聊的比较愉悦。



腾讯提前批-开发(offer

面试前就跟面试官说过自己没有任何开发经验,所以面试官也没有为难我,全程基本是在问算法相关。

一面:

1.const关键字

2.vector底层原理,resizereserve方法原理

3.内存区域中堆和栈的区别

4.红黑树有什么优点,查找时间复杂度

5.hash冲突有哪些解决办法

6.hash表的优化算法有哪些

7.快速排序时间复杂度,最坏情况下时间复杂度

8.内存受限情况下海量数据找topk

9.找中位数

10.kmp算法以及复杂度

11.两个链表求第一个公共节点

12.浮点数相乘如何不丢失精度


二面:

由于本人之前和面试官沟通过不会开发,因此全程只有两道手撕代码

1.字符串统计各个字符的出现次数

2.给定一个数组以及一个值k,把所有小于k的放到左边,大于k的放到右边,并且k值要保持在中间


hr面:

1.自我介绍

2.入职时间

3.团队合作遇到过什么问题

4.希望能够在腾讯学到什么东西

5.投了哪些公司,分别是什么状态

6.最后会在哪些公司进行选择


总结:面开发经验还是最重要的,如果有项目支持的话会大大加分,面试也有东西可聊,如果实在没有把算法基础打牢,做到问的算法题都能短时间内bug free,这样也能极大地增加面试官对你的好感。



最后,祝愿大家早日上岸,收获自己心仪的offer

#面经##腾讯##校招##C++工程师##阿里巴巴##算法工程师#
全部评论
赞~阿里能面这么多面真是不简单了😂
点赞 回复
分享
发布于 2020-05-04 18:12
很强,大佬底子厚,准备的也足
点赞 回复
分享
发布于 2020-05-05 17:30
博乐游戏
校招火热招聘中
官网直投
楼主,"不要说不同的岗位"是说不要讲自己开发和算法都投了吗?那投了哪些公司要如实交代吗?
点赞 回复
分享
发布于 2020-05-10 19:39
楼主硕士么
点赞 回复
分享
发布于 2020-06-10 19:45
楼主太强了,开发和算法同时面,实力强大,佩服佩服
点赞 回复
分享
发布于 2020-07-20 09:49

相关推荐

错误1 不准备经历方面的问题一定要多花时间回忆你过去的相关经历,包括你参与的项目,你遇到的各种困难,以及如何解决的这些难题。你的回答会影响面试官对你技术能力的印象,所以一定要回顾和整理一下你过去的项目经历。错误2 依赖于事先背诵的答案试图通过事先背诵一些答案,然后在面试派上用场是一个非常不好的方法。首先,恰好能用上你背的答案的概率微乎其微,其次,这样的准备会花费你大量的时间和精力,而没有真正能力上的提高。记住,你在现场发挥的越好、越真实,你身上的价值就越高。错误3 缺乏对面试的模拟这是很显然的,做很多事情前你都要准备和模拟一下,防止意外的情况发生。程序员面试也是一样的,如果你正在准备一个程序员面试,你应该找一些可以和你一起准备的程序员,你们一起模拟面试的场景,互相提问。错误4 没有展现思考的过程如果你在回答问题时很长时间不说话,就会让人理解为你无法解答这个问题。你不提供一个思考的过程,面试官就无法了解你的想法,不知道你是在思考还是被难住了。如果你和面试官一直交谈,他就会了解你的想法,看到你的思维过程,这是很重要的。而且当你的思路有偏差时,面试官还可以引导你回到正确的解决方案中来。错误5 写代码离不开编辑器如果你要参加一个技术型的面试,面试官通常会要求你在白板/白纸上写代码,而不是在电脑上。所以,你不能过度依赖于代码编辑器,因为在那里它会帮你补充代码、显示出你的语法错误等。赶快拿出笔和纸,写下你的代码,当你满意自己在纸上写的程序的时候,再把它输入到电脑,让编译器验证它正确与否。错误6 没有养成良好的编程习惯不要因为你仅仅写了一个可以执行的程序,就以为自己已经做得很好了。你还要注意在程序中有没有重复的代码、混乱的数据结构、过度的空格等等。要像在实际的开发中一样,设计更有逻辑性的数据结构、有更好的框架、代码更整洁和易读。错误7 不进行测试当你的程序写完后,花点时间检查一下你的代码,以确保其中没有bug。如果是在用笔和纸来练习,就要把程序再写到编辑器中,让编译器帮助你检查。错误8 总是着急忙慌在解决问题时不要着急,否则只会导致更多的错误,显得你很粗心。要有条理和准确的的做事,经常回头看看你的代码,如果有错误就改正它们。这样做,其实完成项目的时间会更短,而且错误会更少。  c++/嵌入式面经专栏-牛客网 https://www.nowcoder.com/creation/manager/columnDetail/MJNwoM
点赞 评论 收藏
转发
14 55 评论
分享
牛客网
牛客企业服务