阿里云容器一二面凉经,第一次发面筋

第一次在牛客发面筋,之前其实也面过几个大厂,想发这个帖子主要是……感觉阿里云这个二面有点奇葩,问的有点广,而且没写题,各位有经验的佬觉得这正常吗?
简要背景:双 985 水硕研二,本科 ee 硕士 cs。人不狠,活很菜。擅长数学和数据结构(就是没啥用的小镇做题家)。大三开始看花书跟风深度学习,大四梦想着发个 ccf-a 以后出国读博,搞了一年科研感觉自己不是科研料子。研一跑路,后面都在学开发,闲暇应付导师打杂。

我简历写了 raft 6824, 菜鸟入门级 java crud, cpu 并行 smid 大作业 , 导师让搬砖的 cv 四个项目。
一面问的东西不多,写了两道题,问了几嘴项目,半小时。

讲一下 raft 机制,做了什么
为什么选举时间必须是随机的,如果不随机行吗
你 raft 的 snapshot 做了什么
单点登陆你是怎么做的
JWT 由哪些部分组成
JWT 怎么保证安全性,怎么保证不会被中间人截获篡改
登陆过期时间你怎么设置
K8S 了解哪些东西
旋转链表,将链表每个节点向右移动 k 个位置
LRU 实现,口述一下。(其实要写也是没问题的)

二面就有点奇葩了

以前面别的公司基本只问 java,问两嘴 raft,从来没试过有人问 cv。导致我都默认自己的 cv 项目是凑数的了。

结果这次面试官先从 cv 项目问起……一题没做,这正常吗?我投的是开发,也不是啥算法岗。

由于我本科电信硕士软件,面试官问了下本科学过哪些计算机课程

“数据结构,网络,软件工程,还有个跟计组类似但偏底层的。” “系统学过吗,有没选修。” “没有,只选过一个 linux,但讲的很粗略”

你做的项目方向差异挺大的,对未来有什么打算吗,更想做哪方面

后端业务,基础构件,AI 类岗我都会试一下。最后做什么可能要根据拿了什么 offer 综合判断

对未来有什么规划

还是取决于拿的 offer,每个方向的规划不同。(此处省略规划……)

先问一下你的深度学习数字识别项目,你这项目怎么选方案的

主要考虑 detection 和 segmentation 两种办法。detection 就是直接框出数字了,segmentation 就是给 0- 9 这些数字做分割,然后背景单独一类。最后再做聚类,因为同一个数字可能会分割出 >1 种类别,最后要聚类成一种。

正确率怎样,有没有对比过现在业界先进的方案,怎么改进?

正确率 90 多吧,改进应该可以用传统图像处理给图片预处理提升准确率。

从机器学习的角度提升怎么做?

可以多收集一点数据,但是我不清楚公司用的水表种类是否多。如果只用一种水表,那么图片是没有结构性差异的,多收数据用处不大。而如果水表种类很多,图片结构化差异就大了,就要多收集不同种类水表的数据。

会过拟合吗,怎么解决过拟合

(这里没太懂他想问什么,调好参数不就不会了吗。)我答了,如果单一水表图片结构,在这个场景过拟合也是无所谓的,因为实际落地和科研不同,不需要拟合那么多的场景,通常场景都是很单一的。

讲一下你的 K-Means 聚类是怎么做的
用过别的聚类算法吗

(没有,压根没准备)

然后问一下你 java 后台的项目,这是跟着网上课程做的吧
有自己写前端吗,还是直接用线程的

学了前端语法,但没写,对前端不太感兴趣

有做服务降级,限流这些吗

服务降级有用过,限流没有

如果现在访问的线程非常多,你怎么减轻服务器压力

(我前面就答了不会啊,无语,猜了一发。正解应该是 sentinel? 我没用过)

redis 是怎么用的

(blablabla……)

如果有多个服务器实例,redis 出现脑裂问题,怎么解决

(猜了一发)如果对实时性要求不高,脑裂是无所谓的。如果要求很高,应该只能强行查数据库了。

(后来百度发现答错了。 可以像 raft 一样解决,设置两个参数:需要同步 slave 的数量,以及最大超时时间。如果违反了,那么这个 master 不接收客户端的任何参数,以此解决脑裂问题)

Java 读取文件时,jvm,系统 kernel 都做了什么

(好难啊,瞎答了,不会)

在计算机的基础课中,你对哪个最擅长,最感兴趣

算法吧

挑一些你印象深刻的算法来讲讲

(怎么总喜欢问这个问题?腾讯也问过,我两次回答一致)没哪个印象特别深刻的,给人的感觉都差不多深刻……树啊, 图啊之类的……

那你平常在什么地方用到了这些算法?DP,背包之类的

好像很少能用上,我纯粹是自己喜欢,所以花的学习时间比较多。最近有用过 LRU,用在 mit 的 java 数据库 lab 上,用 LRU 实现 buffer pool 的页淘汰。

LRU 还在别的地方用到吗

主要都是用作淘汰吧,redis 的淘汰,os 内存淘汰等

讲一下你了解的操作系统内存机制

(分段,分页,虚拟内存,TLB blablabla……)

B 树和 B+ 树区别
Mysql 查询太慢你怎么解决
再问一下 raft 项目,讲一下 raft 是怎么选主的

(blablabla……)

etcd 和 mysql, redis 的区别是什么,为什么传统数据库不用 raft 来实现一致性

我猜一个原因是 raft 论文发表较晚,它发于 2014 年,很多数据库已经比较稳定了,没有什么更改的需求。

第二个是,像 etcd 这样用 raft 的都比较轻量,通常存一些配置文件之类的,不像 mysql 那种用来存储海量数据。(后来百度得知,准确来说 etcd 存储 ”配置数据“ , mysql 这类存储 ”应用数据“。对配置数据做分布式一致性是非常有必要的。)

你 raft 的 snapshot 实现了什么,为什么要做这个东西

(好几个面试官问过这个问题了,可能他们觉得这无关紧要? ) 主要是 leader 在每次 get, put 的时候都会生成新的 log ,久而久之,老的 log 其实再也用不上了,可以直接裁掉。另外就是,如果一个 server 落后太久了,那么它实际上不需要逐个 log apply 数据,就像 redis aof 一样,如果差了太多,就不用逐句运行了,而是打包成一个整体,整个更新。

我问的差不多了,你有什么问题吗。

没……


感觉自己好菜,啥都会一点啥也不精通的万金油。也不知道什么公司会要我。

以前大家都说算法卷,没 paper 或比赛 top 就找不到二线以上大厂了。但近年发现其实也还好,我这种中下 985 的师兄师姐也有没 paper 或比赛进京东腾讯的。

现在转了开发,业务也没啥意思,基架要求的计算机基础非常深我又够不上。实在是很难受了。

牛客大佬们支支招,我后续应该怎么提升自己?

#面经##校招##阿里云##Java工程师#
全部评论
阿里巴巴企业智能-阿里大脑招数据啦!面向22届毕业的学生,欢迎发简历到python.gxy@alibaba-inc.com,我跟你一起聊聊企业数字化,一同探索未来企业数字化的新形态!
点赞 回复
分享
发布于 2021-02-26 15:38

相关推荐

7 42 评论
分享
牛客网
牛客企业服务