手记

【Java技术驿站分享】2021年如何提升自己顺利进入大厂 第二篇

概要

大家好,我是18届某二本计算机专业毕业生,于18年校招入职美团点评,20年社招入职字节跳动。今天受慕课网邀请,给大家进行一个关于2021年如何进入大厂的分享。以下内容均为个人观点,不代表任何机构、公司、组织。

首先说下本次分享面向对象为在校生或工作三年以内或刚入行互联网的朋友们,更高级别的可能这篇文章并不适合你。

本次分享主要分4部分组成。

  • 首先我们简单说下为了进入大厂程序员应该修炼的“硬本领”,也就是关于一些编程能力的培养,关于这部分我不会介绍太多内容,因为我们这行细分的岗位太多了,每个岗位要准备的内容都不一样,而且网上到处都是相关的课程、文章、培训。这里只说 一些通用的东西。
  • 然后我们介绍一些关于在校学生,要想进入大厂,应该如何准备,这也是我从学校一步一步走到现在积累的真实经验。介绍完在校学生如何进入大厂,我会再简单介绍一下关于在职员工该如何准备,但是关于这部分其实由于我也才工作两年半,所以其实并没有太多经验可谈,只能是说说自己的想法。
  • 最后我会说一下我认为的关于面试,我的一些想法和心得体会

1. 硬本领

内功:

程序员的内功应该都是一样的,其实就是算法、数据结构、面向对象、函数式编程、响应式编程、计算机网络、操作系统,这些大学的专业课,基础课。

很多人认为这些工作中用不到,只是进入大厂的敲门砖,其实这样理解并不对,《重构:改善既有代码的设计》 一书中有一句特别经典的话 “写出让机器读懂的代码很容易,但是写出让人读懂的代码却很难”。

你只要按照语法把代码写完,就能完成工作需求,所以很多人认为工作中用不到这些东西,但是代码是给人看的,当你懂算法和数据结构的时候,你写出的代码自然就会更容易被人读懂,这是一种潜移默化的影响,并不一定会真的体现在你用了多少高级的数据结构、算法、设计模式。并且你学习后面“外功”的速度也会变快。

我觉得这才是要准备这些所谓计算机“八股文”的必要之处。

源码:

看开源框架的源码是学习技术最快的方法,而是大厂最爱问的东西。

当然看源码需要一定的技术功底,不然会看晕,但是网上关于经典框架,都有很多课程和博客,如果自己看比较吃力,可以网上搜索一下。

但是源码光看不行,一定要自己理解,一般我会先跟着课程串一遍,然后把视频或者文章关掉,自己再串两遍,然后把该框架的一个流程图通过自己的记忆画出来,最开始可能画不全,多画几遍就能完全记住了。当你可以一手画出一个框架的流程图的时候,说明你已经掌握了。

我是做大数据的,下面是我当时读spark core源码的时候,画的spark 框架的流程图以及写的博客

实战

上面的可以说都是理论知识,要想融汇贯通,一定要实战,这个实战可以是慕课网的实战课程、还是你自己琢磨的一个产品的小DEMO(这个更好),都可以。最重要的一定要自己手敲一遍,一方面培养自己的成就感;另一方面可以踩一下只有实际开发的时候才会遇到的玄学问题的坑,比如配置,比如各种NPE;另外还可以积累一些面试时候的谈资,这个我们下面再说

2. 在校学生该如何准备

对于在校生,我认为时间比技术重要,走实习生转正我觉得是进入大厂最轻松最快的办法

如果你现在是大二或者大三,我的建议是尽快去面试各大公司的实习生,然后实习到大四(如果时间充裕可以多换几家实习,积累经验),通过实习生转正。相比于直接秋招,公司往往跟喜欢让实习生转正,哪怕这个实习生差一点,原因有两个:第一是人情,你和同事们和leader都处出感情来了,只要你不是特别差,一般不会把你弄走;第二是相比于高那么一点点的技术,你对业务的熟悉更重要(因为你已经实习好久了),公司要的是产出。

关于如何实习面试通过,我建议是尽快去准备一下我上面说的“内功”,这本就是你们的基础课、专业课,准备起来也相对容易,而且作为在校生,面试的时候本就不会问你们太多关于工作经验的问题。我之前问过我小组长对实习生的要求是什么,一般面试会问啥,他的回答是:“首先我得看这个孩子是不是机灵,其次会面几道leetcode,中等或者简单难度,最后如果他写了会什么框架,会简单问一下,但是不强制要求。来了可以现学”

