开发方向校招准备的正确姿势,机会留给有准备的人

简介: 开发方向校招准备的正确姿势,机会留给有准备的人

一、背景

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


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


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


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


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


由于本人是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的好书有很多,但是最少必备的一定要看好。


还有其他的欢迎补充。


其中部分书籍也可以在我的店铺购买: https://j.youzan.com/-MSbVi  


另外复习找不到重点???


可以参考我上面推荐的书,也可以去招聘岗位上看描述,去牛客网上看面经!!!!


九、答疑

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个学生,一个进入了阿里巴巴,一个进入了网易,两个进入了华为。


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



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


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



————————————————

版权声明:本文为CSDN博主「明明如月学长」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。

原文链接:https://blog.csdn.net/w605283073/article/details/90815472

相关文章
|
2月前
|
程序员 开发者
【活动】程序员职业生涯的分水岭:年龄还是经验?
在编程界,35岁是否是程序员的分水岭?文章探讨了技术更新对资深程序员的挑战与丰富经验的价值。尽管快速学习新技能至关重要,但经验在解决问题、架构设计和团队领导方面展现出优势。个人经历证明,持续学习与经验结合能让程序员在技术变革中保持竞争力,35岁应视为新起点而非终点。
20 1
|
7月前
工作十年以后,你们懂得了哪些职场道理?
工作十年以后,你们懂得了哪些职场道理?
65 0
|
5月前
|
人工智能 算法 前端开发
想转行IT,有前途嘛?30个详细理由中会得到你想要的答案
想转行IT,有前途嘛?30个详细理由中会得到你想要的答案
43 0
|
7月前
|
算法 Cloud Native 程序员
C++ 程序员入门之路——旅程的起点与挑战
C++ 程序员入门之路——旅程的起点与挑战
50 0
C++ 程序员入门之路——旅程的起点与挑战
|
9月前
|
架构师 Devops 程序员
程序员晋升指南!13年顶级架构设计经验的锦囊妙计与实践分享
如今分布式、高并发、高可用、DevOps等技术和理念已深入人心并得到广泛应用。能够深入理解和驾驭这些技术、架构和方法论,在中大型平台建设中担负起至关重要的决策和管理责任,使平台建设取得成功并可持续发展,不断满足新的业务需求和变化,是很多IT从业人员心向往之的职业发展方向。 企业IT架构是一个随着业务的变化不断发展进化的过程,每种架构在当时的阶段都非常好地支撑了当时的业务模式。信息化技术刚开始应用到业务,可能使用一个单机软件就可以搞定一个信息系统。随着技术的发展和越来越复杂的业务需求,软件架构变得越来越复杂,系统越来越庞大,设计并驾驭如此复杂的软件系统,考验着每位软件架构师的综合能力。
81 0
|
9月前
|
SQL
工作中的成长是从摆脱低水平勤奋开始的吗?
成长的本质是自我革新,成长就是在不断变化中的积极面。深度思考、目标设定、自律实践、持续学习、总结反思等步骤可以帮助我们成长,同时也需要避免陷入低水平勤奋的陷阱,不要忙于行动而忽视了反思和学习。
109 1
|
12月前
|
存储 城市大脑 运维
程序员的机会与趋势
程序员的机会与趋势
99 0
|
12月前
|
存储 城市大脑 运维
程序员成长第一篇:机会与趋势
程序员成长第一篇:机会与趋势
80 0
|
12月前
|
程序员
程序员成长第十四篇:把时间用在最重要的事情上
程序员成长第十四篇:把时间用在最重要的事情上
81 0
|
程序员 数据库
以终身成长的角度看待程序员的工作
随笔分享!欢迎留言交流!
105 0
以终身成长的角度看待程序员的工作