前言
大佬请自觉绕过,我只是站在一个菜鸟的角度来写这个文章。这个offer对我来说可以说是我职业生涯的转折点,于是乎记录一下自己一些想说的话。
笔者背景
2016年毕业,普通二本,没有大厂经验。这样的背景在我拿到offer后都以为自己是在做梦。
大学以及工作
因为我工作每年都会有年终总结,所以我直接提供链接给你们:大学、第一年、第二年和第三年。
希望你们可以挨个看完,里面包含了我从大学到现在所做的一切,而这些都是我宝贵的经验以及总结,希望对你有帮助。
字节跳动面试机会
如果你看完了上面的链接,那么会知道我计划在3月跳槽,通过一年我也准备好了一切。于是乎我通过各种渠道投递和内推了我想去的公司:饿了么、腾讯、阿里和百度等等,因为我说了我这次跳就要跳大公司,两次的工作经历告诉我没办法识别出一个不知名公司是否有前/钱途,即便是我的第二家有几百人的集团公司。比较惊讶的是,我在成都从2月初到2月底一个面试机会都没有。
说真的,大吃了一惊,因为要知道在18年初的时候,我陌陌和美团至少是有面试机会的,第一次感受到了互联网寒冬,真的很冷~
我陷入了迷茫,于是我开始改变自己的计划,因为继续做iOS没办法进入大公司了。考虑到大数据非常火,所以我有了转大数据的念头,原因有如下两点。
1:大数据是未来的趋势,人工智能等都是建立在大数据之上的;
2:对于有工作经验的转大数据比较容易,因为大数据牵扯的知识很多;
3:要求低很多,相对来说容易进大公司,有个朋友通过大数据进了神州专车。
并且都安排好了,3月初去北京,在北京找三周iOS的工作,北京大公司非常多二本可能就会有面试机会,如果还是没有面试机会那我就月底去培训大数据。
在2月26日时,一个猎头通过github加了我QQ,因为自己会在网上分享一些东西同时会留下一些信息。然后告诉我说我能帮你推字节跳动。说实话当时是很高兴的。但是我没抱有太大希望,因为我自己投递和内推过字节跳动,都没有反应。2月27日猎头告诉我说简历通过了,我意外的得到了一个面试机会,并且学到了以下几点。
1:没有好的学历和大厂经验,一定要想到猎头推荐,这是最后的希望;
2:大公司有很多项目组,你自己投递的时候需要挑对组,我做了三年的OA,我去的字节跳动那个组也是OA,而自己投递时投递的不是这个组,所以简历通不过;
3:如果你的简历投递标记为不通过了,那么半年之内都不可能通过了,所以你跳槽前知识技能一定要准备好,我用了一年时间准备知识技能;
4:要去了解一些大厂喜欢问什么,字节跳动喜欢问算法,阿里巴巴喜欢问项目等,我算法准备了半年;
5:这次猎头推荐,字节跳动在北京本科即可,而在上海需要985/211,这个你也是需要考虑的。
技术面试
技术面试一共有三轮,具体问的啥我就不说了,都是一些基础。如果每一次面试满分为100分,那么构成大概是这样的。
1:一道算法题,字节跳动非常看重算法,算法的难度大概在LeetCode中等难度且通过率在30%以上的,比重40分,如果你想靠背答案来过关,那么最好是打消这个念头,因为做出来只是前面,后面会有更深入的问题,比如:时间复杂度、空间复杂度和优化点等;
2:项目,也就是你自己做的项目中技术点之类的,要很清晰的知道,会深问,比重20分,因为项目是你自己做的, 所以这个基本是送分题,面试官只会根据你说的内容深入问,你自己多考虑考虑说的内容就好;
3:iOS基础,基本上就是一些面经和源码级别问题什么的,比重40分,如果真的问到了你不会的,那么回答的模板是:这个问题呢我没有深入的去了解,我只能说一下我的观点,然后把你掌握的相关的知识说一遍,然后推出一个可能的结果。
75分就可能通过面试。通过以上我们知道了,算法题是关键,你算法做出来了基本也就过了。
相对于985/211、研究生,我们二本只是缺少一个面试机会,因为面试问的问题都一样,面试官可不会知道你是不是985/211,除非你是清华等名校。
但是当机会真正来临的时候,你是否准备好了呢。
人事面试
就是聊天,不通过率1%,因为怕你开心的忘记了面试时间,别觉得好笑,真的有。
拿到offer
人事面试后一般5天之内就会收到offer,但是也有可能拿不到,职位满了等情况偶尔也有发生。
从简历评估到拿到offer一共经历了3周,算是比较快的走完了流程。因为最近字节跳动大量招人,流程会走得很快,职位满了等情况也不会出现,感觉这次自己真的是运气太好了。
1:字节跳动大量招人,北京并没有卡985/211学历;
2:在自己打算转行的时候得到一个面试机会;
3:去的组做的东西和我这家公司类似,也就是所谓的项目匹配,所以简历评估通过了;
4:技术面试我不懂的知识点基本没问,问的我都能熟练的说出来。
一些我想说的话
做IT,二本比985/211、研究生差多少?
其实说真的,985/211、研究生也有菜,而且还不少,其中基本都是因为第一家公司没选好或者荒废了自己。
就拿我们iOS岗位来说,你光是通过候选人回答的问题来判断他的学历基本判断不出来。
所以目前来看差距就是面试机会的多少,而内推和猎头就是解决这个的。
所以不要把学历作为借口,我第一家公司上司是个专科也做到了阿里p7,能影响你的只有你自己。
小公司如何获得深度的提升?这个是字节跳动三面我问面试官的问题,他是个架构师。
他说深度有两方面。
1:底层,也就是源码和兼容性,这个小公司也能做到啊,只不过用户场景要自己想的更多一点,而大公司因为用户量大自然就会展现出来而已;
2:决策,也就是技术选型等,小公司比大公司反而会更多的得到,因为小公司需要我们决策的地方反而更多,大公司都有专门的人去做这个事。
很多人认为小公司就没办法提升自己了,其实都是为自己懒惰找借口,大公司并没有你想的那么牛逼,里面的混子可能更多。你只需要记住以“提升自己能力”为目的上班即可。
如何知道自己是不是行业平均水平?这个我只能说说我的一些看法。
当我陷入这个问题的时候,我就会去看网上阿里和百度等的面试题,因为这些大厂是互联网的标杆,
既然他们认为这些是应该掌握的,那我们还有什么理由不知道呢?如果有不知道的,那么就深入的了解,
源码级别的去了解。
iOS那么多知识,我应该都看吗?
应该都先了解一遍,知道是做什么的就好了,这个时候接口都不用看完;
如果业务需要用到那么就深入看,有时间最好源码级别的去看。
比如:iOS扩展出来4年了居然还有大部分人不知道是个啥东西、iOS早就可以应用间共享数据了。
而这些知识小公司中就关系到你的决策能力,一个需求是否做得出来。
怎么知道自己是否掌握了某个知识点?
我所用的两个方法。
1:当成一个面试题,看你自己怎么组织语言,也就是QQ群和论坛等社区解答别人问题的时候,你会发现明明自己一直都在用就是总结不出来是个啥~
2:写成文章,这个还真不是那么好写的,写出来后要放出去给别人看,通过网络你也能即使的得到反馈。我记得我之前写了很多文章,但是后面我都删了很多,因为很多的理解都是错误的,惭愧~
如何去学习一个新东西?
1:先大概了解一下这个是做啥的,初步分析一下有没有必要看,比如很多东西你短期也用不到;
2:看所有提供的api,到底能完成哪些事,深入分析一下是否有必要看,比如我用这个新的东西会带来哪些优劣,新东西一定是能带来一些好处的;
3:熟悉源码,有些bug是因为你不会用而导致的如IQKeyboardManager,有些是无法满足业务需求但是能够扩展源码达到的如支持protobuf的AFNetWorking。
总结
要时刻准备好,因为你不知道什么时候就会得到一个机会。而机会总是留给有准备的人。