【就业之星】软件工程1804班刘德

发布时间:2022-01-06 10:04   浏览量:

刘德,男,汉族,中共党员,湖北黄冈人,软工1804班学生。曾任第七届世界军人运动会志愿者、算法协会会长、班级学习委员、计算机2005班导学员。曾获国家奖学金、全国大学生数学建模省级二等奖、蓝桥杯程序设计大赛国赛优秀奖。熟悉JavaGo编程,熟悉使用SSMSpringbootDubbo+ZookeeperGin框架。202111月签约百度,年薪约30万。

大三暑假 我遭遇严重的能力恐慌

2021年年初,辅导员吴春娥老师就开始在年级群推送各个公司的实习招聘信息,并反复提醒“不实习就找不到工作”。我的目标是就业,为了增长项目经验,也为了简历中的内容更丰富,我在今年5月份投递了杭州恒生电子公司的暑期实习岗位,并且通过面试。
   202169日,大三的暑假还没到来,我乘坐高铁前往陌生的城市——杭州,到杭州恒生电子公司实习。613日,我正式入职,办完相关手续后,我坐在自己的工位上,看着窗外鳞次栉比的高楼大厦,这是我第一次体验在高高的写字楼上班的感觉。我满怀着激动的心情,憧憬着未来的实习生活。

但是,几天后,我就感受到了前所未有的岗位压力。

压力来自于薄弱的专业基础。那是入职第三天的下午,导师将我喊到一个小办公室。他为我详细介绍了当前项目的整个流程。在介绍过程中,他提到了许多专有名词。比如,反向代理、网关、微服务架构、dubbozk……这些专有名词,没有任何老师讲过,我也从来没有听说过,听起来非常陌生,我一下子产生了严重的“能力恐慌”。

在校期间,我拿过国家奖学金,也冲击过学校最高荣誉——卓越之星,还担任过算法协会主要负责人,甚至还以“朋辈讲师”身份登台,为同学们上过算法课。我一直认为自己的专业能力不是很差。当导师在讲完整个项目流程,问我是否听清楚的时候,我愣在了原地,第一次上班的兴奋之情瞬间消失殆尽,自己就像滥竽充数的南郭先生,“家底”被人当场揭穿,脸红、尴尬,我一下子无所适从。

看到我的表情,导师估计已经明白了我的接受程度。他换了一个话题:“今后是否想留在公司实习转正?”

我积极地回应:“想留下来。”

导师脸色突然转变:“实习生中肯定要有淘汰,如果你想留下来,就要和其他985211的实习生一起竞争。如果你不想被淘汰,你就要表现得更优秀,领导才能看到你,恒生才会留下你。

听完导师的话,我的压力陡然剧增。这是我初次接触真实项目的开发,我很想把握这个提升自己的机会。但是,我如何才能表现得更好?如何才能留下来?

我暗暗下定决心,一定要留在恒生。

从此以后,尽管在公司忙碌了一天,但我仍然会在光线暗淡的出租屋恶补专业知识。

我所在的项目组使用的是dubbo+zookeeper分布式框架,而我在这方面是一个彻底的“小白”。所以,当务之急就是抓紧自学。

目前的唯一方法就是上网自学。我打开dubbo3zookeeper的官网,一堆陌生的专有名词映入眼帘,我将一个个陌生的词汇输入到搜索框,打算去弄懂每一个知识点。没过多久,我就发现这是一个无限循环的“死结”。因为,一个陌生的概念总是关联着另一个或好几个陌生的概念。越往下看,碰到的陌生概念越多,我的耐心一点点被磨灭。

明天再看吧,今后在项目中碰到了再看吧……放弃的念头总是萦绕在我的脑子里。但是,另一个声音也告诉我:读不进去你就直接回家种田吧。于是,我只好硬着头皮一点点地往下看。那个周末,我基本上看完了官网介绍的所有知识点。最后,我根据这些内容,完成了一个简单的分布式定时发送邮件的项目,部署到云服务器上。

在恒生电子实习的两个月,我接触到了真实的项目开发,熟悉了反向代理、dubbozookeeper等技术,也了解了网关、微服务架构等概念我也从刚来公司时的“小白”,变成了可以单独完成一个小模块的“员工”。最终,领导同意了我的转正申请,我也在大三的暑假,顺利拿到了恒生电子的offer

水往低处流,人往高处走。既然已经有了后路,那么我可以放手一搏,向更高的平台、更好的公司进军。另一方面,我不甘心自己的秋招还没开始就已经结束。

于是,我开始在牛客网上留意各大公司的招聘信息,并海投简历。不管是中厂还是大厂,我都投了个遍。

步步惊心 止步字节跳动的三面

817日,在海投简历之后,我收到了字节跳动的面试邀请,这是我的“秋招首面”。看到邮件上的消息,我仿佛有一种已被字节跳动录用的感觉,激动的心情简直无处安放。

一面的当天,我用“凡尔赛”式的口气在室友群里广而告之:“兄弟们,下午6点,我有个面试,请你们回来的时候保持安静!”紧接着,“加油”的字样开始在我的手机上刷屏,我的心里有一点小小的得意。

