阅读 165

2019 一名校招生的酸甜苦辣与细微进步 | 掘金年度征文

我是一名应届生。如果说 2019 年有什么头等大事的话,那就是找工作了。没想到这件事情恰好持续了一整年,从年初开始,到年末尾声,我这一年的经历和心情也全部串在里面了。如果非要给一个写年终总结的理由,那就是这一年过得太完完整整了,不得不把它整理下来。

年末心里正好有些写总结的想法,正好看到了掘金的年度征文,于是就决定在这里写写我校招中的起起伏伏,酸甜苦辣。在这一年中,从掘金翻译计划,到掘金小册,到掘金社区,掘金也陪伴了我过这一年,把文章发在这里也是顺理成章。

1

写年终总结的念头出现在我的脑海里,我不禁把目光放回了今年年初,当时我在数九寒天中开启了我的准备招聘之路。

2018 年末回顾的时候,我说了一句:这一年太没有什么收获了。2018 年是我的本命年,不知道是不是受了本命年坏运气的影响,我感觉我的时间一天天地被消磨掉了。研究生生活,找不到兴趣,吊儿郎当,得过且过;时间就在那儿的校园招聘,也一直没有提前去准备。

时间就这么来到了年底。2018 到 2019 之交,年关像一堵墙,把从前的我和之后的我清晰地分开。我终于意识到该复习准备找工作了。一股强烈的紧迫感席卷我的内心,我开始看书、复习……一月份是我复习最集中的时候,我每天像海绵一样汲取知识,把知识点总结进我的笔记中。我的笔记一开始用 Git 管理的,从提交记录中可以看出我复习的密集程度。

一月份密集的 Git 提交记录

那可能是我近三年来过的最充实的一段日子,每天白天搜集资料,整理,记笔记。晚上十点左右回宿舍,再稍微回顾一下已经整理的内容……这样密集的复习持续了一个月左右。虽然紧迫感依然在,但是我知道我在不断前进了。我的底子还行,也对知识点进行了整理而不是简单的收集。

当然还有刷算法题。具体的过程我记不太清了,但看 LeetCode 的记录,1 月 20 号之后的两个星期之中,我密集的进行了 240 次提交。可能我的水平就是在那一段时间突飞猛进的吧。

我的 LeetCode 提交记录

之后的回家过年分散了我的注意力,我不在那么勤勉地复习,但好在我大部分的知识点也梳理得差不多了。

我在 2 月份偶然接触到了掘金翻译计划。我忘记当初是为什么在面试临近的时刻还要抽空参加翻译计划的了(听说有人把这个写进简历里的“开源项目”,但我从来没有在简历里提过),大概是因为我比较喜欢翻译吧,我自己的博客里就有两三篇自己翻译的文章。不过这个翻译确实还是挺有趣的。翻了翻 GitHub 上的记录,两次翻译分别是在 2 月 25 日和 3 月 2 日。

两次翻译的 pull request

说来也有些惭愧,我虽然用了这么久的 GitHub,但好像没有正经地参与过什么开源项目,参加掘金翻译计划还是第一次正儿八经地提交 pull request。我突然发现,认真做事是快乐的,无论是写代码,学新知识,还是翻译,能全心地投入其中都会觉得很充实。这可能也是我在一月份能在紧张的复习中坚持下来的原因吧。

今天我在掘金翻译计划翻译了五篇文章,其实本来可以更多的,但是翻译计划最近好像不怎么上新文章了,需要自己选优秀的文章再推荐上去,有点麻烦了。希望翻译计划未来能运转得更好。

2

实习生招聘在三月份开始。面试开始前的那段时间,我没有什么紧锣密鼓的复习,因为这时候开始啃到一些难的知识点了,掌握起来不是那么轻松。另外我还对简历上的内容做了针对性复习,要准备的东西其实又多又杂。

我对于面试没什么经验,在一开始挺慌张的。我也有一段时间心理压力很大,想到自己简历上的项目比较一般,觉得心里没有底。记得在第一场面试开始之前,我在楼下的空地上来回踱步,思考如果被问到简历上的项目怎么回答。虽然之前准备了不少基础知识、算法题,但是总觉得准备得不够。

