写在开头
长期失踪人口回归,消失了整个2021年的我又回来了,消失的这一年对于我来说伴随着挑战和惊喜,2021年的我终于进入了研究生生活的后半段,实习就业与毕业的压力接踵而至,同时还要兼顾实验室的事情,那段时间真的是十分酸爽,所幸结果还是好的。实习过后顺利拿到鹅厂的offer,经过几个月的痛苦折磨也顺利完成了毕业论文与答辩,期间忙是一部份原因,可能更多的还是拖延症吧,整整一年都没有写过文章,本来打算先好好享受假期,入职之后再开始整理一下自己的知识体系顺便更新一些文章,希望可以帮到有需要的人,尤其是那些可能和曾经的我一样迷茫的人。结果谁能想到一个香港竟然重新打开了的潘多拉魔盒,现在的疫情仿佛又回到了2020年最凶猛的时候,所有的旅游的打算也都付之东流,加之最近看了一些书,对于职业规划也有了一些新的想法,借此机会也想和大家分享一下,所以这篇文章首先会对2021做一些总结,说下面试实习的一些感受,之后可能会写一下未来的展望,说一下对于元宇宙,区块链等技术的看法。
实习真的很重要
实习经历对于我们行业来说真的很重要,不说一般实习过后有很大的几率拿到正式offer(我就属于此类),就算是对于秋招也有很大的帮助,因为大厂的实习经历本身也是一种实力的证明,我之前秋招面试基本最后都会问有没有拿到鹅厂的offer,实习的感受之类的,气氛也都很轻松,毕竟自己心里也有底气,压力也不会很大,更容易发挥好。
戒骄戒躁 扎实基础
2021年是以找实习为开端的,找实习则离不开面试,其实这也是我第一次求职,大学的时候直接考研然后读研,还没有经历过求职的毒打,所以开始还是很焦虑的,也不知道怎么去准备。其实对于校招生而言,面试更多的还是考察基础知识,考查方式有两种,一种是对于基础概念的掌握和理解,就是操作系统和计算机网络等,还有一些与计算机语言相关的问题,比如我使用的是JAVA,就会问一些JAVA和JVM的相关知识。其中会包含一些很细节的问题,如果没有经过刻意训练很难回答出来,平常也很少关注。对于这一部分建议结合网上的面经去系统复习,面经就是别人的面试经验,在牛客网上有很多这样的资料。可能有人会问既然都有现成的面经,为什么不直接背面经,而还是需要系统的复习呢?因为面经中都是很具体和零碎的问题,很难让自己的知识体系化,如果面试没有直接问面经中的问题,而是问了一个相关问题,没有经过系统的复习很大可能就无法回答出来。同样地,如果只自己蒙头复习而不看别人的面经就会找不到重点,其结果就是面试问的问题明明已经复习但是却忘了或者说不能组织好语言表述出来,如果因此面试失败会十分的可惜。所以需要结合面经再系统的复习,既能够形成体系化的知识结构又能够做到有的放矢。
除了上面提到的基础知识考查,面试很重要的一部分就是算法考察,现在无论是笔试还是面试都包含算法考察而且都有硬性指标,如果没有答出多少题会直接刷掉,这一部分主要就是对数据结构和算法的考察。其实这一部分和上面是一样的,也是要结合别人的面经和系统复习,因为大厂面试算法是有题库的,看别人的面经很可能在自己面试时会遇到原题。我自己虽然没有遇到别人的面经的原题,但是却遇到了自己做leetcode的原题,其实大厂面试的算法leetcode的上基本都有原题,所以刷leetcode真的很重要,但是不要盲目的刷。leetcode上面有很多分类比如数组,链表和树等类别,如果相关内容已经不是很熟练,可以现回顾下基础知识,然后先做一些简单题,然后是中等题,这两类应该已经涵盖了绝大多数的面试题,最后如果有余力可以做困难的题。而且我觉得leetcode刷题应该是一直在进行的而不是只是为了实习面试,毕竟不是主动离职就是被动离职流动性很大。这其中复习真的很重要,如果只做一遍基本都会忘记,世界上最痛苦的事情莫过于这道题明明做过面试时却怎么也记不起来,而且做题都有时间限制,基本都是半个小时,这时候可能越想越着急,结果就是越想不出来。。。所以熟能生巧真的很重要,我当时是一天做五道题,第二天会把前一天的题再写一遍,每周都会把这一周的题看一遍,面试前会随机抽两题找找手感,这也存着侥幸心理,万一我做的就抽到了呢。
复习很重要 实战更重要
开始面试没有经验,可能说话都会一点紧张,不能很清楚的表达自己的意思,这也很正常,这也是需要练习的,这引出一点那就是复习很重要,但是实战更重要。很多人会觉得要等完全准备好才开始投递面试,其实这是一种错误的观念,首先很难说在哪一个时刻说准备好了,能够应对所有的问题,而且一直封闭的复习可能会越来越焦虑,尤其是当看到旁边的人都已经拿到offer,这种焦虑基本是很难控制的。其次封闭式的复习很难让自己对于自身实力有很好的评估,导致面试时会非常的紧张。所以我自身的经验是复习到一半就开始投递,这时候投递的顺序就很重要,不要一次性把所有的公司都投了而是要分批次投递,首先投递一些不能想去的公司,用这些公司来磨练自己面试的技巧,刚开始肯定会比较差这很正常,不要气馁,随着越面越多会发现自己越来越驾轻就熟,越来越自信。经过这些公司的洗礼,无论是说话技巧还是知识的体系都趋于完善,这时候可以投递自己心仪的公司,可以多投几个,在实战中学习。
及时回顾 积极复盘
正如上文所提到的,要在实战中学习,在实战中进步,那么要如何在实战中磨练自己呢?那就是及时回顾,积极复盘,每一次的面试无论成败与否都是重要经验,每一次最好都把面试问题记录下来,面试回顾自己的回答,其目的有两个。其一是自己的表述方式,自己是否真正理解了面试官的提问意图,自己又是否把问题表述清楚,是否还有更好的表述方式。其二就是面试问题涉及的知识点,自己对这个知识点是否熟悉,对于这个知识点是否熟悉,如果面试官问这个知识点相关的知识点是否可以回答出来,以此来以点带面,让自己的知识体系化,相互关联而不是孤立的知识点。最后就是从面试官的角度思考问题,为什么需要问这个问题,考察的是什么知识点,如果做到这一步面对所有的面试都可以驾轻就熟。
转换心态 苦中作乐
我和绝大数多人人一样刚开始都是将面试实习等视为人生的一大苦难,可是后来我的心态开始慢慢转变,我觉得我的努力和复习绝不是只是为了一次面试或者实习,其真正的目标是借此机会来再一次体系化自己的知识,让自己的能力得到提高,这样每天的学习都会让我觉得很充实。当我们觉得自己深陷苦难的时候,不妨将自己的视角进一步提高,从未来和这个人生的维度来思考问题,可能我们会发现现在所谓的苦难其实根本不算什么,或着与其说是苦难,不妨说是上天赐予的一次机会。
大厂氛围与规范化开发流程
之前说的都是面试准备什么的,当你真的进入实习过后你会发现一切的努力都是值得的,首先是一天将近四百的实习工资还是很香的,当然了这可能是你获得的最微不足道的一部分。实习最重要的可能是感受一下大厂的开发氛围和规范化的开发流程,尤其是从需求,开发,测试到发版等完整的流程,小到commit message,大到一些开发模式,可能给你完全不一样的开发体验。而且别人会review你的代码,一些大神的意见真的会让人茅塞顿开,同时也会改掉自己平时可能没注意的小毛病。还是最初的起点,实习会带来很多东西,但是最终的还是自身能力的提升。
写在最后
这篇文章主要讲述了我准备实习的一些总结和体验吧,希望可以帮助到一些人,感兴趣的可以关注公众号QStack,之后也会陆续写一些文章总结一下操作系统等面试的主要知识。