这是我的第一场秋招面试。为了确保万无一失,我提前20分钟,点开了面试链接,面试官还没进房间。我赶紧借这个时间背诵自我介绍。在生活中,自我介绍是人与人打交道的第一句话,在求职过程中,自我介绍则是招聘单位对求职者的首次“考量”,这个印象分很重要。

过了几分钟,我看到了面试官的视频通话请求,点击“接受”后,面试官的头像呈现到我的电脑屏幕上。他戴着黑框眼镜,一脸严肃。我主动向他打招呼之后,他让我先做自我介绍。刚才的“临阵磨枪”效果明显,自我介绍环节中规中矩,没有出现纰漏。

自我介绍之后,面试官根据我的简历内容提问:“你了解哪些分布式的协议?”

“我主要从dubbo3官网上看了有关分布式的一些理论,了解过RPCTriple等协议。

面试官摇摇头说:“看来你不是很了解,我们换一个问题。”面试官的回答让我顿时后悔不已。

为了在秋招中“推销”自己,我在简历上写了一个dubbo+zookeeper的分布式项目。但是,这个项目我只学会了如何配置相关的运行环境,相关理论知识也仅限于官网上的一点内容,并没有对分布式的基础理论做深入的研究。

被面试官一眼看穿之后,我感觉要通过本场面试是不太可能了。于是,我马上调整心态,打算以体验的态度继续进行接下来的问答。

令人意向不到的是,在后续的流程中,面试官所问到的计算机基础问题我都回答上来了,有些问题我还扩展了相关知识,说出了深层次的原理。尤其是最后的编码环节,我仅仅用了一分钟便完成了面试官出的一道贪心算法题。

“这么快就写完了吗?那我给你一个测试用例来输出答案看看。”面试官对我的算法能力有点诧异。

于是,我输入面试官的用例,并且在屏幕上输出了结果。面试官连连点头:“不错不错,你的代码能力还是不错的。不过,我给你一个建议,不熟的知识点,今后尽量不要放进简历。我们一般会根据你的简历内容来提问。刚才的分布式相关内容,你答不上来会扣印象分。但是,看在你后面的表现不错,就给你过了。

山穷水尽疑无路,柳暗花明又一村。我本来已经对这场面试不抱任何希望,但面试官却因我的算法能力,再次给了我机会。激动的心情无以言表,我一个劲地感谢着面试官。一面结束,第二天我便接收到了二面通知。

算法题促成了一面的成功,二面我更加自信。二面主要以场景题为主,面试官提问道:“计算机在进行加法运算时,底层硬件做了哪些事情?”听到这个问题,我心中一阵窃喜,彷佛回到了做题现场。在《计算机组成原理》期末考试中,我画过该题的原理图。于是,我将整个流程说给面试官听,并且在最后调侃了一句,我在期末考试的时候画过这个原理图。面试官也是笑着说:“太巧了吧,我就是用这张图提的问题,这也能被你碰到!”

我就在与面试官的谈笑中度过了第二轮面试。面试结束不到5分钟,我又接到了三面的通知。

只要通过了第三轮面试,字节跳动的技术面就全部通过了。想着自己离字节跳动的offer已经不远,三面当天,我浑身上下充满了斗志。但是,人在顺利的时候,往往会遇到一些意想不到的挫折。三面考察的问题竟然都是我前两轮面试未回答出来的知识点!

其实每次面试之后,我都会对自己的表现做一个复盘。但是,那些不懂的知识点,我并没有像对待考试那样,去逐一学懂、悟透。总以为每一轮的面试官不同,所提的问题也会不一样。所以,前期的问题基本上都被我“束之高阁”了。

“看来你不是很了解,我们换一个问题”,在三面中,我再一次听到面试官这样的回复。

三面没有像一面那样出现奇迹,接下来的每个问题都让我感受到前所未有的压力。

“在不使用中间件和外部资源的条件下,如何改进你的程序,让它的并发量提高?”

“你接触过什么开源项目?从中学到了什么?”

面对我的回答,面试官表示,都不是他想要的,我顿时心如死灰。

在最后的编码环节,面试官出了一道全排列的题目。我心想总算能够表现一下了,这是我最后的机会了。只听得噼里啪啦一阵键盘声,我自信满满地点击了运行。结果,系统提示“语法错误”。我从头到尾再检查了一遍,还是没找到问题。这次编码没有用自己电脑中的本地编译器,而是字节跳动的在线编码网站,我对这个界面很陌生。就像用惯了office2003,突然在另一台电脑上改用office2007……时间一点点过去,面试官也不说话,就在那里静静地看着我。我越来越急,最后把心一横,请求面试官允许我将代码复制到本地调试。“最好不要。”面试官很客气地拒绝了我。接着,我似乎听到了面试官敲击键盘的声音。也许,面试官又对我作了负面的评价。

就在几乎要放弃的时候,我突然发现原来漏写了一个参数!我立即改正,并再次点击运行,成功!我激动地报告了面试官,而他却淡淡回了一句:“哦,通过了啊?我的问题问完了,你有什么想问我的吗?”

