为了账号安全,请及时绑定邮箱和手机立即绑定

拿大厂offer的正确方法

标签:
Java

一、背景

马上就快到校招的时间了。

网上有很多分享面经的地方,也有一些博文分享作者的面试经历,尤其是大公司的面试经历。

大多数是分享具体的问题,而没有系统的总结出方法论。导致大家只不过是在刷题!仅此而已!

当然刷题没错,面试常见的问题就那么多,而且这些也是未来工作需要掌握的基础。

但是我们更应该掌握怎么准备校招,找到哪些是重点,了解面试面哪些能力。

 由于本人是Java工程师(前网易Java开发工程师),推荐的资料部分可能推荐的Java居多,但是通用能力是可以参考的。

注:社招也可以适当参考本文,只不过社招的要求高一些,但是部分面试能力是通用的。

本文有点长,但是干货很多!

二、诡异的感受

有些同学面试的时候会觉得啥都答上来的,问的问题很简单啊,咋最后没过呢??

这种情况很大概率是稍微难一点的问题就答不上来,答上来的不全面,没深度,不想问了敷衍一下罢了。

比如问你http的请求方法是啥,你很happy的回答,有GET POST两种,xxxx。绝大多数人都可以回答上来,你的优势在哪里?

可以看这里  https://www.runoob.com/http/http-methods.html

如果你不仅可以回答GET POST,其他的都可以回答出来,甚至提到HTTP1.1新增的是哪些是不是更有优势呢?(不过小心他问你,1.1有的其他特性,需要准备下)

比如问你HTTP响应码有哪些,你脱口而出200,400,500,然后感觉自己好牛的样子,很开心,问到了自己会的问题,so easy!!

其实正确姿势可能是这样,参见https://www.runoob.com/http/http-status-codes.html

回答出2,3,4,5开头的分别啥含义,常见的有哪些,甚至还可以分析哪些场景下会出现这些情况。

比如问你线程池的优点,so easy! 准备到了! 然后问你ExecutorService 是主要的实现类,其中常用的有哪些?

so easy,面试官真好,都是会的,然后巴拉巴拉:

Executors.newSingleThreadPool(),newFixedThreadPool(),newcachedTheadPool(),newScheduledThreadPool()。

都是干啥的,特点是啥回答完了,好开心的说。

当然这样没啥问题,但是同学你没有超出期待,你和其他同学比,你的优势在哪里??

都回答了这么多了还想怎样??难道这样还不行?

对你可以做的更多,更好,what????

如果你看过《阿里巴巴Java开发手册》,请注意这一段:

【强制】线程池不允许使用 Executors 去创建,而是通过 ThreadPoolExecutor 的方式,这样

的处理方式让写的同学更加明确线程池的运行规则,规避资源耗尽的风险。 说明:Executors 返回的线程池对象的弊端如下:

1)FixedThreadPool 和 SingleThreadPool:

允许的请求队列长度为 Integer.MAX_VALUE,可能会堆积大量的请求,从而导致 OOM。

2)CachedThreadPool 和 ScheduledThreadPool:

允许的创建线程数量为 Integer.MAX_VALUE,可能会创建大量的线程,从而导致 OOM。

 参见《阿里巴巴Java开发手册》


具体原因可以看源码或者看《码出高效》相关章节。

你能够说出特征,然后提示说不建议使用,并说出原因,你已经甩绝大多数人好几条街了,很可能脱颖而出。

当然还有很多,就不一一列举了。


三、技巧篇

干货!干货!以下章节或许一些人看过不以未然,不当回事,但是认真体会或许面试会多很多机会。

机会留给有准备的人,同样文章也留给用心的人!


3.1 会的要超出面试官的预期

正如前面锁举例的一样,会的问题尽量不仅回答的不遗漏,而且尽量超出面试官的预期,尽量和绝大多数人多一点亮点。


3.2 不会的尽量说思路

为什么呢,聪明,举一反三的能力,也是很多公司尤其是大公司考察的一项,甚至是加分项。

个别的你没学过,但是很多原理都是通的。

可以说“我没学过这个xxx,但是如果让我做的话xxxx”,“我没学过这个,但是看它和xxx比较相似,应该是xxxx/可以xxx”

举个例子,比如面试问你“spring-boot-starter的机制的原理是啥?,就是功能封装到Jar包里,引入进去就可以自动配置@Bean。”

你真的没接触过,但是你了解过SPI机制,里了解过Spring的@Configuration和@Bean注解的含义。

那么你可以说“我没学过这一块,但是之前了解过SPI机制和Spring的@Configuration,应该是类似SPI的机制,比如jar包里应该有某个配置的文件,让spring能够识别,应该有类似@Configuration这种类注入需要的Bean,xxxx”

