1
0
mirror of https://github.com/Snailclimb/JavaGuide synced 2025-07-15 23:12:26 +08:00
2023-12-30 17:14:13 +08:00

338 lines
16 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

---
title: 华为 OD 275 天后,我进了腾讯!
category: 技术文章精选集
tag:
- 个人经历
---
> **推荐语**:一位朋友的华为 OD 工作经历以及腾讯面试经历分享,内容很不错。
>
> **原文地址**<https://www.cnblogs.com/shoufeng/p/14322931.html>
## 时间线
- 18 年 7 月,毕业于某不知名 985 计科专业;
- 毕业前,在某马的 JavaEE后台开发培训了 6 个月;
- 第一份工作18-07 ~ 19-12接触了大数据感觉大数据更有前景
- 19 年 12 月,入职中国平安产险(去到才发现是做后台开发 😢);
- 20 年 3 月,从平安辞职,跳去华为 OD 做大数据基础平台;
- 2021 年 1 月,入职鹅厂
## 华为 OD 工作经历总结
### 为什么会去华为 OD
在平安产险(正式员工)只待了 3 个月,就跳去华为 OD朋友们都是很不理解的 —— 好好的正编不做,去什么外包啊 😂
但那个时候,我铁了心要去做大数据,不想和没完没了的 CRUD 打交道。刚好面试通过的岗位是华为 Cloud BU 的大数据部门,做的是国内政企中使用率绝对领先的大数据平台……
平台和工作内容都不错,这么好的机会,说啥也要去啊 💪
> 其实有想过在平安内部转岗到大数据的,但是不满足“入职一年以上”这个要求;
> 「等待就是浪费生命」,在转正流程还没批下来的时候,赶紧溜了 😂
### 华为 OD 的工作内容
**带着无限的期待,火急火燎地去华为报到了。**
和招聘的 HR 说的一样,和华为自有员工一起办公,工作内容和他们完全一样:
> 主管根据你的能力水平分配工作,逐渐增加难度,能者多劳;
> 试用期 6 个月,有导师带你,一般都是高你 2 个 Level 的华为自有员工,基本都是部门大牛。
所以,**不存在外包做的都是基础的、流程性的、没有技术含量的工作** —— 顾虑这个的完全不用担心,你只需要打听清楚要去的部门/小组具体做什么,能接受就再考虑其他的。
感触很深的一点是:华为是有着近 20 万员工的巨头,内部有很多流程和制度。好处是:能接触到大公司的产品从开发、测试,到发布、运维等一系列的流程,比如提交代码的时候,会由经验资深、经过内部认证的大牛给你 Review在拉会检视的时候可以学习他们考虑问题的角度还有对整个产品全局的把控。
但同时,个人觉得这也有不好的地方:流程繁琐会导致工作效率变低,比如改动几行代码,就需要跑完整个 CI有些耗时比较久还要提供自验和 VT 的报告。
### OD 与华为自有员工的对比
什么是 ODOutstanding Dispatcher人员派遣官方强调说OD 和常说的“外包”是不一样的。
说说我了解的 OD
- 参考华为的薪酬框架OD 人员的薪酬体系有一定的市场竞争力 —— 的确是这样,貌似会稍微倒挂同级别的自有员工;
- 可以参与华为主力产品的研发 —— 是的,这也是和某软等“供应商”的兄弟们不一样的地方;
- 外网权限也可以申请打开(对,就是梯子),部门内部的大多数文档都是可以看的;
- 工号是单独的 300 号段,其他供应商员工的工号是 8 开头,或着 WX 开头;
- 工卡带是红色的和自有员工一样但是工卡内容不同OD 的明确标注:办公区通行证,并有德科公司的备注:
![](https://oss.javaguide.cn/github/javaguide/high-quality-technical-articles/personal-experience/1438655-20210124231550508-1315720640.jpg)
还听到一些内部的说法:
- 没股票,没 TUP年终奖少只有工资可能比我司高一点点而已
- 不能借针对 HW 的消费贷,也不能买公司提供的优惠保险……
### 那,到底要不要去华为 OD
我想,搜到我这篇文字的你,心里其实是有偏向的,只是缺最后一片雪花 ❄️,让自己下决心。
作为过来人之一,我再提供一些参考吧 😃
1除了华为 OD**还有没有更好的选择?** 综合考虑加班996、有些是 9106 甚至更多)、薪资、工作内容,以及这份工作经历对你整个职业的加成等等因素;
2有看到一些内部的说法比如“奇怪 OD 这么棒,为啥大家不自愿转去 OD 啊再比如“OD 等同华为?这话都说的出口,既然都等同,为啥还要 OD就是降成本嘛……”
3内心够强大吗虽然没有人会说你是 OD但总有一些事情会提醒你**你不是华为员工**。比如:
a) 内部发文啥的,还有心声平台的大部分内容,都是无权限看的:
![](https://oss.javaguide.cn/github/javaguide/high-quality-technical-articles/personal-experience/1438655-20210124225007848-1701355006.png)
b) 你的考勤是在租赁人员管理系统里考核,绩效管理也是;
c) 自有员工的工卡具有消费功能包括刷夜宵OD 的工卡不能消费,需要办个消费卡,而且夜宵只能通过手机软件领取(自有员工是用工卡领的);
d) 你的加班一定要提加班申请电子流换 Double 薪资,不然只能换调休,离职时没时间调休也换不来 Double —— 而华为员工即使自己主动离职,也是有 N+1以及加班时间换成 Double 薪资的;
### 网传的 OD 转华为正编,真的假的?
这个放到单独的一节,是因为它很重要,有很多纠结的同学在关注这个问题。
**答案是:真的。**
据各类非官方渠道(比如知乎上的一些分享),转华为自有是有条件的(<https://www.zhihu.com/question/356592219/answer/1562692667>:
1入职时间一年以上
2绩效要求连续两次绩效 A
3认证要求通过可信专业级认证
4其他条件根据业务部门的人员需求及指标要求确定
说说这些条件吧 😃
**条件 2 连续两次绩效 A**
上面链接里的说法:
> 绩效 A 大约占整个部门的前 10%,连续两次 A 的意思就是一年里两次考评都排在部门前 10%,能做到这样的在华为属于火车头,这种难得的绩效会舍得分给一个租赁人员吗?
OD 同学能拿到 A 吗?不知道,我入职晚,都没有经历一个完整的绩效考评。
20210605 更新下)一年多了,还留着的 OD 同学告知我OD 是单独评绩效的,能拿到 A 的比例,大概是 1/5对应的年终奖就是 4 个月;绩效是 B年终奖就是 2 个月。
在我看来,在试用期答辩时,能拿 A接下来半年的绩效大概率也是拿 A 的。
但总的来说,这种事既看实力,又看劳动态度(能不能拼命三郎疯狂加班),还要看运气(主管对你是不是认可)……
**条件 3 通过可信专业级认证**
可信专业级认证考试是啥?华为在推动技术人员的可信认证,算是一项安全合规的工作。
专业级有哪些考试呢?共有四门:
- 科目一:上级编程,对比力扣 2 道中等、1 道困难;
- 科目二:编程知识与应用,考察基础的编程语言知识等;
- 科目三:安全编程、质量、隐私,还有开发者测试等;
- 科目四:重构知识,包括设计模式、代码重构等。
上面这些,每一门单季度只能考一次(好像有些一年只能考 3 次),每个都要准备,少则 3 天,多则 1 星期,不准备,基本都过不了。
我在 4 个月左右、还没转正的时候,就考过了专业级的科目二、三、四,只剩科目一大半年都没过(算法确实太菜了 😂
但也有同事没准备,连着好几次都没通过。
**条件 4 部门人员需求指标?**
这个听起来都感觉很玄学。还是那句话,实力和运气到了,应该可以的!成功转正员工图镇楼:
![](https://oss.javaguide.cn/github/javaguide/high-quality-technical-articles/personal-experience/1438655-20210124231943817-1976130336.jpg)
### 真的感谢 OD也感谢华为
运气很好,在我换工作还不到 3 个月的时候,华为还收我。
我遇到了很好的主管,起码在工作时间,感觉跟兄长一样指导、帮助我;
分配给我的导师,是我工作以来认识到技术实力最厉害的人,定位问题思路清晰,编码实力强悍,全局思考问题、制定方案……
小组、部门的同学都很 nice9 个多月里,我基本每天都跟打了鸡血一样,现在想想,也不知道当时为什么会那么积极有干劲 😂
从个人能力上来讲,我是进不去华为的(心里还是有点数的 😂)。正是有了 OD 这个渠道,才有机会切身感受华为的工作氛围,也学到了很多软技能:
- 积极主动,勇于承担尝试,好工作要抢过来自己做;
- 及时同步工作进展,包括已完成、待完成,存在的风险困难等内容,要让领导知道你的工作情况;
- 勤于总结提炼输出,形成个人 DNA利人利己
- 有不懂的可以随时找人问,脸皮要厚,虚心求教;
- 不管多忙,所有的会议,不论大小,都要有会议纪要,邮件发给相关人……
再次感谢,大家都加油,向很牛掰很牛掰前进 💪
## 投简历,找面试官求虐
20 年 11 月初的一天,在同事们讨论“某某被其他公司高薪挖去了,钱景无限”的消息。
我忽然惊觉,自己来到华为半年多,除了熟悉内部的系统和流程,好像没有什么成长和进步?
不禁反思:只有厉害的人才会被挖,现在这个状态的我,在市场上值几个钱?
刚好想起了之前的一个同事在离职聚会上分享的经验:
> 技术人不能闭门造车,要多交流,多看看外面的动态。
>
> 如果感觉自己太安逸了,那就把简历挂出去,去了解其他公司用的是什么技术,他们更关注哪些痛点?面几次你就有方向了。
这时候起了个念头:找面试官求虐,以此来鞭策自己,进而更好地制定学习方向。
于是我重新下载了某聘软件,在首页推荐里投了几家公司。
## 开始面试
11 月 10 号投的简历,当天就有 2 家预约了 11 号下午的线上面试,其中就有鹅厂 🐧
好巧不巧10 号晚上要双十一业务保障,一直到第二天凌晨 2 点半才下班。
熬夜太伤身,还好能申请调休一天,也省去了找借口请假 🙊
这段时间集中面了 3 家:
> 第 1 个是广州的公司11 号当晚就完成了 2 轮线上面试,开得有点低,就婉拒了;
> 第 2 个就是本文的重点——鹅厂;
> 第 3 个是做跨境电商的公司,一面就跪(恭喜它荣升为“在我有限的工作经历中,面试体验最差的 2 家公司之一”🙂️)
## 鹅厂,去还是不去?
一直有一个大厂梦,奈何菜鸟一枚,之前试过好几次,都跪在技术面了。
所以想了个曲线救国的方法:先在其他单位积累着,有机会了再争取大厂的机会 💪
很幸运,也很猝不及防,这次竟然通过了鹅厂的所有面试。
虽然已到年底,但是要是错过这么难得的机会,下次就不知道什么时候才能再通关了。
所以,**年后拿到年终再跳槽 vs 已到手的鹅厂 Offer我选择了后者 😄**
## 我的鹅厂面试
如本文标题所说16 天通关五轮面试,第 17 天,我终于收到了期盼已久的鹅厂 Offer。
做技术的同学,可能会对鹅厂的面试很好奇,他们都会问哪些问题呢?
我应聘的是大数据开发Java岗位接下来对我的面试做个梳理也给想来鹅厂的同学们一个参考 😊
> 几乎所有问题都能在网络上找到很详细的答案。
> 篇幅有限,这里只写题目和一些引申的问题。
### 技术一面
#### 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 的常用命令,比如:
> ```shell
> 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 xxx` 或 `jps` 命令找到 Java 的进程号 `pid`
>
> 然后用 `top -Hp pid` 命令查看其阻塞的线程序号,**将其转换为 16 进制**
>
> 再通过 `jstack pid` 命令跟踪此 Java 进程的堆栈,搜索上述转换来的 16 进制线程号,即可找到对应的线程名及其堆栈信息……
3、Java 程序发生了内存溢出,如何定位?
> `jmap` 工具查看堆栈信息,看 Eden、Old 区的变化……
### 技术二面
二面主要是过往项目相关的问题:
1、Solr 和 Elasticsearch 的区别 / 优劣?
2、对 Elasticsearch 的优化,它的索引过程,选主过程等问题……
3、项目中遇到的难题如何解决的
blabla 有少量的基础问题和一面有重复,还有几个和大数据相关的问题,记不太清了 😅
### 技术三面
这一面是总监面,更多是个人关于职业发展的一些想法,以及在之前公司的成长和收获、对下一份工作的期望等问题。
但也问了几个技术问题。印象比较深的是这个:
> 1 个 1TB 的大文件,每行都只是 1 个数字无重复8GB 内存,要怎么对这个文件进行排序?
首先想到的是 MapReduce 的思路,拆分小文件,分批排序,最后合并。
**此时连环追问来了:**
> Q如何尽可能多的利用内存呢
>
> A用位图法的思路对数字按顺序映射。对映射方法要有基本的了解
>
> Q如果在排好序之后还需要快速查找呢
>
> A可以做索引类似 Redis 的跳表,通过多级索引提高查找速度。
>
> Q索引查找的还是文件。要如何才能更多地利用内存呢
>
> A那就要添加缓存了把读取过的数字缓存到内存中。
>
> Q缓存应该满足什么特点呢
>
> A应该使用 LRU 型的缓存。
呼。。。总算是追问完了这道题 😂
---
还有 GM 面和 HR 面,问题都和个人经历相关,这里就略去不表。
## 文末的絮叨
**入职鹅厂已经 1 月有余。不同的岗位,不同的工作内容,也是不同的挑战。**
感受比较深的是,作为程序员,还是要自我驱动,努力提升个人技术能力,横向纵向都要扩充,这样才能走得长远。
<!-- @include: @article-footer.snippet.md -->