不过还好这些慌张都逐渐被化解了。其实面试本身没有那么可怕,很多时候就正常地回答就行了。相比之下,等待面试的过程才是最难熬的,尤其是别人有面试而自己没面试,只能干着急。但随着我的面试一场场进行,一些感觉都还好。我的春招季其实挺短的,三月开始,四月就结束了。

我印象最深的反而是我们在宿舍里讨论算法题、对面经的时刻。腾讯的面试最先开始,那段时间我们几个同学面完试发现,问到的问题竟然有很多相似之处。腾讯爱问网络编程,我们发现了。于是那几天我从图书馆借了一大本 Linux 网络编程,挑出重点的内容复习。

我还记得我三月份在掘金买了一本 MySQL 的小册。虽然小册是为了准备面试而买的,但买回来发现里面的内容是很有深度的。掘金小册喜欢标题党,写着几分钟看完,实际买回来发现几天都看不完。仔细看了小册之后,非常佩服作者的用心。记得在存储细节那一页,作者一章讲了很多内容。这些都是需要看源代码加上参考大量文献得到的。

小册的配图

上面是从小册里摘的一个配图,可以看到画的图是非常精美的。(小册是付费的,这里摘的是试读章节里的图。)我很喜欢这种配图,因为我知道“一图胜千言”的道理,好的图片能很好地帮助理清思路,梳理脉络。

能画出好的示意图,其实是技术能力的体现。还记得我复习 Java 并发的内容的时候,发现很多资料上对于对象、锁、条件变量之间的关系说的不太清楚,就自己画了一张图供自己参考,于是那个知识点我掌握得特别好。所以我复习面试其实最大的收获可能不是知识本身,而是如何梳理和归纳知识,以及将它们表达出来。

3

比起春招时候的紧张和激动,秋招季我面对面试就要淡定很多。秋招的面试我经历了比春招时更多的“考验”,例如在实习的间隙忙着复习和准备,例如几乎每家面试都会遇到连着面两轮到三轮的拉锯战,例如会遇到更多更奇怪的面试题……但我感觉越来越有经验去面对了。

我觉得这不止是自己经验的增长,以及心态的平稳,更重要的是自己面试的水平提升了。记得秋招结束的时候我看了看自己 LeetCode 上的状态,刷了 360 道题。我有一个笔记,分类记录了 LeetCode 上不同的题型特点和解题方法。我还有一本《剑指 offer》,我也来回翻了两遍。从这样一个侧面应该能看出我准备得更充分了。

当然,秋招季其实远没有那么顺利。实习时候的压力、实习和秋招的时间冲突、offer 选择的困难,都是我和每个同学一样都经历到了的。不过这些似乎更偏向个人的体验一些,和技术之路的主题并不相符,这里略去不谈。我在招聘季的后期越来越感觉到,其实招聘面试是一件非常个人化的事情。我们宿舍的同学们可以一起讨论面试题,分享面经;但到了真正选择工作的时候,考虑的地点、公司、岗位都是不同的。这个时候并没有什么真正通用的经验,每个人的职业发展之路需要自己考虑。

秋招季末期,可能是大家最浮躁的一段时间。特别是 offer 的薪资方案出来之后,攀比也许没有,但这山望着那山高永远是存在的。我还记得一段时间天天刷 OfferShow,就想看看有没有最新的薪资爆料消息。偶尔有人爆料“开奖”,还非常激动。然而最后自己的 offer 都开奖出来了,反而觉得无聊乏味。可能是觉得自己为面试准备了这么多,最后大多数的面试和 offer 都没什么用吧(笑)。

年末的时候,我突然发现了自己也许是长处的地方:喜欢归纳和总结知识。不知道你们准备面试的时候是怎么复习的,反正我整理了两大块的笔记。第一块笔记是各种知识点,包括操作系统、网络、Java、面向对象、数据库等等。第二块笔记是 LeetCode 算法题总结,有各种典型的数据结构、算法思想、C++ 技巧等等。

我觉得这些都是很值得分享的知识。不过,我没有把它们放在 GitHub 上,因为我在简历里写了 GitHub 账号,如果让面试官看到我这种项目会怪怪的😂。以后我会继续梳理这些笔记,把其中有价值的部分总结出来放在博客里。

