
华为OD圆了我的大厂梦
--谨以此文记录我大学毕业后从一名技术小白,到通过华为OD的所有考核,其中的曲折历程! 希望与所有正在迷茫和奋斗的鱼友们共勉.
1. 不甘心就这样离开计算机行业
▼text复制代码2023年6月我本科毕业,专业是被称为计算机科班的计算机科学与技术.
讽刺的是当考研失败后,看着招聘程序员的岗位要求,对于各种技术栈我几乎一窍不通。硬着头皮去参加了两场校园面试,对于面试官的提问只能用羞愧难当形容了,最后无一例外都没有下文。于是对于校招找工作死心了,决定自己学习一段时间做几个项目再说。开始选择java语言进行学习.
2. 自学之路
2023年6月25日离开学校去了南京跟一个朋友合租,开始自己的学习。最开始不知道学习路线,也没有能找到朋友指导,只能自己搜索B站视频学,什么尚硅谷,黑马程序员等哪个视频播放量高就看哪个,期间因为不懂,还学了jsp,jdbc这些几乎已经淘汰了的技术。后来慢慢看的视频越来越多,也能评估视频的质量了,最终还是觉得黑马程序员的视频是最好的,也符合现在企业开发的主流技术,陆续学完了黑马的java基础,spring,springmvc,Maven,springboot,mybatis等技术栈。等做完黑马的瑞吉外卖就开始投简历了,投简历大概15天就约到一个杭州的面试。
第一次正式的技术面,比我想象的简陋,面试官直接加我的微信,然后通过微信电话面试,都没有视频。简单问了我的一些情况,我都如实回答,然后问了一些基础的八股文,比如hashmap的底层原理,有多少种方法创建线程等,基本没问项目,大概面试了二十几分钟,自己表现也让面试官挺满意,接着就开始问我的期望薪资,什么时候能上班,并且明确告诉我本轮面试通过了。但是还有一轮领导面试,让我后面准备一下。面试结束后,等了半小时,面试官给我发消息说,领导不用面了直接给我发offer。可能是看我要的薪资太少,懒得浪费领导的时间。
2023年10月19日入职,就这样我开启了人生的第一份工作!
3. 杭州之行
第一份工作签的三年的合同,试用期长达6个月,但是我还是庆幸是一份纯正的java开发工作。入职后才发现部门很小,加上项目经理一共13个人,7个后端开发,3个前端,2个测试。公司总部在北京,杭州只是一个研发部门,在一个写字楼租的房间办公。
没有任何过度阶段,入职第一天把各种资料办好,公司发了一台不知道几手的笔记本,开始装开发工具和配置环境。领导告诉我每天需要写日报,讲述自己当天的工作然后发给他才能下班。第一天领导给我的代码任务是让我写一个小的demo,实现数据库的增删查改,下班时把代码提交到gitlab仓库。
入职的第一周,几乎没有啥太多业务上的活,主要是熟悉部门负责的项目,把代码拉到本地看代码。全程没有任何资料文档啥的,也没有人跟我讲业务,只能自己根据代码看在干什么。说真的,结合AI工具每行代码能看懂在干啥,合在一起根本看不懂为什么要这样做,领导怎么说,我就怎么干呗,想找旁边的同事跟我讲一下这块代码的业务,但是他们拒绝。脱离业务看代码这样能搞懂业务吗?我真的怀疑,反正我感觉云里雾里,最多看懂了写代码的一些风格。硬着头皮看了几天后,领导简单问了我这几天的一些成果,我只能把自己看懂的跟他说了。
接着进入第二阶段,领导给我讲了一个需求,是一个为运维人员开发的小项目,让我独自完成这个项目。从理解需求,项目架构设计,到数据库表的设计全部我自己进行。磕磕绊绊,干了两个月,遇见不会的就现学现用,历经不知多少次加班,最终项目成功上线到生产环境了。这个项目最后一共有8张表,说实话项目不大但是做完成长很大,虽然加了很多班,但是自己还是很开心能有一个从0-1写项目的机会。其中遇见了很多问题,例如连接池的参数设计,悲观锁保证多个服务同时更新数据的一致性,OOM内存泄漏怎么排查并解决,怎么自定义jar包推送到Maven中央仓库给其他项目引用等等。
项目完成后,领导没有其他需求给我了,开始让我跟同事们一起配合开发。 这期间解决比较重要的一个问题是,当时公司使用了一个开源项目叫海豚调度器DolphinScheduler,公司在这个开源项目上进行自定义插件的开发,其中每次更新代码都是手动打jar包,然后给运维人员让他们部署在服务器上。部署流程非常落后,效率低下。然后让我配合运维人员进行改造升级,需要完成整个更新自动化部署,实现CI/CD。开始接触一些部署项目的知识,加上我上一个项目里面有一个从nacos拿配置的功能,于是我将部署流程中所需要的配置信息都从本地文件移到了nacos上,然后将代码整合成两个仓库,使用git submodule的形式进行关联,最终和运维同事配合实现了GitLab+Jenkins+K8s的流水线自动化部署。
再后来除了零星跟同事们配合开发接口外,也没有其他活给我。慢慢开始让我做数据验证的工作,一做就是两个月,基本没有写代码的活。
很快6个月后,签了转正合同,也拿到了杭州市半年的应届生补贴(这里特别推荐杭州工作,应届生补贴基本是国内城市的天花板了)但是因为部门还是没有太多写代码的活,总是让我干测试相关的活,加上部门技术氛围不好,第七个月深思熟虑决定离职了。当时已经认识到很多大厂的朋友,从他们那里了解了很多大厂的工作情况,非常渴望去大厂,但是大厂对于算法题的要求很高,而自己基础又太差,在学校就没做过几个算法题,基本是一个算法小白。于是决定破釜沉舟用几个月的时间专门学习算法题目,准备华为OD的机考。杭州消费很高,裸辞后没办法在杭州生活下去,所以决定换一个城市生活,因为向往大海,所以想找一个海滨城市生活。我将目光沿着祖国的海岸线寻找,最后决定去辽宁省大连市,这里消费没有南方城市那么高,气候怡人,三面环海,除此之外这个城市还有24小时免费学习的图书馆(是一个公益项目叫城市书房,特别推荐),简直完美满足了我对学习城市的全部期待。
4. 奋斗在大连
2024年6月19日,在大连租下一个房子,开始学习。算法之路注定是坎坷曲折,想要获得你从未获得过的东西,就必须付出你从未付出的努力。 本来计划3-4个月能够将算法题基础打好,结果学习过程比我想象的还要艰难一些,其中艰辛,声泪俱下! 可以无数次失败,但无论如何我始终没有放弃,只有不断加强对于目标的渴望,才能坚定自己战胜困难的信心。刚开始有的题目需要做两三个小时,甚至更多。好不容易做完一个题目,感受到的不是喜悦,而是看到还有几百个题需要做感到痛苦,不知何时才能优秀。加之做完一个题目,过几天再去复习发现又不会了,信心在记忆流失的过程中备受打击。于是跟一些算法优秀的大厂朋友们请教他们最初的算法学习情况,当听见他们说每一道题也是做过最少三四遍,才找回信心,相信自己当前的困难是每个人的必经之路。同时我也不断改变自己的学习方法,了解到很多计算机大佬都曾有过手抄代码的经历,我也开始采用手抄代码的方式进行学习,刚开始记不住就手抄代码。(到现在笔记本上已经手抄累计2w行代码了,非常推荐在编程的初期手抄代码)。
除了学算法题外,java项目方面我就是学习鱼皮的项目,学了大概五六个项目吧。最新的项目我正准备这两天学,挺推荐鱼皮的项目的,很不错,是企业正在使用的流行技术栈。
路虽远,行则将至。2024年12月30日,我已经累计做了400-500道算法题,决定参加华为OD的机考,最终395分通过考试。
5. 华为OD的面试
①.性格测试
性格测试通过后,德科的hr开始问我基本信息,想去哪个城市,期望薪资等等. 我说期望去上海,然后让她帮我投递上海的java岗。因为我本科学校不是华为目标院校,所以很多部门不要我的简历。后来有一个部门跟我沟通了问我愿不愿意转C++,可以用java面试,通过后转C++。当时自己java才算刚入门,不想就这样放弃掉,接受不了转语言,所以拒绝了。就这样等到过年后,跟hr说帮我也投递深圳的部门吧,直到2025年2月11日深圳有部门跟我约面试。
②.资格面试
需要提供上一份工作的薪资流水,学历材料等基本信息材料。2025年2月14日华为的hr对我进行面试,详细了解我简历上除技术栈外的其他个人信息,问了裸辞的原因,家里情况等。第二天告诉我资格面试通过,开始约技术面试。
③.技术面试两轮
两轮技术面都约在同一天了,2025年2月19日下午一场,晚上一场。两轮技术面,每轮大概一小时。先是按照简历情况问项目,穿插问八股。因为我有一个从0-1工作的项目,所以两个面试官都问的非常详细,具体的技术细节,怎么实现的。从项目需求到实现全部说了一遍,具体问项目中遇见的问题,怎么解决的,项目有没有不好的地方,可以怎么优化等等。最后是手撕代码,面试官通过聊天框发送题目信息,我这边共享屏幕然后在idea上写代码,最后做完题目面试官还问了思路,时间复杂度,空间复杂度,是否能够再优化,讲优化思路等。面试结束第二天,告诉我技术面通过,定级D1。
④.主管面
最后是主管面,2025年2月21日进行主管面。大概半小时,主要问工作经历,了解学习能力,详细问裸辞这段时间的学习情况,因为我自我介绍里写了喜欢读人物传记,问了我最印象深刻的人物是谁,从这个人物身上学到了什么,了解期望工作地点等很全面,主要了解个人的综合能力。第二天hr告诉我主管面通过。 接着是定薪,然后走审核流程。(截止现在已经在走审核了)。
结尾: 从毕业到现在,快两年了,至此自己才算是正式进行程序员的行业,开始有底气说自己是程序员。 希望跟大家共勉,决定人生命运的不是咱们今天所处的位置,而是未来咱们想要成为什么样的人!!! (最后希望自己这段曲折的经历能给一起在自学的伙伴们一些经验,有想要详细了解学习路线的伙伴,也欢迎大家加我微信:15282331520,可以跟大家详细分享,因为自己这段历程也是踩了很多坑,非常能够理解自学过程中的迷茫和困难)
