当前位置:首页 > 快手培训 > 正文

程序汪985硕士粉秋招拿下快手44万offer,面试学习经验分享

2020-11-04 16:16:09 暂无评论 快手培训

本文章来自程序汪秋招粉丝的亲身经历,秋招准备及互联网面试找工作经历,又是一个需要程序汪分析offer的粉丝,感谢他的走心分享

老规矩面经和学习经验分享,剩下的就是程序汪微信回复他

17号分享


学习经历

先说自己的经历吧,我是本科某 211 机械跨考计算机的,运气好进了某 985 高校

本科只接触过 C 语言和数据库概论,学习 java 是从去年的 8 月 24 号开始的,在 B 站找了清华大学老师的 java 课程,也算是启蒙课程

后面就按部就班的学,每天除了上课,吃饭,睡觉,就是去图书馆狂补本科落下的知识,好在宿舍有大佬在,不会的晚上回去一起交流

看过的书(完全按照时间顺序排序)

  • java 基础方面(以黑书和核心技术卷一为主,先核心技术再黑书,github 也有大佬参与翻译 java 8 那本书,同样可以去看看)

  • 数据结构(推荐使用红算法那本书,java 语言写的,很适合看)

  • 计算机基础知识(看了一个 CSAPP,其中涉及网络的可以不看)

  • 设计模式(用的 head first,不全但是适合入门)

  • MySQL 方面(InnoDB 存储引擎那本书,比较晦涩,需要多看多翻)

  • jvm(深入理解 jvm 那本书,写的很棒)

  • java 并发(并发编程的艺术那本书,前三章比较晦涩,需要先看 jvm 再看这本书,leetcode 有并发编程题,可以练手)

  • 计算机网络(推荐图解 http 和图解 tcp/ip 这两本,前者完全够用,后者看时间可能需要看黑书补充)

  • Linux(私房菜 + 练习,反正虚拟机搞坏了大不了快照处理)

  • Redis(之所以不和 MySQL 放在一起,在于 MySQL 才是重中之重,先学好 MySQL,再学其他的。看的就是那本 Redis 设计与实现,看的很快,从基本结构出发,能很清楚看到具体的实现细节)

  • java web(笔者是寒假在家学的,由于疫情原因,延长假期,得以将 网络编程 -> java web -> ssm -> spring boot 这个学了一遍,也看了一部分源码)

  • Kafka ZK Dubbo(这三者放在一起,是因为笔者发现面试越来越喜欢问分布式知识了,这种东西你可以直接八股文背诵,但是事后还是需要系统学习,视频(博客) + 官方文档 + 书 + 源码)


快手一面

  • 项目相关

  • kafka 的消息的顺序一致性如何保证,kafka 的消息可靠性如何保证,kafka 的 controller 选举和 leader 选举

  • 让 A 线程等待 B 线程有哪些措施

  • ReetrantLock 和 sychronized 关键字区别

  • 如果我有一个 http 的 api 方法,这个方法突然执行耗时较平时长,可能存在的问题,如何进行排查

  • gc 中新生代有两个 survivor 区,这两个 survivor 起到什么作用,为什么需要两个 survivor 区,如何调整大小

  • CMS 和 G1 之间的区别

  • 输入 www.nowcoder.com 发生了什么,浏览器如何展示 html 页面

  • Bean 的循环依赖如何解决

  • Spring 在哪些地方用了什么设计模式

  • 享元模式、代理模式、模板方法

  • 算法题:设计适用于手机 9 键输入法的数据结构和算法

    具体要求:键入一个 4,应该返回所有以 g/h/i 开头的字符串;键入 43,应该返回以 g/h/i d/e/f 两两组合开头的字符串

快手二面

  • 项目相关

  • 线程的状态以及其对应的调用方法

  • java 中的锁有哪些及其底层实现原理

  • 网卡中的数据如何被加载到内存中

  • BIO / NIO 的区别,如果 NIO 的 channel 一直为空,cpu 是否会飙高

  • redis 作为内存数据库有哪些优点

  • redis 的 cluster 模式如何进行通信,redis 中新增节点时的 slot 重新分配

  • 100G 的数据文件存有字符串,找出出现次数最多的字符串,限制内存使用量为 4G

  • 算法题:设计一个能产生随机数的算法,并且产生的随机数必须是之前并没有出现的



关于面试

从 8 月开始面试一直持续到 10 月,两个月拿的 offer 确实对得起自己去年一整年的努力,但由于时间关系,分布式和具体的项目经验尤为欠缺。面试中同样会问及场景题,这个就需要自己平时多看多想,比如看视频的时候,老师也会提到这种东西有什么好处,可以干啥干啥,这个你同样需要留心,在面试时候说不定也能临时救场。

分布式这种东西,面试基础不会出现太难的问题,大多都是皮毛问题,但是这些问题你不看,你就完全不懂,但是你只要花个几天的时间去看,你就可以速成分布式的面试问题。这个笔者在面试时经常吃亏,后面只好逼着自己学。

项目经验这个确实是跨考生的痛苦,但是面试不在于你的项目多酷炫,在于你对项目的理解程度,这些不仅仅是各知识点的堆积组合,更要说明你为什么要用这个东西。如果实在说不出来,你完全可以说为了用而用,学习练手的项目并不会要求多合理。

面试更多要求专业的基础知识,如果连 java 的 char 能不能存储汉字都不知道,你却搞一些分布式杂七杂八的,面试官只会觉得你过于浮躁。数据结构 + tcp/ip 协议簇 + 操作系统 必须重点掌握,java 基础 + 设计模式 + MySQL + Linux + 并发 + jvm + web 同样也是重点,分布式虽说是加分项,但是计算机专业的学生内卷极其严重,分布式他会你不会,怎么可能要你。

希望用这些最真实案例给想学编程的萌新一些参考,学习的路上不再迷茫。

往期资源  需要请自取

真香警告!Alibaba珍藏版mybatis手写文档,刷起来

计算机专业几本必看的书!

字节跳动总结的设计模式 PDF 火了,完整版开放下载!

别辛苦找学习视频拉,请收下程序汪整理的50个Java项目实战视频

10k+点赞的Spring Boot后台管理系统竟然出了详细教程!

文章转载自微信公众号我是程序汪

博客主人破茧短视频培训
破茧短视频为你分享抖音、快手等短视频平台的视频拍摄、剪辑和运营技巧,另有短视频培训学习教程,海量干货助你玩转短视频运营!。
  • 51952 文章总数
  • 4875925访问次数
  • 2205建站天数