时间线概述

  • 2018年7月,毕业于一所不知名的985高校计算机专业;
  • 毕业前,在某知名企业接受了6个月的JavaEE(后台开发)培训;
  • 第一份工作(2018年7月-2019年12月)中接触了大数据,感受到其更广阔的前景;
  • 2019年12月,入职中国平安产险(入职后发现主要做后台开发);
  • 2020年3月,从平安辞职,加入华为OD,负责大数据基础平台的工作;
  • 2021年1月,顺利入职腾讯。

华为OD工作经历的反思

为什么选择去华为OD?

在平安产险工作仅三个月后,我便跳槽到华为OD,这让许多朋友感到不解:为什么放弃一个正式员工的职位,去做外包呢?但是,我内心坚定地想要涉足大数据,不愿再继续处理那些冗长无趣的CRUD操作。刚好我面试通过了华为Cloud BU的大数据部门,负责的正是国内政企领域使用率领先的大数据平台。这个平台以及相关的工作内容都非常吸引人,因此我毫不犹豫地选择了加入。

我曾考虑在平安内部转岗到大数据部门,但因“入职一年以上”的政策限制而未能如愿,深感“等待就是浪费生命”,于是趁着转正流程未批时及时“溜”了。

华为OD的工作内容

我满怀期待地入职华为,与华为正式员工共同办公,工作内容与他们完全一致。主管会根据你的能力水平逐渐分配更高难度的任务,试用期六个月内会有一位高我两个级别的导师指导,基本上都是部门的技术大牛。

在华为,中间并不存在外包所做的简单、流程化、缺乏技术含量的工作,所以对此完全不必担心。只需了解你要去的部门或小组的具体工作内容,如果你能接受,便可以进一步考虑。

值得一提的是,华为作为一家拥有近20万员工的巨头,内部存在许多流程和制度。优点是你可以接触到大公司的各类产品,从开发、测试到发布和运维等流程都能参与其中。在代码提交时,经验丰富的同事会进行代码评审,在会议中能学习到他们的问题解决思路及整体产品把控能力。

然而,繁琐的流程也可能导致效率降低,例如修改几行代码后需要跑完整个CI,且需要提交自测和VT的报告。

OD与华为正式员工的比较

OD,即Outstanding Dispatcher,官方强调与传统意义上的“外包”不同。OD人员的薪酬体系具备一定的市场竞争力,虽略低于同级别正式员工,但能参与华为主力产品的研发。OD员工也可申请外网权限,基本上可以访问部门内部的大多数文档。工号是单独的300号段,与其他供应商员工的工号不同,工卡与正式员工相同,但标注为“办公区通行证”,并附有德科公司的备注。

不过,作为OD,也有一些缺陷,例如没有股票、TUP,年终奖较少,且福利方面也不如正式员工。此外,OD的工卡不具备消费功能,需要办理另外的消费卡。

是否值得加入华为OD?

我相信,若你能看到这篇文章,你的心中可能已有倾向,只需一小步决策。作为过来人,我给出以下几点建议:

  1. 是否还有更好的选择? 在考虑加班(如996或9106等)、薪资、工作内容及这份工作经历对你职业发展的影响等因素时综合评估;
  2. 为何大家不愿意自愿转至OD? 例如有传言称“OD等同于华为”,如果是这样,为何还要OD?这无疑是降成本的举措;
  3. 心态是否足够强大? 虽然没人会直接说你是OD,但某些事情会提醒你“你并非华为员工”,例如内部文档权限受限、考勤与绩效管理通过租赁人员管理系统来考核等。

OD转正式员工的可能性

转为华为正式员工的确是有可能的,但需满足一定条件,包括入职时间满一年、连续两次绩效A、通过可信专业级认证等。对于绩效A,能够做到在部门前10%内是非常不易的,OD同学获得A的比例约1/5,且年终奖会有所不同。这一过程中,实力、工作态度及运气都将是决定因素。

对华为OD的感激与珍惜

在华为OD的工作经历让我成长了许多,特别是遇到了优秀的主管和导师,日常工作中不仅能获得技术指导,也能感受到团队的积极氛围。

通过这段经历,我学到了许多职场软技能,比如积极主动、及时汇报工作进展、勤于总结等,这些都为我后续的职业发展打下了坚实的基础。

投简历,寻求挑战

在2020年11月初,我突然意识到自己在华为工作半年多,虽然熟悉了内部流程,但似乎没有明显的进步。这让我反思技术人员不能闭门造车,应该多与外界交流,了解行业动态。于是我决定投递简历,向面试官寻求挑战,以便更好地设定学习目标。

面试过程

在11月10日投递简历后,当天就收到了两家公司的面试预约,其中就包括腾讯。虽然经历了一夜的加班,但我依然参加了面试。

腾讯的面试

我的面试经历非常顺利,经过五轮面试后,我最终收到了期待已久的腾讯Offer。作为大数据开发岗位的候选人,我在面试中遇到了一些技术相关的问题,以下是一些重要的面试题目及相关扩展问题:

技术面试

  • Java类加载器:如何自定义类加载器?

    • 相关问题:一个类能被加载几次吗?java/javax包下的类会被加载几次?
  • 多线程:在什么场景中需要使用多线程?

    • 相关问题:对线程池的认识及其适用场景。
  • 垃圾回收:你对JVM的分代有什么了解?

  • 数据处理:对于一个1TB的大文件,如何进行排序?

    • 追问:如何利用内存最大化及如何快速查找?

面试的过程虽紧张但充满乐趣,这让我在短时间内得到了丰富的知识与经验。

总结与展望

经过在华为的工作经历以及在腾讯的面试,我深刻意识到作为程序员,需要不断自我驱动,不仅要提升技术能力,也要不断调整自己在行业中的定位。希望大家都能在职场中找到适合自己的位置。

再次感谢阅读,希望大家在自己的职业道路上勇往直前!