【华为入职一年还愿】安得offer千万间,大庇天下学士俱欢颜
这是一篇时隔两年的还愿
自我介绍:学弟学妹们,你们好呀~ 我是两年前活跃于牛客网的老牛友了,算你们的学长吧,我于2021年毕业于西安的西北大学-软件工程,本科就读于中国石油大学(北京)-能源与动力工程。2021年8月份,入职华为西安研究所-运营商BG-服务与研发管理部,司职Java大数据开发工程师,如今已经工作一年了。
回想起两年前找工作的坎坷心情,一切仿佛还历历在目。
2020年,疫情的元年,那年我研二。由于疫情的封锁,从春节假期回家之后,直到来年的8月底才返回学校。在家的那半年,是我从高考以后就再也没有过的大量的陪伴家人的时光、也是为我秋招成功拿到工作机会打下基础的学习时光、更是我从一名跨考生真正接触互联网获得实习机会的一段时光。。。而如今我已经工作一年,难得有时间回到牛客,看看自己曾经发过的帖子,和前辈、学弟学妹交流过的聊天记录,心生感慨,是时候写点什么了。
下面是本文的目录
- 抛砖引玉:我为什么跨考、我如何成功转行的,是什么支撑我一路走到现在?
- 拿到腾讯、阿里offer后,我为何选择华为?
- 我在华为服务与研发管理部的一年
- 我的2020年秋招面经以及笔记分享
1 抛砖引玉:我为什么跨考、我如何成功转行的,是什么支撑我一路走到现在?
从烧锅炉专业到软件工程
2014年,你还记得那年你在干什么吗?
高考是大部分中国青年迈不过去的回忆。2014年是我参加高考的一年,那年我在背诵金砖国家会晤的政治热点,我在和同学疯狂比赛着刷理综试卷,那年我也告别了许多朋友、天各一方。那年,我选择了北京,选择了中国石油大学,选择了一个我一点都不了解、但是觉得高大上、更重要的是当时是不浪费我高考分数的一个专业:能源与动力工程。
其实能动是一个很好的专业,就业率一直在工科专业里排名靠前。但直到我大三在胜利油田和暖气厂参与实习时我才真正明白,能动之于我本科学校的行业背景,其实就是烧锅炉专业 —— 先不要笑,烧锅炉其实很重要,不管是发电厂、造船厂、炼油厂,这个专业都必不可少,专业的锅炉工是石油工业的基础人才。
但是,在了解到本科专业的前景和局限性后,我意识到我想要一个不一样的未来。
1.1 从开始学计算机知识,到考研经历挫败
和所有非计算机专业的理工科大学生一样,我本科专业能接触到计算机知识的学科,只有大计基(大学计算机基础),甚至C语言都需要自己选修。
在下定了决心要转码之后,我从大三的3月份开始准备考研。别的同学在上专业课时,我在桌子底下翻着C语言之父谭浩强(不是)的C语言程序设计,当别的同学下课后撸串打LOL时,我在图书馆和健身房修炼自己(其实我也有打LOL,但是我不说)。
在2017年的12月13号,我在中国政法大学考场进行了研究生考试,印象非常深刻的是当时遇到一位一起考研的哥们,他第一学历是专科,先是专升本到211北工大,再是当时参加考研冲击985的北京航空航天大学,非常励志。
我第一志愿报考的是厦门大学,离我家很近。不巧的是,考研成绩出来,虽然总分排名靠前,但我高数成绩不是很理想,离厦大历年的高数分数线还差了一分,于是自觉无望的我开始考虑调剂,整个寒假都在不停地寻找着各种招收调剂的院校和研究所。
3月份,厦大的复试通知出来了,因为当年的高数考试难度较高、厦大竟然破天荒地把高数分数线下调了5分,我进入了复试名单。然而复试科目出来,要考一门《离散数学》,对于跨考生来说最怕的就是考察这种选修的计算机科目,我拼命准备了一周,坐上前往厦门的飞机,然而还是折戟沉沙,当时走出考场,一个人漫步在3月份的环岛南路,厦门的海很美,但在我眼里却是灰蒙蒙的。花了大量时间学习新学科、使得我找本科专业工作完全没把握,也还没有找到合适的调剂院校,未来我该怎么办?尚未步入社会的我,头一次感觉到社会扑面而来的压力。
1.2 抓住机会,逆转局面
从4年后的今天去回顾当时的自己,那时的挫败是值得的,代价可控、回报巨大 —— 我学会了在无比失落的现状中打起精神,继续去做该做的事,更学会了珍惜自己所拥有的东西,避免好高骛远。
考研调剂短短的一个多月的时间窗口,任何一点机会都需要把握住。幸运的是,半个月后,通过某考研信息整合平台(翻了电脑记录实在找不到是哪个了,感谢恩人)了解到西北大学软件工程专业在招收调剂学生,我立即订了北京前往西安的高铁票。
这一次复试很顺利。
在西北大学顺利地进行了机试和面试,两天后我带着研招网上面的预录取状态回到了北京。
四年前的我不会知道,这一次的调剂之旅给我未来的人生产生了天翻地覆的改变。
考研之前,我原本计划好,读研我要从北京回到南方。原本顺利的话,在厦大求学的自己,或许每个周末都能坐着高铁回到家里看望父母,毕业以后或许会去深圳开启自己的职业生涯。但是人生没有或许,既然拿到了西北大学软件工程研究生这个宝贵的就学机会,便只有心存感激、努力实现自己当初下定决心跨考的初衷。
我深知自己作为跨考生,基础知识相比科班生要弱一些,我对自己研究生的目标是,在毕业之时达到一个中等计算机研究生的知识水平。事实证明我不仅达到了,还超出了预期。
研究生期间,我就读在西北大计算机学院的智能医学影像实验室,做的是医学影像MRI的乳腺肿块检测和分类的课题,发表过一些成果。在做计算机视觉相关的算法学习之外,科研之余我还钻研了C++后端开发的一些知识。
很快,到2020年,秋招开始了,是骡子是马该拉出来溜溜了。
2 拿到腾讯、阿里offer后,我为何选择华为?
2020秋招对于我来说,分为这么几个阶段:
- 暑期实习面试 2020.3月初 - 5月初
- 深圳腾讯暑期实习 2020.6月初 - 2020.8月底
- 结束实习,进行秋招 2020.9月初 - 2020.10月中
2.1 暑期实习是秋招的预演
从2020年寒假回到家开始,我便开始准备暑期实习的面试。由于疫情的突然爆发,无法外出的客观条件反而助力了我潜心备战。从年初到3月份,我啃完了《C++primer》、《STL源码剖析》、《计算机网络-谢希仁》、《操作系统》、《MySQL必知必会》、《LinuxUnix系统编程手册》等书,并整理了内容比较丰富的笔记(下文我会附上附件),用C++实现了一个线程池、做了一个FTP服务器项目。
3月25号,我进行了我人生的第一次面试,当时面的是阿里供应链C++后端开发岗位(面经请见附件),面试官给我的评价是工程实践经验不足、算法思想还可以。
那段时候经常上牛客和牛友交流,和西北大、西电的七八个牛友小伙伴拉了一个微信群,整天就是分享面经、互相提问各种知识点,这群友好又努力的朋友无形之中促使我养成了在秋招中多面试、多总结的习惯。后来我常常遇到一些学弟学妹在秋招过程中,会有不敢面试、害怕面试表现不好失去机会的心态,我总是鼓励他们积极去尝试,只有面的多、才能面的好。一份简历,面个几十遍,无论如何都能做到对答如流,至于简历之外的知识点,也只有多面试才能发现自己答不上来的缺口,继而查缺补漏。
从3月份到5月份,我投递了的暑期实习机会有:阿里供应链、腾讯、蘑菇街、字节、陌陌、华为勇敢星实习生计划(Cloud BU)、360、便利蜂、OPPO、七牛云、thoughtworks、京东数科、深圳富途、招商银行、百度、拼多多、网易游戏、图森未来。
还挺多的吧,但是并不是每家公司都诚意满满,大部分公司投递完之后甚至都没有收到笔试通知、做了笔试之后也没有发起面试邀请(我现在的东家,华为当时也没有对我发起面试邀请。。不过我在暑期实习阶段通过了机试,让我在后面秋招阶段不需要再进行机试,也是一大收获)
我暑期实习面试了有阿里供应链C++后端开发(5面通过)、腾讯CSIG C++后端开发(4面通过)、OPPO后端开发(2面挂)、网易互娱(1面挂)
面试完等待开奖(通知录用)的时间是很煎熬的,每天上牛客网搜着相应公司相应部门的讨论帖,看着一起参加面试的牛友很多已经发帖还愿,表示自己已经收到实习offer,自己却还渺无音讯。只能继续准备着下一个面试机会。
功夫不负有心人,在经历完腾讯4面、阿里5面之后,4月底的时候收到了腾讯的实习生录用函,5月底的时候也收到了阿里的录用函。
由于录用时间差了一个月,加上当时腾讯是自己的第一意向公司,阿里还要求技术栈转Java,所以实习最终选择了去深圳腾讯。在6月份前往深圳之前,被当时的Leader告知新项目要使用Golang作为开发语言,于是在5月底还花了两周狠狠地啃了七牛云创始人许式伟的《Go语言编程》。两年之后的我,从事着Java开发的工作,也知道了对于程序员来说,语言真的不是什么门槛,并不是不可跨越的隔阂。
2.2 宝贵的实习经历,让我了解到互联网行业的运作形态
不到三个月的实习生活,让我的成长走上了快车道。实习之前,我对软件行业的认识只停留在书本一个个知识点上,对于什么是产品、产品的架构为什么重要、什么是前后端分离,程序员之间要怎么配合,我都不甚了解。
打个比方,我从一个跨考生到计算机学科的硕士,就像一个未曾见过大海的人在海里游泳,感觉大海无边无际,不明白怎么使用自己所学的东西去指引航向。通过这次实习经历,让我发现自己并不是游在海里,而是一个大湖里,对于信息行业这个大湖,我也能看到一些湖岸、看到一些水草,明白了许多行业规则,知道了书本上的知识是怎么运用到生产过程中的,湖光掠影,从此有迹可循。
对此必须要感谢企鹅当年给的宝贵机会!
2.3 秋招开始,杀回战场
8月底,结束了实习工作。临回学校之前,Leader告知HC紧缺,秋招不一定能给我留下一个位置,让我积极参加秋招。当时心情非常失望,为了争取一个留用的机会,实习的近三个月里,我一直全身心投入到实习工作中,产出很可观,实习部门对我也比较认可,一度让我以为转正留用是手拿把攥的。错过的三个月间,秋招一直在进行着,许多公司的提前批已经结束、甚至不少公司的正式批已接近尾声了,等待我的只有是再次杀入秋招战场,去抢最后的车票。
有了考研失败接受调剂的经历,面对这次的情况,我显得更加从容。和Leader交流完的第二天,我坐上了回到西安的高铁,整个返程途中,我一直在查询着各个公司的招聘信息,统计着各个公司的秋招Deadline。
也正是那时,投递了我秋招最重要的一个选择:华为运营商BG-服务与软件研发管理部。
正式秋招阶段,由于简历投递偏晚,给我发出面试邀请的公司并不多,从8月31号回到学校,到9月底之前,做了不知道多少公司的笔试,但给我发出面试邀请只有三个:平安产险、字节跳动和华为。
机会是留给有准备的人的,我准备最充分的华为服务与软件研发管理部,在9月14号给我安排了面试。
9月14号是一面技术面和二面技术面。
当时的一面技术官是一个肤色偏白、谈吐儒雅的大哥(后来我入职了才发现,这位大佬就是我试用期的导师 —— 刚哥,这段经历也是十分的有缘分),整个面试过程分为5个流程:
- 自我介绍
- 过往项目介绍
- 基础知识考察
- 现场写代码题
- 笔试题目复盘
自我介绍就不用多说了,每个人根据自己简历的内容,介绍自己的学业经历、技术栈、获奖经历和主要项目。在过往项目阶段,刚哥主要让我介绍了在腾讯做的项目,以及项目中我的职责。另外我也主动介绍了一下在校期间的深度学习科研项目,毕竟是伴随着论文产出的,面试时还是要注意技巧,展示自己的成果。
在基础知识考察方面,虽然未来工作的主要工作内容是围绕Java大数据技术栈来展开的,但由于当时投递的是C++技术岗位,因此主要问的还是C++相关的知识:什么虚函数呀、内存泄漏呀、Linux相关的命令、C++的内存管理,以及C++和Go语言的区别等。
然后就是现场手撕代码了,由于是远程面试,手撕代码是在考生的本地IDE上进行,通过远程共享的形式分享给面试官。当时我做的题目难度也不大:给一非空的单词列表、返回前K个出现次数最多的单词。写了大概20多分钟,本地跑了几次用例没有全过,调试的过程中刚哥稍微点拨了一下,用例顺利通过了。
最后还简单复盘了一下当时机试所做的题目,由于是在3月份做的华为机试题,已经过去快半年,印象不是很深刻了。刚哥给我复述了一下当时做的笔试题内容,我根据自己的理解表述了一下当时的解题思路,至此面试就顺利结束了。
总的来说,华为的技术面试难度在大厂中算是中等难度,难度没有很苛刻,主要考察还是面试者的基础知识以及在项目中灵活运用的能力,此外交流能力也很重要(毕竟我厂动辄拉人上会交流的风格在业界也是闻名的)。手撕代码环节,华为其实不要求能够一次全部通过用例,但是起码的解题思路是要有的。
二面的形式和一面基本上差别不是特别大,流程也基本是自我介绍、介绍项目、知识问答、手撕代码。但是对基础知识的考察明显没有那么细致了,更多的是问我对项目的理解,对算法的理解。比如:最近做项目遇到的困难和解决办法、假如要用一个数据结构来完成加减乘除的运算,用什么数据结构?对代码规范的理解等。最后手撕了一道介于leetcode简单和中等之间的题目,结束了二面。
顺利通过了一面二面之后,会受到短信通知准备第二天的主管面,也就是终面。
另外要感慨的是华为的面试系统做的真的非常不错,在招聘网站上能看到实时的进展。可能你觉得这个功能稀疏平常,大厂都有啊。但从我的面试体验来说,不管是腾讯、阿里还是字节,招聘主页上的进展都是滞后很久才会刷新的。特别是字节,当年是各部门内部恶性挖人,宁愿学生泡在自己池子里也不放给别的部门发起面试,此类种种现象非常严重,我当年面试字节,我的内推人、我微信联系的HR、到面试前的HR、到面试时的面试官都是不同部门的,但最后我都不清楚自己面试的是哪个部门,就糊里糊涂地被挂了,体验非常不好。但是华为的招聘主页把这些Gap都统一起来管理了,这点还是非常值得肯定的。
9月15号,主管面。面试之前,心情还是非常忐忑的,但是面试一开始,我的紧张感就消失了。
面试我的主管是一个非常有亲和力的男人,后来我才知道他就是我未来部门的部长,强哥。主管面的面试内容较前一天的面试有很大区别,主管更关注学生在项目上的理解,并更注意考察学生们随机应变、解决问题的能力。如果说一面二面需要的是智商,那么主管面考察的是人的双商。
整个过程来看,强哥首先问的是简历上的科研项目,对于没有问我互联网项目,而是直接问科研项目这点,我当时还是很意外的。主要问了我这个项目目前的结果达到多少了?性能指标是什么?为什么假阴性比假阳性更加需要避免?并且让我讲解了下该项目所使用的深度学习模型faster rcnn的原理。最后问了我一个让我印象很深刻的算法问题:说出处理这个项目类间不平衡的问题的几个办法。当时我回答了数据扩增、采集更多的数据、在自然图像上进行预训练这些方法,面试官还觉得不够,我想了想,最后说可以引入Gan进行样本生成,最终这个答案才达到了他的预期。为什么说印象深刻呢,因为入职之后发现强哥并不是做AI算法出身,对于他对算法的细节如此了解还是很佩服的。
问完项目,最后是问一些个人相关的问题,比如愿不愿意转java、你觉得你的学习能力怎么样之类的,对于这类的问题按照自己的想法坦诚回答就可以了。当然我当时的回答是愿意转技术栈的。
之后就顺利结束了华为的整个面试流程。不吹不黑,就算我现在不是身在华为,我也需要说一句:华为的面试体验确实是我面试这么多公司里最好的,整个面试的流程是最规范的。并且结束完华为的面试,也让我有信心,我觉得我能拿到华为的offer!
2.4 选择offer,其实是选择自己未来十年的人生
在结束华为面试的第二天,我同时收到了腾讯和阿里的意向书
由于之前拿到了阿里暑期实习的offer,有资格参加阿里的秋招绿色直通车面试,于是我在实习结束后,远程参加了阿里的直通车面试。当时一起竞争的都是参加了完整阿里实习的同学,并且他们的履历更好,加上当时我的发挥一般,也就没有放在心上,不抱太多希望。
而腾讯在我结束完实习工作之后,就没有再联系过我,包括我的前任Leader,也并没有再给我抛出过橄榄枝,甚至我在腾讯招聘主页上的状态,一直都是实习结束审核中。
两家公司仿佛是约好了一般,唯恐谁晚开奖就会失去潜在的新员工,又害怕早开奖而失去薪资上的优势,于是在9月16号当天,我先后收到了腾讯和阿里的录用意向电话,收到了录用意向书邮件。
这对于我来说,既是久旱逢甘霖(瓢泼大雨那种),又是陷入了选择的难题。
去腾讯?
作为国内互联网企业中不可撼动的体量佼佼者,或许能给我带来较为稳定的职业生涯,不错的技术成长,更重要的是深圳离家不远,自己也有在鹅厂实习的经验去阿里?
引领了国内电商时代,也有着可能是国内最好的Java技术氛围,一帮充满热血的同事,一个没有去过的美丽城市还是,等待华为?
说实在的,华为没有互联网企业那样对年轻人的吸引力。腾讯的工位上,摆满了企鹅公仔,午饭时光的食堂,游戏部门的员工拿着海报和礼物,邀请着员工参加游戏内测,那是每个当代年轻人都期待的体验呀。但是。。。为什么是华为呢?
但是什么?如果这是一篇宣传贴,你是不是觉得我要开始燃了?
是不是觉得我要开始说,从2019年5月开始,美国把华为列入“实体名单”,对华为进行技术封锁?
还是觉得我要开始说,2020年8月美国政府的芯片禁令,让华为手机生产线饱受冲击,华为的自救之路刻不容缓?
或者觉得我要说,我立志要加入华为,立志要突破美国封锁,为中国科技企业奉献自己的力量而放弃其他的机会?
其实都不是,我们每个人都是时代的一粒灰尘,我们大部分人的渴望都是平庸的,都绕不开油盐柴米、家长里短,也都想一路坦途、升职加薪。正是每个人的原始渴望,汇聚成了这个时代的样子,人民创造历史嘛。
对于外部力量对华为公司的影响,我有想过,也和大部分人一样有不甘过,每一个受到历史教育的中国青年都会为此产生共情、甚至涌现出一种动力。但是在这种情绪之外,两年后的今天我回想起当年的选择,更多的是出于现实的考虑:
- 我来到西北大学之后,相识了我人生的知己,一个陕西女孩,我想要留在西安和她成家立业
- 华为能给我一个优厚的薪资待遇,一个不错的成长环境,一个值得去奋斗的事业
此外,西安是一个生活成本比杭州和深圳低得多的城市。出于这些考虑,我没有立即接受已经到手的offer,而是在催促中等待了一个月。
一个月后,10月14号,华为开奖了。
3 我在华为服务与研发管理部的一年
如今入职华为已经一年,谈起这些的心态和当初也有所不同了。
在学校时大家会隐隐之中互相比较offer的总包、甚至互相比较offer的数量,虽然谁也不说,但是这种小情绪还是会帮助人努力的去找工作。就像上学的时候比较考试的分数,篮球场上的得分、一千米体测的成绩一样。
工作后,和同学之间每个人的赛道都不同了,有时候也会羡慕别的同学朝九晚五,当然别人也会羡慕大厂给的待遇。但是要问我后不后悔当时的选择,我的回答一定是一点也不,再来10次,我也会做这个选择。
在服务与研发管理部的这一年,真的学到了很多,我所在的部门是做大数据平台的,基本上是基于hadoop技术生态、K8S和通用的Java后端技术栈做起来的平台,面向全球的运营商客户,有很稳定的营收。即使是在经济形势更加严峻、全球不稳定性凸显、许多公司许多部门开始输出的今天,华为的运营商部门依然是稳定如初,俨然是公司的压舱石。
同时部门的技术氛围非常之棒,给予了我很大的技术成长空间,今年上半年,参加华为西安研究所的软件大赛,还不负众望地拿到了TOP3荣誉。
公司离我最近的一个健身房,工作了更要保持锻炼,避免久坐型肥胖~
这一年在生活上,选择华为、留在西安也是成全我和对象的一个最佳选择,通过自己的努力,今年上半年也在西安按揭拥有了自己的小房子。
另外,下个月我们就要去拍婚纱照啦,希望大家祝福我们!祝大家都能够拥有想要的未来,越努力,越幸运~
4 我的2020年秋招面经以及笔记
不知不觉已经写了一天,也该上点干货了。我秋招的所有面经、C++相关的笔记都在下面奉上,希望能帮到你们~
4.1 秋招所有面经:
某度网盘:
链接:https://pan.baidu.com/s/1bnJ-D73w1uGTFczgFvjNcg
提取码:6666
某hub:
https://github.com/jaynewchen/share
4.2 《C++primer》阅读笔记
某度网盘:
链接:https://pan.baidu.com/s/1iaElnBAj3DWAQ_hvfF7vXw?pwd=6666
提取码:6666
4.3 《STL源码剖析》阅读笔记
某度网盘:
链接:https://pan.baidu.com/s/1sdU79rq9Iy2XlOfVtT0fEQ?pwd=6666
提取码:6666
某hub:
https://github.com/jaynewchen/share