|
| 1 | +--- |
| 2 | +title: 华为 OD 275 天后,我进了腾讯! |
| 3 | +category: 技术文章精选集 |
| 4 | +tag: |
| 5 | + - 个人经历 |
| 6 | +--- |
| 7 | + |
| 8 | +> **推荐语** :一位朋友的华为 OD 工作经历以及腾讯面试经历分享,内容很不错。 |
| 9 | +> |
| 10 | +> <br/> |
| 11 | +> |
| 12 | +> **原文地址** :https://www.cnblogs.com/shoufeng/p/14322931.html |
| 13 | +
|
| 14 | +## 时间线 |
| 15 | + |
| 16 | +- 18 年 7 月,毕业于某不知名 985 计科专业; |
| 17 | +- 毕业前,在某马的 JavaEE(后台开发)培训了 6 个月; |
| 18 | +- 第一份工作(18-07 ~ 19-12)接触了大数据,感觉大数据更有前景; |
| 19 | +- 19 年 12 月,入职中国平安产险(去到才发现是做后台开发 😢); |
| 20 | +- 20 年 3 月,从平安辞职,跳去华为 OD 做大数据基础平台; |
| 21 | +- 2021 年 1 月,入职鹅厂 |
| 22 | + |
| 23 | +## 华为 OD 工作经历总结 |
| 24 | + |
| 25 | +### 为什么会去华为 OD |
| 26 | + |
| 27 | +在平安产险(正式员工)只待了 3 个月,就跳去华为 OD,朋友们都是很不理解的 —— 好好的正编不做,去什么外包啊 😂 |
| 28 | + |
| 29 | +但那个时候,我铁了心要去做大数据,不想和没完没了的 CRUD 打交道。刚好面试通过的岗位是华为 Cloud BU 的大数据部门,做的是国内政企中使用率绝对领先的大数据平台…… |
| 30 | +平台和工作内容都不错,这么好的机会,说啥也要去啊 💪 |
| 31 | + |
| 32 | +> 其实有想过在平安内部转岗到大数据的,但是不满足“入职一年以上”这个要求; |
| 33 | +> 「等待就是浪费生命」,在转正流程还没批下来的时候,赶紧溜了 😂 |
| 34 | +
|
| 35 | +### 华为 OD 的工作内容 |
| 36 | + |
| 37 | +**带着无限的期待,火急火燎地去华为报到了。** |
| 38 | + |
| 39 | +和招聘的 HR 说的一样,和华为自有员工一起办公,工作内容和他们完全一样: |
| 40 | + |
| 41 | +> 主管根据你的能力水平分配工作,逐渐增加难度,能者多劳; |
| 42 | +> 试用期 6 个月,有导师带你,一般都是高你 2 个 Level 的华为自有员工,基本都是部门大牛。 |
| 43 | +
|
| 44 | +所以,**不存在外包做的都是基础的、流程性的、没有技术含量的工作** —— 顾虑这个的完全不用担心,你只需要打听清楚要去的部门/小组具体做什么,能接受就再考虑其他的。 |
| 45 | + |
| 46 | +感触很深的一点是:华为是有着近 20 万员工的巨头,内部有很多流程和制度。好处是:能接触到大公司的产品从开发、测试,到发布、运维等一系列的流程,比如提交代码的时候,会由经验资深、经过内部认证的大牛给你 Review,在拉会检视的时候,可以学习他们考虑问题的角度,还有对整个产品全局的把控。 |
| 47 | + |
| 48 | +但同时,个人觉得这也有不好的地方:流程繁琐会导致工作效率变低,比如改动几行代码,就需要跑完整个 CI(有些耗时比较久),还要提供自验和 VT 的报告。 |
| 49 | + |
| 50 | +### OD 与华为自有员工的对比 |
| 51 | + |
| 52 | +什么是 OD?Outstanding Dispatcher,人员派遣,官方强调说,OD 和常说的“外包”是不一样的。 |
| 53 | + |
| 54 | +说说我了解的 OD: |
| 55 | + |
| 56 | +- 参考华为的薪酬框架,OD 人员的薪酬体系有一定的市场竞争力 —— 的确是这样,貌似会稍微倒挂同级别的自有员工; |
| 57 | +- 可以参与华为主力产品的研发 —— 是的,这也是和某软等“供应商”的兄弟们不一样的地方; |
| 58 | +- 外网权限也可以申请打开(对,就是梯子),部门内部的大多数文档都是可以看的; |
| 59 | +- 工号是单独的 300 号段,其他供应商员工的工号是 8 开头,或着 WX 开头; |
| 60 | +- 工卡带是红色的,和自有员工一样,但是工卡内容不同,OD 的明确标注:办公区通行证,并有德科公司的备注: |
| 61 | + |
| 62 | + |
| 63 | + |
| 64 | +还听到一些内部的说法: |
| 65 | + |
| 66 | +- 没股票,没 TUP,年终奖少,只有工资可能比我司高一点点而已; |
| 67 | +- 不能借针对 HW 的消费贷,也不能买公司提供的优惠保险… |
| 68 | + |
| 69 | +### 那,到底要不要去华为 OD? |
| 70 | + |
| 71 | +我想,搜到我这篇文字的你,心里其实是有偏向的,只是缺最后一片雪花 ❄️,让自己下决心。 |
| 72 | + |
| 73 | +作为过来人之一,我再提供一些参考吧 😃 |
| 74 | + |
| 75 | +1)除了华为 OD,**还有没有更好的选择?** 综合考虑加班(996、有些是 9106 甚至更多)、薪资、工作内容,以及这份工作经历对你整个职业的加成等等因素; |
| 76 | + |
| 77 | +2)有看到一些内部的说法,比如:“奇怪 OD 这么棒,为啥大家不自愿转去 OD 啊?”;再比如:“OD 等同华为?这话都说的出口,既然都等同,为啥还要 OD?就是降成本嘛……” |
| 78 | + |
| 79 | +3)内心够强大吗?虽然没有人会说你是 OD,但总有一些事情会提醒你:**你不是华为员工**。比如: |
| 80 | + |
| 81 | +a) 内部发文啥的,还有心声平台的大部分内容,都是无权限看的: |
| 82 | + |
| 83 | + |
| 84 | + |
| 85 | +b) 你的考勤是在租赁人员管理系统里考核,绩效管理也是; |
| 86 | + |
| 87 | +c) 自有员工的工卡具有消费功能(包括刷夜宵),OD 的工卡不能消费,需要办个消费卡,而且夜宵只能通过手机软件领取(自有员工是用工卡领的); |
| 88 | + |
| 89 | +d) 你的加班一定要提加班申请电子流换 Double 薪资,不然只能换调休,离职时没时间调休也换不来 Double —— 而华为员工即使自己主动离职,也是有 N+1,以及加班时间换成 Double 薪资的; |
| 90 | + |
| 91 | +### 网传的 OD 转华为正编,真的假的? |
| 92 | + |
| 93 | +这个放到单独的一节,是因为它很重要,有很多纠结的同学在关注这个问题。 |
| 94 | + |
| 95 | +**答案是:真的。** |
| 96 | + |
| 97 | +据各类非官方渠道(比如知乎上的一些分享),转华为自有是有条件的(https://www.zhihu.com/question/356592219/answer/1562692667): |
| 98 | + |
| 99 | +1)入职时间:一年以上 |
| 100 | +2)绩效要求:连续两次绩效 A |
| 101 | +3)认证要求:通过可信专业级认证 |
| 102 | +4)其他条件:根据业务部门的人员需求及指标要求确定 |
| 103 | + |
| 104 | +说说这些条件吧 😃 |
| 105 | + |
| 106 | +**条件 2 连续两次绩效 A** |
| 107 | + |
| 108 | +上面链接里的说法: |
| 109 | + |
| 110 | +> 绩效 A 大约占整个部门的前 10%,连续两次 A 的意思就是一年里两次考评都排在部门前 10%,能做到这样的在华为属于火车头,这种难得的绩效会舍得分给一个租赁人员吗? |
| 111 | +
|
| 112 | +OD 同学能拿到 A 吗?不知道,我入职晚,都没有经历一个完整的绩效考评。 |
| 113 | + |
| 114 | +(20210605 更新下)一年多了,还留着的 OD 同学告知我:OD 是单独评绩效的,能拿到 A 的比例,大概是 1/5,对应的年终奖就是 4 个月;绩效是 B,年终奖就是 2 个月。 |
| 115 | + |
| 116 | +在我看来,在试用期答辩时,能拿 A,接下来半年的绩效大概率也是拿 A 的。 |
| 117 | + |
| 118 | +但总的来说,这种事既看实力,又看劳动态度(能不能拼命三郎疯狂加班),还要看运气(主管对你是不是认可)…… |
| 119 | + |
| 120 | +**条件 3 通过可信专业级认证** |
| 121 | + |
| 122 | +可信专业级认证考试是啥?华为在推动技术人员的可信认证,算是一项安全合规的工作。 |
| 123 | +专业级有哪些考试呢?共有四门: |
| 124 | + |
| 125 | +- 科目一:上级编程,对比力扣 2 道中等、1 道困难; |
| 126 | +- 科目二:编程知识与应用,考察基础的编程语言知识等; |
| 127 | +- 科目三:安全编程、质量、隐私,还有开发者测试等; |
| 128 | +- 科目四:重构知识,包括设计模式、代码重构等。 |
| 129 | + |
| 130 | +上面这些,每一门单季度只能考一次(好像有些一年只能考 3 次),每个都要准备,少则 3 天,多则 1 星期,不准备,基本都过不了。 |
| 131 | +我在 4 个月左右、还没转正的时候,就考过了专业级的科目二、三、四,只剩科目一大半年都没过(算法确实太菜了 😂 |
| 132 | +但也有同事没准备,连着好几次都没通过。 |
| 133 | + |
| 134 | +**条件 4 部门人员需求指标?** |
| 135 | + |
| 136 | +这个听起来都感觉很玄学。还是那句话,实力和运气到了,应该可以的!成功转正员工图镇楼: |
| 137 | + |
| 138 | + |
| 139 | + |
| 140 | +### 真的感谢 OD,也感谢华为 |
| 141 | + |
| 142 | +运气很好,在我换工作还不到 3 个月的时候,华为还收我。 |
| 143 | + |
| 144 | +我遇到了很好的主管,起码在工作时间,感觉跟兄长一样指导、帮助我; |
| 145 | + |
| 146 | +分配给我的导师,是我工作以来认识到技术实力最厉害的人,定位问题思路清晰,编码实力强悍,全局思考问题、制定方案…… |
| 147 | + |
| 148 | +小组、部门的同学都很 nice,9 个多月里,我基本每天都跟打了鸡血一样,现在想想,也不知道当时为什么会那么积极有干劲 😂 |
| 149 | + |
| 150 | +从个人能力上来讲,我是进不去华为的(心里还是有点数的 😂)。正是有了 OD 这个渠道,才有机会切身感受华为的工作氛围,也学到了很多软技能: |
| 151 | + |
| 152 | +- 积极主动,勇于承担尝试,好工作要抢过来自己做; |
| 153 | +- 及时同步工作进展,包括已完成、待完成,存在的风险困难等内容,要让领导知道你的工作情况; |
| 154 | +- 勤于总结提炼输出,形成个人 DNA,利人利己; |
| 155 | +- 有不懂的可以随时找人问,脸皮要厚,虚心求教; |
| 156 | +- 不管多忙,所有的会议,不论大小,都要有会议纪要,邮件发给相关人…… |
| 157 | + |
| 158 | +再次感谢,大家都加油,向很牛掰很牛掰前进 💪 |
| 159 | + |
| 160 | +## 投简历,找面试官求虐 |
| 161 | + |
| 162 | +20年11月初的一天,在同事们讨论“某某被其他公司高薪挖去了,钱景无限”的消息。 |
| 163 | + |
| 164 | +我忽然惊觉,自己来到华为半年多,除了熟悉内部的系统和流程,好像没有什么成长和进步? |
| 165 | + |
| 166 | +不禁反思:只有厉害的人才会被挖,现在这个状态的我,在市场上值几个钱? |
| 167 | + |
| 168 | +刚好想起了之前的一个同事在离职聚会上分享的经验: |
| 169 | + |
| 170 | +> 技术人不能闭门造车,要多交流,多看看外面的动态。 |
| 171 | +> |
| 172 | +> 如果感觉自己太安逸了,那就把简历挂出去,去了解其他公司用的是什么技术,他们更关注哪些痛点?面几次你就有方向了。 |
| 173 | +
|
| 174 | +这时候起了个念头:找面试官求虐,以此来鞭策自己,进而更好地制定学习方向。 |
| 175 | + |
| 176 | +于是我重新下载了某聘软件,在首页推荐里投了几家公司。 |
| 177 | + |
| 178 | +## 开始面试 |
| 179 | + |
| 180 | +11 月 10 号投的简历,当天就有 2 家预约了 11 号下午的线上面试,其中就有鹅厂 🐧 |
| 181 | + |
| 182 | +好巧不巧,10 号晚上要双十一业务保障,一直到第二天凌晨 2 点半才下班。 |
| 183 | + |
| 184 | +熬夜太伤身,还好能申请调休一天,也省去了找借口请假 🙊 |
| 185 | + |
| 186 | +这段时间集中面了 3 家: |
| 187 | + |
| 188 | +> 第 1 个是广州的公司,11 号当晚就完成了 2 轮线上面试,开得有点低,就婉拒了; |
| 189 | +> 第 2 个就是本文的重点——鹅厂; |
| 190 | +> 第 3 个是做跨境电商的公司,一面就跪(恭喜它荣升为“在我有限的工作经历中,面试体验最差的 2 家公司之一”🙂️) |
| 191 | +
|
| 192 | +## 鹅厂,去还是不去? |
| 193 | + |
| 194 | +一直有一个大厂梦,奈何菜鸟一枚,之前试过好几次,都跪在技术面了。 |
| 195 | + |
| 196 | +所以想了个曲线救国的方法:先在其他单位积累着,有机会了再争取大厂的机会 💪 |
| 197 | + |
| 198 | +很幸运,也很猝不及防,这次竟然通过了鹅厂的所有面试。 |
| 199 | + |
| 200 | +虽然已到年底,但是要是错过这么难得的机会,下次就不知道什么时候才能再通关了。 |
| 201 | + |
| 202 | +所以,**年后拿到年终再跳槽 vs 已到手的鹅厂 Offer,我选择了后者 😄** |
| 203 | + |
| 204 | +## 我的鹅厂面试 |
| 205 | + |
| 206 | +如本文标题所说,16 天通关五轮面试,第 17 天,我终于收到了期盼已久的鹅厂 Offer。 |
| 207 | + |
| 208 | +做技术的同学,可能会对鹅厂的面试很好奇,他们都会问哪些问题呢? |
| 209 | + |
| 210 | +我应聘的是大数据开发(Java)岗位,接下来对我的面试做个梳理,也给想来鹅厂的同学们一个参考 😊 |
| 211 | + |
| 212 | +> 几乎所有问题都能在网络上找到很详细的答案。 |
| 213 | +> 篇幅有限,这里只写题目和一些引申的问题。 |
| 214 | +
|
| 215 | +### 技术一面 |
| 216 | + |
| 217 | +#### Java 语言相关 |
| 218 | + |
| 219 | +1、对 Java 的类加载器有没有了解?如何自定义类加载器? |
| 220 | + |
| 221 | +> 引申:一个类能被加载多次吗?`java/javax` 包下的类会被加载多次吗? |
| 222 | +
|
| 223 | +2、Java 中要怎么创建一个对象 🐘? |
| 224 | + |
| 225 | +3、对多线程有了解吗?在什么场景下需要使用多线程? |
| 226 | + |
| 227 | +> 引申:对 **线程安全** 的认识;对线程池的了解,以及各个线程池的适用场景。 |
| 228 | +
|
| 229 | +4、对垃圾回收的了解? |
| 230 | + |
| 231 | +5、对 JVM 分代的了解? |
| 232 | + |
| 233 | +6、NIO 的了解?用过 RandomAccessFile 吗? |
| 234 | + |
| 235 | +> 引申:对 **同步、异步,阻塞、非阻塞** 的理解? |
| 236 | +> |
| 237 | +> 多路复用 IO 的优势? |
| 238 | +
|
| 239 | +7、ArrayList 和 LinkedList 的区别?各自的适用场景? |
| 240 | + |
| 241 | +8、实现一个 Hash 集合,需要考虑哪些因素? |
| 242 | + |
| 243 | +> 引申:JDK 对 HashMap 的设计关键点,比如初识容量,扩所容,链表转红黑树,以及 JDK 7 和 JDK 8 的区别等等。 |
| 244 | +
|
| 245 | +#### 通用学科相关 |
| 246 | + |
| 247 | +1、TCP 的三次握手; |
| 248 | + |
| 249 | +2、Linux 的常用命令,比如: |
| 250 | + |
| 251 | +> ```shell |
| 252 | +> ps aux / ps -ef、top C |
| 253 | +> df -h、du -sh *、free -g |
| 254 | +> vmstat、mpstat、iostat、netstat |
| 255 | +> ``` |
| 256 | +
|
| 257 | +#### 项目框架相关 |
| 258 | +
|
| 259 | +1、Kafka 和其他 MQ 的区别?它的吞吐量为什么高? |
| 260 | +
|
| 261 | +> 消费者主动 pull 数据,目的是:控制消费节奏,还可以重复消费; |
| 262 | +> |
| 263 | +> 吞吐量高:各 partition 顺序写 IO,批量刷新到磁盘(OS 的 pageCache 负责刷盘,Kafka 不用管),比随机 IO 快;读取数据基于 sendfile 的 Zero Copy;批量数据压缩…… |
| 264 | +
|
| 265 | +2、Hive 和 SparkSQL 的区别? |
| 266 | +
|
| 267 | +3、Ranger 的权限模型、权限对象,鉴权过程,策略如何刷新…… |
| 268 | +
|
| 269 | +#### 问题定位方法 |
| 270 | +
|
| 271 | +1、ssh 连接失败,如何定位? |
| 272 | +
|
| 273 | +> 是否能 ping 通(DNS 是否正确)、对端端口是否开了防火墙、对端服务是否正常…… |
| 274 | +
|
| 275 | +2、运行 Java 程序的服务器,CPU 使用率达到 100%,如何定位? |
| 276 | +
|
| 277 | +> `ps aux | grep xxx` 或 `jps` 命令找到 Java 的进程号 `pid`, |
| 278 | +> |
| 279 | +> 然后用 `top -Hp pid` 命令查看其阻塞的线程序号,**将其转换为 16 进制**; |
| 280 | +> |
| 281 | +> 再通过 `jstack pid` 命令跟踪此 Java 进程的堆栈,搜索上述转换来的 16 进制线程号,即可找到对应的线程名及其堆栈信息…… |
| 282 | +
|
| 283 | +3、Java 程序发生了内存溢出,如何定位? |
| 284 | +
|
| 285 | +> `jmap` 工具查看堆栈信息,看 Eden、Old 区的变化…… |
| 286 | +
|
| 287 | +### 技术二面 |
| 288 | +
|
| 289 | +二面主要是过往项目相关的问题: |
| 290 | +
|
| 291 | +1、Solr 和 Elasticsearch 的区别 / 优劣? |
| 292 | +
|
| 293 | +2、对 Elasticsearch 的优化,它的索引过程,选主过程等问题…… |
| 294 | +
|
| 295 | +3、项目中遇到的难题,如何解决的? |
| 296 | +
|
| 297 | +blabla 有少量的基础问题和一面有重复,还有几个和大数据相关的问题,记不太清了 😅 |
| 298 | +
|
| 299 | +### 技术三面 |
| 300 | +
|
| 301 | +这一面是总监面,更多是个人关于职业发展的一些想法,以及在之前公司的成长和收获、对下一份工作的期望等问题。 |
| 302 | +
|
| 303 | +但也问了几个技术问题。印象比较深的是这个: |
| 304 | +
|
| 305 | +> 1 个 1TB 的大文件,每行都只是 1 个数字,无重复,8GB 内存,要怎么对这个文件进行排序? |
| 306 | +
|
| 307 | +首先想到的是 MapReduce 的思路,拆分小文件,分批排序,最后合并。 |
| 308 | +
|
| 309 | +**此时连环追问来了:** |
| 310 | +
|
| 311 | +> Q:如何尽可能多的利用内存呢? |
| 312 | +> |
| 313 | +> A:用位图法的思路,对数字按顺序映射。(对映射方法要有基本的了解) |
| 314 | +> |
| 315 | +> Q:如果在排好序之后,还需要快速查找呢? |
| 316 | +> |
| 317 | +> A:可以做索引,类似 Redis 的跳表,通过多级索引提高查找速度。 |
| 318 | +> |
| 319 | +> Q:索引查找的还是文件。要如何才能更多地利用内存呢? |
| 320 | +> |
| 321 | +> A:那就要添加缓存了,把读取过的数字缓存到内存中。 |
| 322 | +> |
| 323 | +> Q:缓存应该满足什么特点呢? |
| 324 | +> |
| 325 | +> A:应该使用 LRU 型的缓存。 |
| 326 | +
|
| 327 | +呼。。。总算是追问完了这道题 😂 |
| 328 | +
|
| 329 | +--- |
| 330 | +
|
| 331 | +还有 GM 面和 HR 面,问题都和个人经历相关,这里就略去不表。 |
| 332 | +
|
| 333 | +## 文末的絮叨 |
| 334 | +
|
| 335 | +**入职鹅厂已经1月有余。不同的岗位,不同的工作内容,也是不同的挑战。** |
| 336 | +
|
| 337 | +感受比较深的是,作为程序员,还是要自我驱动,努力提升个人技术能力,横向纵向都要扩充,这样才能走得长远。 |
0 commit comments