前言
人人都有大厂梦,对于程序员来说,BAT 为首的一线互联网公司肯定是自己的心仪对象,毕竟能到这些大厂工作,不仅薪资高待遇好,而且能力技术都能够得到提升,最关键的是还能够给自己镀上一层金,让人瞻仰。
同样的,小编的好朋友的个人目标也是阿里,但之前一直在一家小公司,一呆就是好几年,现在通过不断学习和实践,提升了自己很多,也有了信心来阿里挑战。下面,就是朋友分享的这次面试字节的一些经历和心得。
字节架构岗面试经历
这次面试经历朋友说实在是在太紧张+刺激+尴尬了,面试前还自信满满,面试后被吊打得怀疑人生。整个流程是四面,前两面还顺风顺水,比较嚣张,最后一轮技术面和 HR 面才让我领略到,什么是字节?
不过好在面试最终还是顺利的,目前 offer 已经到手,给的薪资也比较满意,比上一份工作好多了,至于个人的具体背景,我就不一一交代了。
一面:
-
自我介绍、说一下最近在做什么事?
-
可以跟我介绍下卷积神经网络吗?(简历里有写到一个项目用到了 CNN)
-
可以说一下逻辑回归是什么吗?
-
你觉得反向传播和动态规划之间有什么样的联系吗?
-
那你能说一下为什么计算机会使用二进制,而我们人类会使用 10 进制呢?
-
计算机是怎么做加法的?那如何用加法代替减法?
-
使用过 Linux 吗?可以说下常用的 Linux 命令吗?
-
用什么命令可以查询文本中的文字?用什么命令可以查询磁盘存储的容量?
-
Vim 使用过吗?可以说下有哪些快捷键吗?
-
我看你的博客里有一篇写到了区块链,你可以说下去中心化对我们的生活有什么影响吗?你觉得区块链有价值吗?
-
在区块链的世界中,那些数据怎么样会变得有效?(广播机制、共识机制)
-
类比打电话,两个系统的通信我们可以采用哪些方式?(我说了 http)
-
说一下 HTTP 和 HTTPS 的区别
-
HTTPS 中用了什么加密方式,在什么阶段体现的?
-
分布式的 CAP 理论了解过吗?
-
你了解的一些集群有哪些选举方式?
-
公众号里写了很多和 python 有关的文章,那你觉得这两个语言使用起来有什么差异?
-
最近有看什么书吗?
-
HashMap 为什么线程不安全?是否模拟过不安全的场景?
-
说一下 Java 的值传递和引用传递
-
SpringBoot 和 SpringMVC 的区别
-
说一下 Spring 中 bean 的加载过程
-
JVM 的垃圾回收器了解吗?垃圾回收算法有哪些?JDK8 默认的垃圾回收器是什么?
-
有什么想跟我沟通的吗?
二面:
-
自我介绍
-
自己做的 app 上线了吗?是自己做的吗?简单说一下
-
学校的课程中你觉得哪一门学的最好?(都差不多)
-
你学习了挺久的 Java,对于这门语言有什么认识?或者和其他编程语言比起来有什么不一样的地方?
-
那你在学习的过程中有什么事情会让你坚持做下去?
-
开发这个 app 的动力是什么?
-
有参加过什么学科竞赛吗?
-
数据结构你觉得你学的怎么样?做一道编程题(用数组模拟一个栈)
-
智力题:你雇佣一个工人,他每天工作应该获得一份金条,你有一根金条可以分成 7 份,但你只能对你的金条切 2 刀,请问怎么保证你的工人每天都得到一份金条?
-
你有什么想问我的?
三面:
这一轮的面试官是个架构师,目测应该是 P8,整个过程瑟瑟发抖
-
你在项目中遇到哪些有挑战性的点?
-
流量在某一时刻暴涨,然后又猛跌如何应对?
-
redis 消息队列如何对过期信息/无效信息进行删除?
-
讲一讲 redis 的持久化机制?
-
为什么 JAVA 类加载要用双亲委派?
-
怎么实现同步?
-
JAVA 锁有哪几种?
-
两种锁的区别?
-
了解过 AQS 吗?
-
场景题:给一个方法加上超时异常
-
生产者消费者模型的作用是什么?
-
short s1=1;s1=s1+1;有什么错?short s1=1;s1+=1;有什么错?
-
怎么检测一个线程是否持有对象监视器?
-
Java 编程写一个会导致死锁的程序
-
如果你提交任务时,线程池队列已满,这时会发生什么?
-
Hashtable 的 size()方法中明明只有一条语句”return count”,为什么还要做同步?
-
swtich 是否能作用在 byte 上,是否能作用在 long 上,是否能作用在 string 上?
-
高并发、任务执行时间短的业务怎样使用线程池?并发不高、任务执行时间长的业务怎样使用线程池?并发高、业务执行时间长的业务怎样使用线程池?
HR 面:
-
说说看,假如你是部门技术经理,线上商户数据丢失怎么办?
-
怎么将一个产品推荐给其他的团队,怎么界定边界?
-
每天有那么多人使用支付宝,这些数据如果给你存储,你会怎么设计呢?
-
怎么样协调关系?
-
你和同事相处的情况怎么样,说说你帮助同事的一次经历?
-
薪资
超全面试题答案解析版:
由于文章篇幅有限,面试题的答案比较多,尤其是一些比较“刁钻”的问题,都有非常详细的答案解析记录,所以都整理在了文档内,获取标注在方式在文末了
面试心得
关于这次面试,只能说阿里是一个卧虎藏龙的地方,员工素质也非常高,待人也很友好,相信会给自己带了很多收获。
最后,关于面试字节,给出以下几点建议,希望能帮助到大家:
-
提前了解好企业文化。
-
面试周期比较长,调整好心态,做好充分的准备。
-
在岗位上要体现出一定的企图心。
-
除了梳理技术积累和项目经验以外,还有对未来的业务开展有自己的思考和规划。
-
HR 面很专业,要体现自己有能力融入到公司文化体系。
说在最后
现在很多程序员,都会陷入到一个怪圈:看到别人升职加薪,又觉得为啥别人运气总是那么好,我和他差不多时间进公司的啊!然后去跳槽,发现,现在的面试这么难的嘛,动不动就底层原理,动不动就源码分析,Java 不好做了,做 Java 的人太多了,我还是转行吧。
归总到一点,就是没从自己思考,从身上找原因。无论对于程序员来说,还是对于其他岗位,想要涨薪升职,自己的能力肯定要跟得上,而唯一的办法就是通过学习来提升自己。
废话也不多说,我自己分享一下我自己的一套学习资料库,大伙看看有没有需要的:
-
Java 核心知识点:
-
Java最新面试题:
以上这些学习资料都能够分享给小伙伴们,希望能一起努力,共同进步!需要的朋友们扫码即可获取啦