【秋招总结】秋招如何复习?学长手把手教你进大厂
offer:阿里-菜鸟云仓、网易-考拉、京东-京东云、多益-平台研发。
悲剧了的:大疆——二面面试官嫌弃我只会java和python(貌似那边用node-js比较多),卒;
字节跳动——(白金内推)一面面试官不太会java,全程问算法和数据库,算法题有一个没听明白,解释多次无果,卒;
因为秋招还算顺利,收到阿里和网易的口头offer比较早,阿里8月24,网易8月22,而且我是java研发又想去杭州所以已经达到目标,加上家里有急事,就提前结束秋招回家了,之后的面试和笔试我就几乎都拒了,只有京东听说今年加薪很猛就面了,然后运气不错也顺利收到offer。所以也就这几家公司的面经,大家将就着看看哈。
二、笔试、面试准备
1.笔试
编程题:LeetCode(前100道)
不要看着就100道,刷题不是比谁刷的多,一定要总结,懒点的可以做里面经典的。经典的题目我博客已经挑出来了(会陆续加图片描述帮助理解,欢迎留言)
2. 面试
基础!基础!基础!要记住,这是校招,不要专注于那些花里胡哨的技能,越大的公司对应届生的基础就越在乎,其他的在业务场景下都能快速培养,真的要是喜欢会那些技能的***嘛不花个几千块请那些职业学校的来?
我把面试要问的东西主要分为以下几大块,每块的具体内容大家都有自己的学习途径,我就不赘述了。下面指出各大块需要注意的地方。
java基础:⭐⭐⭐⭐⭐
除了面经中常见的一些知识点牢记于心外,一定要挑出某两三块进行深挖成为自己的亮点(深入源码,甚至源码为什么这么写的级别),比如:垃圾回收、juc包等;
数据结构与算法基础:⭐⭐⭐⭐⭐
自己的项目和实习:⭐⭐⭐⭐
这个多多少少还是要有一些的,如果没有就去网上找项目把源码看懂,改成自己的。但是,一定要熟悉!熟悉!再熟悉!绝对不要有凑简历的想法,
面试官都是面过很多人的,你这个项目几斤几两问两句就被问出来了,不熟悉的还不如不写哦。在熟悉的基础上把项目里面某一个点弄透彻点也很重要,方便面试官提问。
开源框架:⭐⭐⭐⭐
SSH/SSM,懒点的可以只学SSM,对于Spring的两大块源码一定要看,AOP两种实现和适配器的实现(学会适配器模式再看,不难)
数据库:⭐⭐⭐⭐
了解Oracle,熟悉MySQL,数据库引擎和mvcc很重要!
设计模式:⭐⭐⭐
这个一般问的少,会那么7种一般就可以了:创建型——简单工厂(三种)、单例;
结构型——适配器、装饰者、***;(要会区分这三个)
行为型——模板方法、观察者。
计算机网络:⭐⭐
主要是要清楚4.5.7层模型,http访问流程,dns解析过程,http头,tcp三握四挥,会写socket通信、http***等。
操作系统:⭐⭐
线程vs进程。然后会间接地问,比如问你怎么在linux系统上排查cpu负载过高的情况,以及java程序full-gc过多的情况等等,再背背那么一些常用命令以及vim的操作即可。
分布式系统:⭐⭐
就看看一些面经上经常出现的一致性哈希、redis缓存、会写LRU、主从复制、rpc原理等等即可,有时间的可以去好好看看阿里的分布式开源框架Dubbo作为自己的亮点(我只是了解过)
设计、方案类题目:⭐
三、面试注意事项
在这之前先指出几点:
1. 自我介绍很重要;
首先,“面试官您好,。。”然后用一句话简单介绍自己姓名、来自那所学校、学院、专业、研究方向(可无)即可,如果成绩优秀可以在此指出,比如前10%;
然后可以用一句话表明自己对应聘职位的热爱原因作为衔接过渡,比如“因为享受用代码解决问题的感觉,从而热爱编程”;
再然后就是分别介绍自己的优势,比如实习经历和竞赛经历,比如“自己先后于**公司和**公司实习过**月,动手能力是比较强的”;(这就是通过摆事实再介绍自己)
继续就是介绍自己的擅长领域,重点!!,这就是给面试官一个面试的切入点,不然他可能随机地问,很可能导致你开场就不会,从而开场印象就不好了,很伤;
最后就是象征地吹一波面试部门的,比如““因为此前在双十一的时候见识到贵公司宏伟的技术成就一直钦慕不已,从此立志进入这个大家庭与大家一起共同学习进步!”
2. 要学会引导面试官;
其实就是在擅长的领域抛出一些“明显的问题”给面试官,让面试官跟着你的节奏来,比抢答要显得从容得多。下面举个经典的例子:
Q:hashmap怎么解决哈希冲突?
A:链地址法。✖———这样天就聊死了
A:使用的是链地址法,不过冲突过多的时候链表过长,也会导致插入时间复杂度增加。✔————这样面试官就有切入点对你继续提问
Q:那有什么方法避免复杂度增加吗?
A:可以对原hash表进行扩容和引入红黑树来解决。✖
A:可以对原hash表进行扩容和引入红黑树来解决,不过jdk1.7的hashmap的扩容机制存在死循环的风险,并且是在1.8才引入了红黑树。✔
Q:解释一下1.7hashmap扩容产生的死循环?
。。。。。。(就这样一直下去,面试官不急的话,hashmap就能聊半个多小时)
3. 要虚心;
遇到不会的要说:“这个确实了解不多,真是不应该,记下来了,之后会去认真学习这一块内容”;
遇到面试官怼你确定的知识点,不要以为是在试探你。。。。这可能就是他忘了,但是我建议你也是顺着他说比较好,因为我看源码比较多,发现很多内容和大家经常看到的博客转发的内容不一致,经常有面试官质疑,一般情况我也就顺着他说,不过遇到对方态度不是那么强硬的,就可以解释给他听说你看了源码确定那些博客内容有些不一致,面试官会觉得你研究的深。
4. 提问;
面试的最后一个环节一般就是“我的问题问完了,你有什么要问我的么”。这是一个展示你关注点的过程,这个可以说没什么用也可以说很重要,说得好可以在面试官心里留下不错的印象,问的low可能会激怒面试官。
禁忌:问非hr面试官薪资、加班、评级、待遇、outing去哪等敏感问题。————别人都没确认要你,你问这个。。找不愉快呢。。
建议:问部门要求、问部门定位、问部门发展等关系部门技术吸引力的地方,你要知道招聘本来就是一个双选的过程,懂了吧。
比如:“请问贵部门在应届毕业生的要求上,基础和应用技能更看重哪方面?”————这个问题甚至可以救命,特别是这轮面试你觉得基础啥都答得不错,就是在有些技能应用比如分布式、大数据答得不好,这个问题就能帮你提醒面试官你的优势,面试官在最后挂电话后会再认真思考再给你打分。
再比如:“请问贵部门在整个集团中是作为一个怎么样的角色与其他部门做交互?网上的资料比较片面,想详细了解下”————这个问题就是表示你对部门的强烈兴趣,同时间接告诉面试官“这是一个双选的过程,也请展示贵部门的吸引力。” 啊哈哈哈。