2019 年,我在掘金以及其他技术交流的平台上发现了一些好玩的开源项目,比如一文多发工具 ArtiPub,又比如微信公众号排版工具 Markdown Nice。(这两个只是我接触到的项目!评论区有小伙伴看走眼以为是我写的项目,特此澄清😂。)这两个开源项目让我觉得我离 Markdown 走天下的梦想又近了一步。我一直在 GitHub Pages 上维护我的技术博客,所有的文章都是用 Markdown 写的。一直以来,我都懒得在各种平台上发文章,比如知乎专栏、比如 SegmentFault。因为我觉得都粘贴一遍很费劲,况且有些平台对 Markdown 的支持还不好。这两个项目正是能够方便这一点的:ArtiPub 是要解决每个平台都粘贴一遍太麻烦的问题,实现自动发布;Markdown Nice 是要解决部分平台(微信公众号、知乎)不支持 Markdown 格式的问题,实现自动排版。这两个项目让我觉得开源是真正有趣的,是能解决我们身边的问题的。

4

其实今年的互联网圈不太平,各种裁员信息满天飞。我在找工作的时候也感叹其实大家都喜欢跳来跳去。作为一个还在学校里享福的人,我没有什么经验,但我知道一定要做好拥抱变化的准备。其实技术人员某种程度上是能把握自己命运的,只要有技术有经验,在一家待不下去了,可以再换一家。归根到底,持续的学习和进步是非常必要的。虽然我现在找到了工作,还是不能停下学习的脚步啊。

我自己平时维护着一个个人博客,但是四年来只有 30 篇文章,可以说是三天打鱼两天晒网了。我觉得一方面是因为自己平时并没有养成开阔视野和持续分享的习惯,另一方面也是因为博客没有人关注,甚至没有几个人评论,所以自己一直没有什么动力去好好经营。对于第一点,我在面试的过程中,已经意识到了技术视野的重要性;对于第二点,我觉得很多氛围好的平台可以帮助我。

2019 年初我开始逛掘金,在掘金参与了翻译计划、买了小册、也看了一些文章。我感觉在这样有氛围的平台上发布博客文章还是非常好的,我把自己翻译的文章发过来,看到点赞都很开心。我觉得能有这样的平台还是非常好的,希望掘金能继续维护这样的社区氛围。

今年年末,我突发奇想,想要写一些关于 LeetCode 解题技巧的文章。我想写这个文章有两个动力,第一个原因是,我在准备面试的时候刷了那么多题,写了很多笔记,不能过一阵子都忘记了;第二个原因是,想看看自己有没有把文章写清楚,把知识梳理清楚的能力。

吸取我文章的教训,我准备发在一些有更多人能看到的地方。当然这样对文章的质量要求也更高了。为此我还花了不少工夫专门给我的文章配图,比如看我下面这个正在画的图:

为了画图,搞了一堆参考线

当然,我的文章不是专门画图的,我只是希望学习掘金小册里的作者,用图来阐释思想,把知识梳理清楚。我在文章结构的梳理上也进行了很多思考,章节之间如何安排,各种概念如何引入,才能更好地让人理解。目前我已经有了一个大概的框架,而且已经写出三篇内容了,分别是链表、二叉树、回溯法的基本技巧。这个系列我应该有能力一直更新下去,希望这次能我能坚持下去,写点有价值的东西分享给别人。

正好我的年度总结写到这里,也给自己一个低调的推广,如果有更多人关注的话,会更有动力督促我写这份系列文章。我正在写《LeetCode 例题精讲》的系列文章,介绍 LeetCode 算法题的思想,面向的是校招准备面试的同学们。我目前发在了两个平台上,分别是微信公众号@面向大象编程(这里是第一篇文章),以及小专栏 LeetCode 例题精讲。欢迎大家关注。

我的公众号

今天正好是 12 月 31 日,2019 年的最后一天。我觉得我的 2019 过得并不完美,也不够精彩,但获得的成长和收获足够多。希望我以后能更热爱技术,做更多的技术分享,能参与更多的开源。2020,奥利给!

掘金年度征文 | 2019 与我的技术之路 征文活动正在进行中......