当前位置: 首页 > 后端技术 > Java

我从华为辞职了

时间:2023-04-02 01:45:44 Java

作者:白冰\原文:https://zhuanlan.zhihu.com/p/...很遗憾,当正式员工后,看到了大家的能力和努力,还有我也意识到,在预期中很难在短时间内达到自己想要的高度。最后,经过多方考虑,我还是决定放弃这个职位,回到外企去寻找适合自己的节奏。无奈离职后,回想起来,觉得自己在华为的经历特别珍贵,所以在此记录一下。试用期和加班费一般情况下,试用期为3-6个月,工资和奖金按正式员工标准计算。据我所知,唯一不同的是,试用期内的员工不能调到周末加班,相当于白加班。因此,组长(PL)不会要求试用员工在周末加班,直到最忙的时候。听前辈说,2019年到2020年,因为华为被美国制裁,采取所谓的战时状态,那个时候压力最大。作为补偿,华为还拨出额外资金用于激励:周末加班的正式员工,将直接转化为双倍工资,下月支付。周末两天加班的话,双倍工资是4天,相当于底薪涨了80%,几乎翻了一番。当然,这种连续的周末加班也是非常耗体力的。无论你多坚强,多年轻,你最终都不得不承认:生命很重要。现在周末加班还是按双倍工资算的,只是下个月不发,给你累计。直到您每8年更改一次工号或离职时,才会为您结算。此外,周末加班也需要得到主管的批准,不再直接按签到时间计算。随着工作的深入,我逐渐开始理解华为制定一些政策的原因,开始理解它为了获得最大利益所做的取舍。招聘我们刚毕业的时候,听说华为只要是985/211的学生就招,而且只需要通过编程题,几乎不看个人经验。我当时不明白。还以为招募一堆垃圾很容易?我进来后发现,基于对员工的不信任,华为会建立一套完整的制度和流程,让员工把工作做得漂亮。不能承受压力的被淘汰,能承受压力并遵循制度和流程的才能生存。在此基础上,智商和情商特别高的人,才会有钱。在这里,每一位员工都可以参加招聘,这几乎成为他们在华为职业生涯的必经之路。基于现有人才库,一一电话询问工作意愿,指导做面试题、在线编程,参与面试官1对1面试。我估计可能是存储预算不够,所以在招聘的时候,我倾向于招OD/WX的员工。OD的员工ID以300开头,WX的员工ID以WX开头。这两类员工不属于华为正式员工。其中OD员工相对较好,主要从事开发工作。WX开头的员工基本只能从事测试工作。他们一步一步地按照测试文档,检查是否符合预期。大多数WX员工不知道他们为什么这样做以及预期结果代表什么,因为他们不合格。参与方案的设计和讲课,没有一个TDE(测试设计工程师,负责设计测试用例的华为员工)愿意给他们讲解。由于仓储方人员大量流失,招聘任务十分繁重。同时,存储倾向于招OD/WX员工,招人难度会很大。总结一下:有能力的人看不起OD/WX,没有能力的人过不了在线编程等考核。月答辩和转正答辩试用期内,每月有一次月答辩。你将做一份PPT,详细描述你这一个月的所做所学,并现场回答评委提问。在转正之际,要做好转正答辩的准备工作,总结整个试用期的工作。还好因为项目太紧,最后只参加了从试用期到转正的三场答辩,包括转正答辩。在答辩过程中,评委们会认真听取你的意见,并在思考后提出一些问题。这种气氛很好。其实防守对成绩的影响并不是特别大,因为大家可以看到你平时做什么,可以估算一下权重。防御最大的作用就是防止新员工偷懒。员工进入公司后,在完全熟悉流程,成为忙碌的螺丝钉之前,会有一个短暂的空窗期。这个阶段,因为你什么都不懂,所以不会有人找你,也不能给你分配任务。这个时候,如果你知道自己每个月都需要汇报自己的工作和学习进度,你就会有足够的动力尽快融入团队。正规化防御完成后,基本上你已经是一个标准的螺丝钉了。这时候就不需要辩解了,可以通过绩效考核来激励自己。可信认证存储的发展,每个人都需要通过可信考试。可信考试分为专业级和工作级。总共有四门课程和四门考试。新员工更容易通过,因为他们有更多的时间;而老员工没有时间学习,几乎都是裸考。一两个晚上看资料,所以通过率比较低。我运气好,轻松通过了专业级(毕竟17岁以上的员工必须通过专业级)。在我看来,可信认证的知识总结得真好,费了九牛二虎之力才总结出来的。除科??目一在线编程外,其他科目均为理论知识,涵盖编程语言语法与技巧、编程语言规范、需求分析、安全红线、设计模式、敏捷开发等内容。当我阅读那些学习课程和资料时,我有一种强烈的似曾相识的感觉,因为其中有很多是我经历过的场景和跌过的坑。这些经验总结成精炼的语言,通过以考促训的理念灌输到每一位员工的脑海中。遗憾的是,由于工作强度大,大家都以通过认证为目标。他们几乎不看课程和资料,直接在心声论坛上搜索历年考题,背诵答案,以最快的速度通过考试。可惜浪费了很多极好的材料。事实上,接口人从入职到离开导师差不多用了两个月的时间。这段时间应该是最开心的时候了,最重要的任务就是通过可信的考试。两个月后,我开始接手一些简单的工作,修改问题列表或者进行一些简单的功能开发。但是在一些部门,这个时候你往往会被赋予一个可怕的任务——接口人。一般来说,一个产品会被分成多个模块,每个团队维护一个或多个模块。当测试发现属于某个组的某个模块有问题,或者其他模块依赖这个模块的部分没有正常工作时,就需要有人帮忙排查原因。这个人叫做接口人。一个团队10人左右,负责的模块代码量在千万行到百万行级别。乍一看,似乎应该选择一个有经验的员工作为接口人,对组内的模块和历史条件掌握得一清二楚。但实际上,帮助别人看到问题找到原因是一件吃力不讨好的工作,因为领导看不到,身边的同事也察觉不到。在外企,这个联系人通常是经理。他会对问题进行简单的分析,然后根据团队成员的专业领域和负载情况,选择合适的开发来分析问题。在华为,类似的职位是PL。为了业绩,他们不可能天天在上面浪费时间。同时,群里的每个人都忙得不可开交,最熟悉该领域的人可能正在完成紧急任务,根本没有时间分析。因此,PL通常会在组内找资历较低的同事担任接口人,并按固定周期轮换。一个组维护的代码量不小。让新员工做接口人,美其名曰“锻炼”,其实是让他顶住压力。作为接口人,PL的要求是尽量不打扰到群里的其他人。所有问题,除非真的是bug,否则无法测试和计费。这样的要求看似简单,但对于新员工来说,很多时候你连测试和咨询题的意义都不懂。此外,设计中还有各种历史原因和特殊情况。大多数新员工都是一头雾水。向有经验的同事寻求帮助?项目不太激烈的时候还好,但是项目紧张的时候,大家都戴着耳机打电话,你可能几个小时都见不到他们闲着。而且测试对你的响应时间有要求,你为什么不给一个小时的解释清楚呢?然后提单。比如:你在分析问题A的原因,阅读完全陌生的代码,另外两个测试给你留言,让你查阅问题B和C。你熟悉的领域。需要花时间去阅读代码和理解设计才能知道是不是问题,所以你还没反应过来。两分钟后,两位测试人员分别给你打电话。你很烦,不想接电话,但是他们一直打电话,在信息里告诉你,不接电话就要收费。你只能拿起电话告诉他们他们现在真的很忙,所以你只能让他们先注册然后排队等待你的消息。没多久,你看到A题有些看不懂的逻辑,想找人问问,结果一抬头,群里的人都在打电话。于是你咬咬牙用A的测试确认了测试用例的逻辑,同时忽略了一些看不懂的代码去猜测后面的逻辑。这时候B和C的测试告诉你不能再等了。上面催你要提单。只能暂时放下代码重新解释,给他们一个合理的deadline,让他们接受。突然,电话又响了。这是一个电话会议。问题很严重。四五个开发者在网上一起讨论。你需要确认。TDE敦促您快速阅读它。你迅速放下A题,一边阅读D题的现象,一边根据自己的理解回答这些发展题。D题不难,但是涉及的条件和变量很多,逻辑很绕。你必须弄清楚。推理过程中,测试A的TDE愤怒地给大家留言:我都看了两个小时了。为什么还没有结果?需要提单。如果实在想不通,就等不及考试要提单了。通常,您必须与PL交谈。但是作为一个新员工,你要有心理准备,因为这个时候会有骂声。因为PL总是很忙。他有计划要讨论,有设计要做,还有很多群里的杂事。他已经不知所措了。你不仅不能帮他分享,还要告诉他某个问题他看不懂。他也很崩溃。但是骂往往是值得的,因为PL会很快给你指出方向,因为如果定位不对,他会很快纠正你的方向(恼怒的骂几句)。这大概就是界面人的工作状态吧。早上9:40~11:30,中午14:30~18:00,晚上19:30~21:30为高峰时段。问题清单刚才多次提到“提单”,指的是问题清单。测试提出的问题列表,一般表示某个模块的功能存在bug。对于问题工单的跟踪,华为有一个叫DTS的系统,测试提单,开发解决流程大致如下:测试外包人员在DTS系统中创建问题工单,填写产品等信息、版本和问题描述。问题清单提交给负责模块的测试TDE(华为正式员工)审核。测试TDE将问题单转发给负责模块开发的组中的PL。群内PL将问题转发给需要解决问题的开发。开发解决问题,提交代码,填写根因分析,将问题工单转给群内PL。同时,开发需要约好测试TDE,和测试TDE谈谈问题列表出现的原因和修改的影响。等组内PL等串口完成,最新的Build包含开发的CommitId后,将问题单传给测试TDE。测试TDE将问题清单转发给测试外包人员进行验证。经历了这么一套流程,感觉皮都脱了。这大概就是所有开发问题都是单色的原因。对于上级leader来说,他不需要知道细节,只需要问出一个小组的目标答卷数量就可以了。比如今天全团还剩40张题单,明天要35张,后天要30张...所以,为了达到目的,PL很反感题单往头上跑他们自己的小组。一些问题单涉及模块之间的协调。在测试提单时,发现问题出在模块A,但是经过对模块A的研究,发现实际问题出在模块B,模块A依赖于该模块。模块B由另一个组管理。维修,于是与B模块接口人沟通。在这种情况下,即使已经基本确定问题出在模块B,模块B的PL和接口人员也会尽量拖延问题工单发送给模块B的时间,只会同意定位问题根源并修改方案后的问题进入模块B,毕竟日常题目标单一,多一个压在头上,负担很重!这个时候A模块的PL当然不希望问题出在自己组,所以这个时候就要看两个PL的PK了。作为PL,他们至少在华为奋斗了好几年,大家都有战友的感觉。相互体谅,这次交给你,下次交给我,不要撕破脸皮。在这个过程中,开发中最不喜欢的一步就是试讲。这样设计的初衷是好的:担心你的改动的影响测试不明确,以至于无法测试受影响的场景。可惜这个规定太死板了,大部分的串音根本就没有意义。你只需要测试重现原始场景,看看问题是否解决。我觉得问题单之所以设计的这么复杂,还是因为员工的不信任。在国外公司,流程要简单得多:测试创建问题单,填写产品、版本、问题描述等信息。为需要修复问题的开发者签发工单。开发解决问题,提交代码,填写根因分析和需要测试的场景,转单返回测试验证。工序的简化对从业人员的素质提出了很高的要求。以题单和试题为例。一般来说,开发者觉得这次改动的影响还是比较大的。当他们可能需要重点测试某些场景时,他们会在问题列表中注明。同样,如果测试意识到开发人员的变更存在风险,或者开发人员不了解根本原因分析,他也会主动与开发人员进行沟通。华为的流程很复杂,其基本逻辑是:信任DE/TDE,在华为长期工作的优秀员工,新员工不值得信任。匹配的激励也偏向PL/DE/TDE,这会让新员工感到委屈,但这没关系,因为总会有一群人能忍得住委屈,愿意遵守规则,继续干下去难的。外企流程简单,每个员工工作起来都很开心,但是如果有一些员工想偷懒,公司还真没多少办法对付。顶多在很长一段时间内不会涨工资。复杂的流程导致了一个问题,就是测试TDE的繁忙程度超乎想象。因为一个测试TDE往往负责多个模块,也就是对应多个开发。当题单较多时,容易形成单点瓶颈。例如,假设一个TDE有10个外包测试人员,分别检测10个问题。这10个问题对应8个开发者。8个开发人员解决问题后,会联系外包测试人员串扰不算,这个TDE串扰你要排队,这样就形成了单点瓶颈。他忙着测试TDE,无暇顾及自己的出路,脾气自然不会太好。开发更不敢得罪测试。如果TDE对你不满意,如果不出意外,它只会在系列中接你,或者把你的系列拖到最后,这会大大拖慢你的工作进度和工作积极性。代码审查和Committer代码审查,也称为CodeReview。每次开发写好代码后,都要送去codereview,才能合并到主分支。在外企,一般开发都会找两个比较熟悉这个领域的开发人员进行考察,拿到两个Approves之后,就可以顺利加入了。在华为,代码合并理论上需要以下步骤:选择两个开发检查,通过审查后选择一个Committer,然后选择一个有合并权限的人进行合并。Committer一般是团队中技术比较强,做事细心的资深员工。一般开发阶段,权限会放宽很多,步骤简化为:选择一个开发检查检查,然后找一个Commiter检查,审核,然后合并。Committer数量很少,约占20%。如果100个人要加入code,就得找这20个人做codereview。这些人基本都是DE(DesignEngineer),主要负责方案设计,解决疑难问题等工作,同时帮助一大批同事review代码。所以他们中的大多数人都会忙得找不到北。一方面,这些Committer承担了对他们未来有利的项目,比如项目设计。另一方面,他们检查每个人的代码,如果有什么问题,他们会耐心地解释(如果没有解释清楚,他们不会被你认可),所以他们的进步会很快。新员工大多只是执行者,对整体规划、背景原理等都不清楚,不可能要求Committer耐心解释。他们只能在审查代码时学到一些东西,但也是零碎的。的。这样一来,新员工和老员工(Committer)之间的差距就拉大了。最后的结果是知识鸿沟。新员工很容易流失,因为他们在繁琐的工作之后只能自己学习,而老员工没有时间教他们;同时,他们获得的激励相对较少,除非他们努力工作以爬上Commiter。位置,否则未来发展前景渺茫。推荐一个开源免费的SpringBoot最全教程:https://github.com/javastacks/spring-boot-best-practice功能开发需要需求,需要评估完成时间。但这只是一个参考,每一关都会想办法缩短时间。结果,在开发者层面,这几乎是不可能完成的任务。例如,对于一个任务,预计需要12+4天参与设计的开发和测试,版本要求是10+3天,但是当这个任务真正交给开发和测试的时候实施,可能只剩下6天了。+1.5天。中间的时间都去哪儿了?从上到下,各级领导都担心任务完成不了,都想预留一点缓冲。所以时间从10+3天下调到8+2.5天,逐渐下调到6+1.5天。因此,功能的开发迫在眉睫,你几乎不可能在规定的时间内完成。一开始,我会很着急,因为我无法完成任务。后来发现大家都打不完,就把球门放在那里当摆设。虽然快到目标时间了,我也开始施压了,但其实,做不完也没关系。但是,催促你的人心里是有底线的,而这个底线是他的上级要求的,但他永远不会告诉你这个底线。出海出海出海一般是指到一线去把我们的存储产品卖到海外去。有很多地点可供选择,几乎遍布全球。但是,如果选择欧洲条件好的国家,补贴很少,如果选择非洲条件差的国家,补贴就非常给力。存储方面,每年需要出国的人数都有一个指标,几乎每个团队都要派人。除了极少数朋友愿意抛家弃子去海外打工,绝大多数人都不愿意去。所以,让你出国几乎等同于逼你离职,基本成了一种淘汰人的方式。我见过几个能力不错、经验丰富的员工被要求出国。他们虽然没有Committer那么勤奋,但是五年左右的时间积累了不少知识,也算是骨干员工了。不幸的是,由于这种死板的规定,我不得不选择离开开发职位。其实我不明白。这些工作了五年左右的员工,应该对自己工作过的模块非常熟悉。能达到这样的水平,适应华为的工作强度,实属不易。这本该是他们大放异彩的最佳时机,但华为却让他们出海、招聘新员工,经历了一个痛苦的学习和适应过程。其实这些开发人员的知识对海外销售用处不大:你已经掌握了你组负责的产品中的某个模块,里面有几百个结构,几千个字段,你能看懂每个字段是什么意思以及为什么设计它们。所以呢?所以呢?在销售时,客户对此不感兴趣。客户感兴趣的内容还是需要参加培训才能掌握。那么为什么不让新人做销售呢?选择离开其实是为了我。钱到位后,我最在意的有两件事:轻松的工作和美好的未来。只要满足这两点,我就不会考虑离开。如果两点都满足,那我誓死效忠。首先,主要是我自己的原因,因为我一直都知道在华为工作不容易。我家离公司大概40公里。楼下虽有班车,但班车早上08:30到(按行政标准上班时间08:30~18:00计算)。所以出发时间是早上07:10。也就是说,我最晚必须在06:50起床。刷完牙洗完脸,我就赶紧下楼去上车,然后在车上摇摇晃晃的睡着了。我做了好几次噩梦。梦见自己因为莫名其妙的原因错过了公交车,内心崩溃到了极点。两个月后,我受不了了,决定在公司附近租个房子,骑自行车上下班。这样就可以睡到早上08:50,周末回去一周一次。一开始还好,但随着工作压力逐渐加大,周末慢慢变成了一个人的假期,相当于周六晚上回家,还要坐地铁回出租屋周日晚上10点左右(周一早上睡懒觉)。这样我还能习惯,可是女儿一岁以后,她越来越可爱了,我舍不得离开她的感觉。我在我家客厅安装了360摄像头。每天吃饭的时候,我就看着母女俩玩。有时隔着镜头喊一声“甜甜”。我女儿以为相机是我,经常抬头看我。看着镜头喊爸爸,让人心碎。其实我在进公司之前就想过这个问题。当时的想法是,如果华为能安定下来,我就在郫县租个好一点的房子,把全家都带过来。我每天中午和晚上偶尔可以和家人一起吃饭。但后来我妈不愿意搬出去,我老婆也找了半天也找不到合适的房子,最后也没有什么事。此外,每天中午和晚上,我都要骑5公里左右的车回去看女儿。不太大。记得那段时间,最难受的莫过于每天晚饭后,从公园走回公司的那一刻。我会问自己,天已经黑了,为什么我还不能休息呢?我所做的事情有多有价值,它对我有多大吸引力?每天都这样,我还怎么享受生活呢?当时流行一句话,青春不过几岁,疫情三年。那种感觉与此相似。二是个人职业发展问题。作为一名新员工,在我的部门,我几乎不能和在公司工作一年左右的同事一起工作。有句话说得好:PL给你任务就决定你的表现。PL可以为您分配具有价值和曝光度的重要任务,以及吃力不讨好的杂务。作为一个新人,自然是从打零工开始,而且身边的人都是兢兢业业的,自己擅长的知识在这里就派不上用场了,发展前景可想而知。我仔细想过,想要达到骨干级别,至少需要两年的时间。这么长时间没有自己的生命,真的很不值得,而且年纪大了,面临被派往国外的风险。和我同级别的同事基本都是DE,做存储大概8到12年。工作年限相差无几,但作为新人,要学习各种工具,了解华为的存储架构,代码细节,甚至各种设计的历史原因。就算我全力以赴,也需要5年才能达到他们的水平。最关键的是,这些工作了10年以上的员工,还是比较尴尬:你觉得每天晚上2点回家很尴尬吗?又出现了30小时的连续工作。你觉得任务太重了,一周不可能完成。别人五天就可以完成,顺便做很多其他的任务。相比之下,我深知自己在精力、智力、能力上的差距。这种巨大的竞争压力也让我的神经出现了一些问题。记得有一次晚上10点,坐地铁回出租屋,到出租屋的时候已经快12点了。洗漱完想着玩玩手机,困了就睡了,结果一直到2点才完全没有困意。玩了半小时,试着睡了半小时,重复了几次,看看时间,已经5点了。那种时候最可怕:看到天快亮了,一点睡意都没有!那天我一直待到天亮,早上7:00过后,才在外面车水马龙的喧嚣和人群中睡着了。这应该是我这辈子唯一一次失眠了。08:55闹钟准时响起,我只好拖着疲惫的身子骑车去办公室,经历着从早上09:30到晚上22:30忙碌的一天。在既无安逸又前途未卜的情况下,我最终决定投降,放弃。其实还是有机会调到其他部门,开发新产品的,让大家站在同一起跑线上。如果以后有新的工作机会出现,我可能会提出跳槽,也许我不会离开华为。总结总体来说,华为的竞争力确实比国外的公司强很多。它利用残酷的内部竞争,让员工把工作做得尽可能漂亮。虽然这带来了大量员工的抱怨,但并不妨碍公司的快速发展和进步。终于离开了华为,现在回想起来还是很难过。想起了和大家拼搏的场景:PL在站会的时候和我们一个一个的设定目标,同事之间的讨论和帮助,测试讲课,Story设计,多个模块的同事。功能等等,还是让我觉得这是一次宝贵的体验。只能说,为了家庭,为了生活,我做出了妥协,放弃了做奋斗者的机会。最后,希望所有和我一起奋斗的朋友,都能如愿以偿,不留遗憾!近期热点文章推荐:1.1000+Java面试题及答案(2022最新版)2.厉害了!Java协程来了。..3.SpringBoot2.x教程,太全面了!4.不要用爆破爆满画面,试试装饰者模式,这才是优雅的方式!!5.《Java开发手册(嵩山版)》最新发布,赶快下载吧!感觉不错,别忘了点赞+转发!