如果你已经是大四了,而目前还没有多少实习经验,那么你的优势相对会弱一些。需要把我上面说的三点都好好准备下,其中,“内功”要着重掌握,“实战”也要着重掌握,用实战经验来弥补实习经验的不足,“源码”就要看时间了,如果时间充足也要好好准备,如果时间不够,也要大概知道是怎么运行的

3. 在职员工该如何准备

关于在职员工如何准备面试,这里我主要说一些自己的想法,不一定对。

  • 技术是安身立命

硬技术是敲门砖,没有他,你连大厂的门都够不上,而且算法、数据结构、源码这些看多了,会把技术变成一种思维方式,会让你时时刻刻想办法去减少重复工作,优化工作流程,在职员工应该把技术提升到解决问题的层面,更容易脱颖而出。

  • 脱离业务的技术是空中楼阁

脱离业务,就像“巧妇难为无米之炊”,能解决问题的技术才是好技术,不然就是自嗨,所以在除了第一部分介绍的硬功夫之外,我认为应该着重提升一下自己的业务能力,多思考思考自己做的项目他的商业价值,多把自己做的项目的收益点和项目的商业价值联系起来。在二面三面的时候多引导面试官聊聊自己的业务,因为二面三面面试官多是leader级别的了,他们其实也更关注业务收益,毕竟赚钱才是最重要的,这样会让他们看到你身上除了技术之外的潜质。

  • 软素质决定了能走多远
    当身边都是优秀的工程师,那么推动事情的能力、把事情说清楚的能力,统筹规划的能力才是真正的天花板,所以在职员工准备进入大厂,还要提升自己的软素质,推荐美团内部被称为美团四大名著的几本书 《学会提问》《金字塔原理》《高效能人士的七个习惯》《用图表说话》

4. 关于面试

  1. 面试不是考试,面试是考察你解决问题的能力

    面试的时候难免遇到自己的知识盲区,这时候要能够随机应变。

    比如我在一面的第二个问题上,其实面试官想要的是纯sql的那种答案,但是我最开始没想出来,我也知道他想要的是纯sql的问题,但不能一直卡着呀,无奈执下,写了个麻烦的UDAF,结果最后面试官给了我标准答案的时候,我还跟他讨论了下性能问题,还是UDAF效率高

    如果实在不会的话,你要快点下出自己不会的结论,不会就是不会,直接说,下一个话题,不要磕巴,不要撒谎,不懂装懂,人家一眼就能看出来

    再比如二面的第四个问题,很简单的,可是我就是不咋了解linux啊,我就直接说不会,下一个吧,面试官还想给我解释解释,我说别解释了,真不会,结果面试官意外的说了一句,很棒,要的就是这种速度。

    • 结论1:不能直接解决,想办法也要解决,哪怕是麻烦一点,也能解决问题

    • 结论2:即使真不会,也要让人家知道,你只是这个知识点不会,但是你诚实,果断

  2. 面试要有很好的心态,不要跪舔

    无论你面的是什么公司,都要保持好心态,要自信,不要低三下四的,不然气势上就说了,比如我在一面最后面算法的时候,其实第二题我做错了,但是我看面试官好像也不太会,就生讲,硬是把面试官给忽略过去了。

    由此可见:第一,大厂面试官也不是啥都会,对方也可能是在照着面试题问。第二,心态好了,你能把不可能变成可能

  3. 要知道人家爱听什么

    三面最后一个问题,问我的规划,因为通过前两面我基本猜到了他们是做数仓方向的,而我是应用方向,不是很匹配,但是我灵机一动,就说了为了以后更好的发展,需要更好的了解业务,想做数仓

    而三面快结束的时候,我大概猜到了如果有HR面肯定会问我对部门有什么了解,所以我特意就这个问题像三面面试官进行了深入的套路,最后HR面对答如流

    这个技巧我在刚毕业在美团面试的时候也用过,我本来是面的后台岗位,一面面试官觉得我不错,说他们是大数据部门,问我想不想做,一个刚毕业的孩子肯定对大数据很憧憬呀,我就诚实的说了我想做,但是不会。结果二面面试官又问了我的未来规划,我机智的回答:想转大数据。。。就这样,我一毕业,就进了数据部门

面试硬知识固然重要,但是准备了硬知识的同时,面试技巧也要好好琢磨一下,不然就有可能出现茶壶里煮饺子的情况~更何况我们的饺子其实也不是很饱满呢

2人推荐
随时随地看视频
慕课网APP