面试官不咸不淡的反映,让我彻底失去了信心。面对反问环节,我也草草提了一个简单问题,匆匆结束。

第二天,我虽然已经预计自己与字节跳动无缘,但内心仍抱着一丝幻想,期待能收到通过的电话,可惜一直没有等到。

在实习中复习 算法助我入职百度

今年8月份的一天,我和朋友们打算一起去看电影。刚走到检票口,电话铃声突然响起。我按下接听按钮,电话里传来一个声音:“刘德同学,我是百度面试官,你什么时候有时间?我们约一面的时间。”两周之前,我在百度官网投递了简历。

继字节跳动之后,我又迎来了大厂的面试机会,而且是路人皆知的百度公司。我的兴奋之情无以言表。挂了电话之后,我是怎么走进电影院的、电影的内容是什么,我都记不清了,我只记得自己一直在思考如何进行系统性的复习。

吃一堑,长一智。字节跳动的失败让我变得更加谨慎,也让我的复习更加扎实。

计算机网络、操作系统和数据库是面试中经常遇到的问题。我每天在完成导师布置的任务后,就开始复习这些常考的计算机基础知识。同时,我也开始在牛客网学习别人的面试经验,在题库中不断练习算法题。记得有一天,我从早上就开始复习,内容是计算机网络的五层体系结构模型,一层体系大概有200ppt,五层就是1000页。随着鼠标不停地点击,一页页的界面跳转过去,当我再看时间的时候,已经到了下午五点。

八月下旬,一面如期而至,依然是熟悉的场景,我在杭州的出租屋内打开电脑参加远程面试。面试官在我自我介绍完之后便开始了提问:“你参加过数学建模竞赛,请你讲一讲当时选择的题型?你又是如何解决的?”

这是第一次在面试中回答数学建模相关的问题。我一边回忆,一边向面试官介绍了题目的内容,以及解题的步骤。我有意强调了解题中所用到的两个算法——求最短路径算法和启发式算法。就在我和面试官讨论算法的时候,时间已经悄悄过去了半个小时。

面试官看了看时间,也许觉得聊得太多了,便结束了这个话题。接着问我:“客户端和服务端在传输信息过程中,经历了哪些过程?”我暗自高兴,真是复习什么就考什么!我把刚刚复习的计算机网络的五层体系结构在传输过程中起到的作用,以及数据传输过程讲了一遍。

“你回答得很细致。”听到我的回答,面试官非常满意。最后,他出了一道简单算法题,我很快就写完了并且成功通过测试用例,至此,一面顺利结束。

第二天上午,我收到了二面的邀请,时间约在当天中午。

二面面试官一共问了三道场景题。

如何写一个小工具来判断一个程序是否死锁了?

如何判断在一些场景下应该选择同步还是异步请求?

并发量突然增大该如何处理?

这些问题我在刷面试经验的时候都没有遇到过,我只能按照自己的理解给出答案,心中忐忑不已。半个小时后,又到了最后的编码环节,这是一道简单的链表操作题,我用在线代码编辑网站完成了操作,并通过了面试官给的用例。

与上次一样,在面完的第二天中午,我又接到了三面的通知。面试,等待,收到下一轮面试的通知,紧张复习,再面试……那段时间,我过得特别有压力,也特别充实,白天上班,晚上复盘总结、模拟项目流程、弥补专业知识的盲点。就这样,终于到了三面。

根据网友的经验来看,百度的三面主要是以hr的角度考察面试者,但是我的三面却依然是“技术面”。考察了近10分钟的计算机基础知识之后,直接到了编码环节。面试官出了一道动态规划的题目,但是我并没有想到用动态规划的思路去解决,而是直接用暴力求解的思想去编写。

面试官摇摇头说:“如果暴力求解,算法题将没有任何意义。”我又以空间换时间的方式来降低时间复杂度,并且再次编写出来。

“这道题其实有更好的算法可以解决,建议你上网看看其他人的思路,”面试官显然不是很满意,但他对我的算法能力还是进行了充分的肯定:“不过,你逐步优化算法的过程,证明你的代码能力还是不错。”

看来,继字节跳动之后,算法将再一次成为我面试的加分项。其实,早在2020年5月份的时候,我还是一个不知算法为何物的“小白”。那时候,我要花5个小时才能做出一道算法题。后来,经过算法协会的锻炼,我慢慢地增强了对算法的理解。现在回想起来,从接触算法,到面试百度,自己在这1年零3个月的时间内,还是发生了比较大的变化。

在反问环节后,百度的三面正式结束。

一个星期之后,我接到百度hr的电话,问我是否愿意接受offer。说实话,在前几届的学长中,能够入职百度的也是凤毛麟角。百度能够选中我,已经超出了自己的预期,我甚至隐隐有种“高攀”的感觉。于是,我毫不犹豫地给出了肯定的答案。

2021年98日,百度发来邮件:刘德同学,恭喜你通过了百度2022校园招聘笔试及面试环节。看到这短短的一句话,喜悦的感觉其实并不强烈,更多的则是即将面临新挑战带来的压力。