那么或许加分就不少。

3.3 其他

3.3.1 学习的时候串联各种知识,找出共性,面试的时候可以发挥

3.3.2 可以主动扯到更深的层次

3.3.3 面试官问的模糊的问题要和他确认

3.3.4 准备的时候不要只看面经,很多面试官会问点“偏的”让你没有准备好而露馅。

比如HashMap都不问你扩容啥的,就问你“modCount”是干啥的,蒙了吧??不过如果你会看2.2的建议就可以扯到ArrayList里的modCount,其实都是类似的。


四、面试工具篇

4.1 云笔记来整理面试题

可以用有道云笔记,也可以用印象笔记。

最好电脑和手机可以同步的,平时方便看,及时去面试了,个别不熟悉的知识点,算法,面试的路上也可以看。

这点超级推荐

4.2 思维导图

可以用思维导图整梳理一下自己已经会的,不熟悉的知识点。

4.3 必备网站

4.3.1 不用说,首推牛客网(能否发个网址?No,有一个网站叫百度,这都不会别准备了,放弃吧!

重点是里面的校招日历,里面大公司的面经,里面《剑指Offer》等的练习题。

4.3.2 LeetCode

因为仅仅会剑指Offer可能还不够,多刷刷其他的题,


4.3.3 几个超赞github面试题

https://github.com/Snailclimb/JavaGuide

https://github.com/doocs/advanced-java

https://github.com/javagrowing/JGrowing


4.3.4 各大企业校招官网

具体什么岗位,要求啥写的很清楚。


五、简历篇

个人推荐最好是彩色,但是不要花哨

重点突出,写完让同学看看,让工作的学长看看

最好是一页,如果是两页,第二页写到一半以上

不要出现任何低级错误

不要随便出现“精通”字样,写的一定要熟练

写的东西就有可能被问到,和求职的职位无关的少写

如果没把握也可以简历发给我帮参考一下,如果想找我内推也可以简历发给我  liuwangyangjob@163.com


六、其他操作

谦逊有礼

多看点智力题,有些公司问智力题,不会相对显得不够聪明

尽量一题多解并给出最佳方案

如果在剑指offer上见到原题,不要面露喜色,要故作思考状,然后作答等等

七、面试考察什么?

7.1 沟通理解能力

能否简单的几句话把一件事情描述清楚;主动沟通能举一反三;能快速理解问题


7.2.计算机基础扎实

数据结构(线性表、树等)能理解到位;算法(常见的查找算法、排序算法)能了解常用的算法复杂度。


7.3.实战经验,动手能力强

对数据库的运用,索引的作用(原理和结构加分);对MQ、搜索引擎、hive等有概念(有实际使用经验加分);熟悉开发的流程,有开发的经验


以下几个可能是加分项:

开源社区源码贡献

获得过全国性专业比赛奖项

职业发展或技术上有短期和长期的规划

对技术之外的领域有一定认知,比如对产品、商业

画图能力

掌握其它语言或者其它技术能力


八、Java开发图书推荐

必备的是常考的,个别书是看好了就可以秒杀面试官的,就可以拉同伴好几条街的。

剑指offer(必备!!!)

阿里巴巴Java开发手册(必备)

码出高效 (必备!!!)

深入理解Java虚拟机:JVM高级特性与最佳实践(必备!!!!!!!)

Java并发编程的艺术(必备)

Java多线程编程核心技术(必备)

MySQL45讲(极客时间,必备!!!!)

Redis深度历险 核心原理与应用实践(必备!!!!)

阿里技术之瞳(必备)

数据结构实用教程(Java语言描述)(推荐)

大型网站技术架构:核心原理与案例分析(必备)

图解多线程设计模式(推荐)

深入剖析Tomcat (推荐)

Effective Java(推荐)

设计模式  刘伟(推荐)

分布式服务架构  原理、设计与实践(推荐)

dubbo官方文档(推荐)

这里是我个人认为这里是面试时比较重要的几本,但是绝对不仅限于此,Java的好书有很多,但是最少必备的一定要看好。

还有其他的欢迎补充。

九、答疑

9.1 为了超出期待是不是简历里要写的不太行?

有点诡辩哈。这就像相亲为了见面让对方认为超出期待,照片给一个丑的。

那么结局很可能是连见面的机会都没有!

这里的超出期待是指,超出同层次的其他人,超出面试官对校招生的期待等等。


9.2 回答太多是不是会让面试官讨厌?要不要主动回答的多?

为了避免被面试官讨厌,可以回答全面但是要言简意赅!

回答全面完全不等于废话连篇!

另外咱可以诱导面试官。

比如上面举例的线程池问题,你回答完以后,可以来个不过“《阿里巴巴Java开发手册》不建议用Executors创建线程池”。

面试官如果不想问,就此打住,正常的面试官会抓住这个机会问下去看看你是否真正知道为什么。

那么机会来了。

另外面试尤其一面电话面,发现面试官情绪不对抓紧打住,想想是不是哪些说的太离谱?是不是废话太多?


9.3 面试靠运气?

的确面试有运气成分。就像高考也有平时学习一般的最后成为黑马。

但是大多数都是凭实力。

没太大实力的才凭运气,就像你四级做了很多套真题都是及格线上,真正去考试估计过不过要看运气了。

尤其是非211的学生,能够进大企业的几乎每个都是实打实的能力。

当然自己准备的确实不错,但是对方就是不要,也未必是运气问题,很多企业根本不招那么多人。

这就像考研复试,都得1:1.5,面试可能1:10甚至1:100+,淘汰率很高。

不在于你表现的好不好,而是你比其他人强多少!!

9.4 校招要求低的问题

校招相对于社招,项目经验要求低,排错的能力要求的高级特性,分布式的技术等相对要求低。

很多学生在学校里可能就做了点SSM的项目。认为这些就够了!不这些远不够。

最起码Redis常见的数据结构,持久化机制等;

MySQL的各种引擎的区别,索引的结构等;等等,都要说的很清楚。

如果你想去大企业,专业基础必须扎实,算法能力最好强一些,公司的核心技术站尽量多了解,如果没机会做过类似项目,起码本地搭建一个了解一下。

这样你才有更多机会。另外一点大企业容错率很低!!!

这种要求低是相对而言的,校招是否能够去更好的企业取决于你大学的积累,以及准备的是否充分,是否懂得一些面试技巧等。

这点和考研很类似,很多学生学校好考研有天然优势,大学拿过国家级奖项,高级别论文,这些是硬实力,已经拉开了很多人。

所以大家的起点就不一样。

反而越是学校一般的学生,越倾向于认为“反正校招要求低,没必要xxxx,没必要yyyy”,就显得有些可笑。

当然不是每个人都有追求,也不是每个人都能进名企(当然不排除有些人不屑,认为小企业更适合自己)。

9.5 其他问题

可能还有其他疑问,可以评论留言,也可以扫描左侧的码,加我微信或者知识星球和我交流,我有空会一一解答(一般白天上班可能不能及时回复,晚上一般都在线)。


希望大家理性客观的思考问题,多站在面试者的角度(现在工作身边好多面试官,经常面试校招社招的学生),公司的角度想想他们想要什么样的人(大企业宁愿多花钱也不想要达不到要求的)。

十、感悟

校招大家要提早准备,不要临时抱佛脚,这不是期末考试!

其实当你简历拿到手,结局多半已经注定了。

是否是211,是否有国家级专业奖项,是否有拿的出手的项目,是否专业排名top10,是否在知名开源项目贡献过代码,对去大企业起很大作用。

另外专业基础不扎实,最容易被PASS掉,越是大公司对专业基础的错误容忍度越低。

总之校招要早点准备,重点突出,复习有章法,效果会更好一些。

另外校招虽然存在竞争,也有合作,可以和同学分享一下经验,或许都可以去更好的公司。这是全国的竞争而仅仅是你们两个人

个人建议如果有机会,校招尽量去大企业,未来换工作有更多的资本。

我们准备校招的时候分享经验,都有很大提高,最终结果都不错,同一个导师4个学生,一个进入了阿里巴巴,一个进入了网易,两个进入了华为。

另外想说语句,机会留个有准备的人。

以上仅代表个人观点,如果认为有值得借鉴的地方可以参考,如果不认可按照自己的想法来就好了,见仁见智。

希望本文对大家有帮助,希望可以帮助更多人少走弯路,如果觉得有收获,欢迎关注我的博客,欢迎分享给身边的同学。



点击查看更多内容
3人点赞

若觉得本文不错,就分享一下吧!

评论

作者其他优质文章

正在加载中
JAVA开发工程师
手记
粉丝
3857
获赞与收藏
1465

关注作者,订阅最新文章

阅读免费教程

感谢您的支持,我会继续努力的~
扫码打赏,你说多少就多少
赞赏金额会直接到老师账户
支付方式
打开微信扫一扫,即可进行扫码打赏哦
今天注册有机会得

100积分直接送

付费专栏免费学

大额优惠券免费领

立即参与 放弃机会
意见反馈 帮助中心 APP下载
官方微信

举报

0/150
提交
取消