当前位置 博文首页 > 瘦风:16天5面,我终于拿到了鹅厂Offer

    瘦风:16天5面,我终于拿到了鹅厂Offer

    作者:瘦风 时间:2021-02-06 16:23

    我为什么会坚持在年底离职? 鹅厂的面试难不难,会问哪些问题? 这篇文章做个简单的复盘,欢迎大家来留言交流??

    目录
    • 1 - 为什么要在年底离职
      • 1.1 惊觉:没有什么成长
      • 1.2 投简历,敲打自己
      • 1.3 面试它来了
      • 1.4 提前触到目标?
    • 2 - 我的鹅厂面试
      • 2.1 技术一面
        • Java 语言相关
        • 通用学科相关
        • 项目框架相关
        • 问题定位方法
      • 2.2 技术二面
      • 2.3 技术三面
    • 3 - 文末的絮叨
    • 版权声明

    上一篇 我在华为OD的275天 最后说,要讲讲自己为什么会坚持在年底离职,以及离开后去了哪儿。趁周末,鸽王本鸽来交下作业??

    1 - 为什么要在年底离职

    1.1 惊觉:没有什么成长

    20年11月初的一天,在同事们讨论“又有某某某被其他公司高薪挖去了,钱景无限”的消息,我忽然惊觉,自己来到华为半年多,除了熟悉内部的系统和流程,好像没有什么成长和进步?

    只有大佬才会被挖,停止成长、进步缓慢的我,现在这个状态,值几个钱?

    1.2 投简历,敲打自己

    意识到自己应该抓紧时间学习提升,刚好也想起了之前的一个同事,在离职的聚会上分享的经验:

    技术人不能闭门造车,要多交流,多看看外面的动态。

    如果感觉自己太安逸了,那就把简历挂出去,去了解其他公司用的是什么技术,他们更关注哪些痛点?面几次你就有方向了。

    为了鞭策自己(让面试官的狂虐来刺激自己??),更好地制定学习方向,我重新下载了某聘软件,在首页推荐里投了几家公司。

    1.3 面试它来了

    11月10号(星期二)投的简历,当天就有2家预约了11号下午的线上面试。(对,其中就有鹅厂??)

    好巧不巧,10号晚上要双十一保障,一直到第二天凌晨2点半才下班。

    熬夜太伤身,还好能申请调休一天,也省去了找借口请假??


    这段时间总共面了3家:

    一家广州的公司11号当晚就完成了2轮线上面试,开得有点低,而我从深圳返回广州的成本有点高,就婉拒了;

    第二家就是本文的重点——鹅厂;

    第三个是做跨境电商的公司,一面就跪(恭喜它荣升为“我有限的工作经历中,面试体验最差的2家公司之一”??)

    1.4 提前触到目标?

    一直有一个大厂梦,奈何菜鸟一枚,之前试过好几次,都跪在技术面了。

    所以想了个曲线救国的方法:先在其他单位积累着,有机会了再争取大厂的机会??

    很幸运,也很猝不及防,这次竟然通过了鹅厂的所有面试。

    虽然已到年底,但是要是错过这么难得的机会,下次就不知道什么时候才能再通关了。

    所以,年底离职 vs 鹅厂 Offer,我选择了后者??

    2 - 我的鹅厂面试

    如本文标题所说,16天的时间,我经历了五轮面试,在第17天,如愿收到了渴盼已久的 Offer。

    做技术的同学,可能会对鹅厂的面试很好奇,他们都会问哪些问题呢?

    本人主要编程语言是 Java,应聘的是大数据开发岗位,这里对我经历过的通用问题做个梳理,也给想来鹅厂的同学们一个参考??

    几乎所有问题都能在网络上找到很详细的答案,鉴于篇幅有限,这里只列举题目和一些引申的问题。

    2.1 技术一面

    Java 语言相关

    1、对 Java 的类加载器有没有了解?如何自定义类加载器?

    引申:一个类能被加载多次吗?java/javax 包下的类会被加载多次吗?

    2、Java 中要怎么创建一个对象???

    3、对多线程有了解吗?在什么场景下需要使用多线程?

    引申:对 线程安全 的认识;对线程池的了解,以及各个线程池的适用场景。

    4、对垃圾回收的了解?

    5、对 JVM 分代的了解?

    6、NIO 的了解?用过 RandomAccessFile 吗?

    引申:对 同步、异步,阻塞、非阻塞 的理解?

    多路复用 IO 的优势?

    7、ArrayList 和 LinkedList 的区别?各自的适用场景?

    8、实现一个 Hash 集合,需要考虑哪些因素?

    引申:JDK 对 HashMap 的设计关键点,比如初识容量,扩所容,链表转红黑树,以及 JDK 7 和 JDK 8 的区别等等。

    通用学科相关

    1、TCP 的三次握手;

    2、Linux 的常用命令,比如:

    ps aux / ps -ef、top C
    df -h、du -sh *、free -g
    vmstat、mpstat、iostat、netstat
    

    项目框架相关

    1、Kafka 和其他 MQ 的区别?它的吞吐量为什么高?

    消费者主动 pull 数据,目的是:控制消费节奏,还可以重复消费;

    吞吐量高:各 partition 顺序写 IO,批量刷新到磁盘(OS 的 pageCache 负责刷盘,Kafka 不用管),比随机 IO 快;读取数据基于 sendfile 的 Zero Copy;批量数据压缩……

    2、Hive 和 SparkSQL 的区别?

    3、Ranger 的权限模型、权限对象,鉴权过程,策略如何刷新……

    问题定位方法

    1、ssh 连接失败,如何定位?

    是否能 ping 通(DNS是否正确)、对端端口是否开了防火墙、对端服务是否正常……

    2、运行 Java 程序的服务器,CPU 使用率达到 100%,如何定位?

    ps aux | grep xxxjps 命令找到 Java 的进程号 pid

    然后用 top -Hp pid 命令查看其阻塞的线程序号,将其转换为16进制

    再通过 jstack pid 命令跟踪此 Java 进程的堆栈,搜索上述转换来的16进制线程号,即可找到对应的线程名及其堆栈信息……

    3、Java 程序发生了内存溢出,如何定位?

    jmap 工具查看堆栈信息,看 Eden、Old 区的变化……

    2.2 技术二面

    二面主要是过往项目相关的问题,有少量的基础问题和一面有重复,这里略去不表。

    1、Solr 和 Elasticsearch 的区别 / 优劣?

    2、对 Elasticsearch 的优化,它的索引过程,选主过程等问题……

    3、项目中遇到的难题,如何解决的?

    blabla 还有一些大数据相关的内容,记不太清了??

    2.3 技术三面

    这一面是总监面,更多是个人关于职业发展的一些想法,以及在之前公司的成长和收获、对下一份工作的期望等问题。

    但也问了几个技术问题。印象比较深的是这道题:

    1TB 的大文件,每行都只是1个数字,无重复,8GB 内存,要怎么对这个文件进行排序?

    首先想到的是 MapReduce 的思路,拆分小文件,分批排序,最后合并。

    此时连环追问来了:

    Q:如何尽可能多的利用内存呢?

    A:用位图法的思路,对数字按顺序映射。(对映射方法要有基本的了解)

    Q:如果在排好序之后,还需要快速查找呢?

    A:可以做索引,类似 Redis 的跳表,通过多级索引提高查找速度。

    Q:索引查找的还是文件。要如何才能更多地利用内存呢?

    A:那就要添加缓存了,把读取过的数字缓存到内存中。

    Q:缓存应该满足什么特点呢?

    A:应该使用 LRU 型的缓存。

    呼。。总算是追问完了这道题??


    还有 GM 面和 HR 面,问题都和个人经历相关,这里就略去不表。

    3 - 文末的絮叨

    入职鹅厂已经1月有余。不同的岗位,不同的工作内容,也是不同的挑战。

    感受比较深的是,作为程序员,还是要自我驱动,努力提升个人技术能力,横向纵向都要扩充,这样才能走得长远。

    最后再广告下,有想要加入鹅厂、或者有疑问的同学,可以留言,或关注公众号加我好友,我尽力给你解答??

    版权声明

    作者: 瘦风(https://healchow.com)

    出处: 博客园 瘦风的博客(https://www.cnblogs.com/shoufeng)

    感谢阅读, 公众号 「瘦风的南墙」 ,输出更及时、更体系,欢迎扫码关注??

    本文版权归博主所有, 欢迎转载, 但 [必须在页面明显位置标明原文链接], 否则博主保留追究相关人士法律责任的权利.

    bk
    下一篇:没有了