春节过完,很多人就要准备竞争激烈的春招。各大公司将会正式招聘,由元旦期间拉开序幕(1 - 2 月),到彻底的进入白热化阶段(3 - 4 月),竞争是相当的激烈,谁做的准备越早,谁的胜算就越大。
对于马上到来的春招,很多人不是很理解这个春招到底是针对 19 届的还是 20 届毕业学生?我在这简单的说一下,春招的主体是 20 届,面向的是所有 20 届的毕业生,还有少部分 19 届没找到工作或者考研失败的同学,20 届以找暑期实习为主,19 届以找正式工作为主(是要签三方协议的)。
对于不占任何优势的你,如果想进 BAT 级别的大厂,春招实习 + 实习转正 + 秋招 offer,这个是进大厂最容易的一条路,即使没能转正,有了大厂的实习经历,秋招也能去一个不错的公司;千万别指望着秋招,等你完全准备好了,在去找工作,就错失了最佳的机会。
有读者给我说,他见过很多春招没咋找实习,秋招工作都找的不错,觉得找实习对于自己不是很重要?
没找实习,直奔秋招,拿到不错 Offer,每年都有一大批这种人呢。看看他们所具有的优势你就知道了:985/211、硕士、科班出身。但对没有名校背景的你而言,很多简历筛选都不一定过,你无形中错失很多面试机会,这就是现实。
学历对于互联网行业找工作是起一点作用的,没你想的那么大,基本上要求最低的都是本科学历了,主要还是看技术能力,技术水平。学历不太好的,没必要在这块纠结了,好好提升技术,能力提升起来问题就不大(根据我自己的经验,学历的影响,在春招找暑期实习的时候远小于秋招了),这就是为啥学校不好的,越要参与春招找实习了。
国内计算机强校,首推哈工大和华科,其次两电一邮,西电、电子科技、北邮,还有其他一些计算机强校:北航、中科院、国科大、武大、浙大、中山大学、中南大学、上交等,如果想考研的,上面的学校在互联网业内是非常知名的高校,可以作为首选;如果你有幸在计算机强校,一定要多找找自己实验室的师兄、师姐聊聊,他们会给你提供很多机会和渠道,在根据自己的规划走,找实习、战秋招,这样能更有把握的进入大厂。
面试流程
年后陆陆续续的面试已经展开了,基本上以电话 + 视频 + 现场三种面试形式为主,面试时最好都录音下来,方便自己复盘与总结,简历 + 自我介绍提前准备好,一定要熟悉简历上面的技术点,以及把自己的优势在自我介绍的时候,充分展示出来,最好能吸引面试官,让他顺着这条线去问你。
大部分公司招暑期实习面试都是 3-4 轮,2-3 轮技术 + 1 轮 HR 面试,考察点围绕着:基础 + 算法 + 项目。
正常情况下,一面的就是未来部门的导师,二面就是小组 Leader,三面就是部门 Leader 或者总监。面试你的面试官有极大的可能,就是你未来工作岗位上的师兄。有些公司、有些部门、有些岗位,可能还有交叉面试,面上 7-8 轮技术面试的都有,可能是你的评级高,或者很犹豫要不要招你,又或者你在同一家公司换部门面试了(被一个部门淘汰,另一个部门在简历池把你又捞出来了),这些都是有可能发生的。
第一轮面试一般问题比较全的、比较细的,偏基础和算法(项目也会问的,不过问的不是很深),主要看看你的编程功底是怎么样的,并且第一轮面试的时间一般是超长的。
之前我面试头条一面面了 3 个多小时,头条面试简单的问了一些基础问题,需要拿笔在纸上不断写算法,以及各类的情景设计题。面试官还会把电脑给你,让你现场通过百度解决一些技术问题。写完之后,还问的很细致:这块怎么优化,这块为啥这样写。
这是在考验你的技术能力和算法功底,这是一场超长时间的,需要保持思维高度活跃。这就为啥面试一天或者做完笔试题后,累到瘫了。
第二到第三轮的技术面试,以算法 + 项目 + 智力题为主。这轮面试会针对你的项目,对于功能模块、项目亮点、改进优化、遇到什么困难,怎么解决的,都会问到的,但不会拘泥于细节,而是更加宏观的考察你,以及喜欢在这轮问一些灵活性比较大的题目。
我之前在好未来秋招时,一面二面是直接抽算法题写,二轮下来能写 7-8 道,说明手写代码的能力还是很重要的。时间比一面相对短点,但是二面更加注重了你的潜力以及解决问题的能力。
最后一面是 HR 面,主要是考察你的软技能,沟通能力,谈谈薪资福利,还有是看看你有多大的可能性会来我们公司。
一般情况下,提前了解准备一下,心态放好,认真回答问题都不大的。注意的是有些公司 HR面时,会让你再讲讲做过的项目,用到的技术,HR 面也不一定完全是非技术,有这个心里预期就好。
每轮面试完的评价将在系统中保留,直到最后的 HR 面结束,也不一定能拿到Offer。HR 面也会有淘汰的,也有可能是前面的一轮二轮面试,好几个人旗鼓相当,一时难以抉择,而面试官没有那么多的时间考虑,就先都通过,走入下一轮面试,自己能有更多的时间去考虑到底要招哪一个人。
面试通过,会进入下一轮的,一般会有邮件或者电话通知,没有音信的,就默认被淘汰了。
刷题
基础 + 算法 + 项目,缺一不可,对于基础 + 项目,是比较容易学习与准备的。难就难在算法上面,而各大互联网公司必问算法,算法能力可以体现一个人的聪明程度,以及在一些复杂问题的设计上,需要对时间复杂度与空间复杂度进行权衡,这是在大型系统,高并发,实时性较高场景下必须考虑的,算法能力强的绝对是优秀人才!
我们不是专业打 ACM 比赛的,没有进行过系统的算法能力的训练,针对互联网公司的招聘,算法方面的准备,就必须进行刷题,《剑指Offer》 + LeetCode,只要把这 2 处算法题都拿下,国内任何公司的手写算法,将没有太大的问题。
先把《剑指 Offer》上的 60 多道题刷 2 遍,再把 LeetCode 上面的 easy 以及 medium 刷至少 2 遍,hard 确实难度比较大,看个人时间了。
当年我春招找实习是这样过来的,算法方面我刷了几百道题,一步一步走了过来。我深知做这些算法题是多么的难,很难坚持,为了一道题理解清楚,花费好几天时间。
马上就 3 月了,建议先把十大排序算法 + 《剑指 Offer》至少过 2 遍(比 LeetCode 上面的容易,并且视频敲/现场手写频率比较高,先走内推面试)。没问题的话开始刷 LeetCode,要过笔试算法题,LeetCode 是必刷的,正式春招是需要笔试的,笔试通过才能进行现场面试的,这一关是必须要经历的。
想拿大厂 Offer,算法能力是必备的,一定一定要重视!
面试
面试是 30% 运气 + 70% 实力,要是接连好几场面试没有通过的话,心态要保持好。一定要坚信,肯定会有 Offer 的,面试玄学,一切都很难说。
简历的内容以及自我介绍,一定是有把握的才讲出来。
之前同学面试自我介绍的时候,说英语 4 级,口语还不错。面试官直接说,拿英文把自己的项目介绍一下。
同学当时傻了,常见的口语还可以,技术项目里面很多的专业术语根本不清楚,也没准备英文的简历以及英文面试。当时硬着头皮结结巴巴地说了,然后面试官简单问了一点其他的,20 分钟就面试结束出来了,最后就没了消息。
在面试的时候,千万不要夸大自己,要有礼貌,要谦虚,想清楚了在说,不能着急啊!
面试的时候,熟悉的地方,可以拿纸边画边讲出来,进而把整个体系都引出来(说真的,面试要是问我 RBtree 或者 B+/B- 树,我能把这个数据结构中有关树的结构全部讲出来,问到网络编程,能把 7 大进程间通信,6 大高并发模型都讲出来,这些都是相互联系的,说出来比较自然)。
不会的技术千万不要乱扯,表明自己肯学习的心态就好。
面试的时候,自信很重要,对于自己掌握的知识点,说话声音不要太大但要斩钉截铁,如果面试官问到的问题,自己没有听清楚(电话/视频面试很容易出现这种情况),又或者自己没有理解到位,不要怕,要及时的跟面试官进行沟通,把问题搞清楚。
在面试的过程中,沟通与表达的能力至关重要,通过反复地交流、讨论,再引导面试官,找到面试官感兴趣的地方,深入交流。
笔试没过的,可以去现场霸面试试,机会都是争取来的,不试一试怎么知道没有呢?
学习的意义
大家可以去牛客网上看看,主要是看内推机会、渠道以及面试历程,也可以在上面交流一些技术、资源等,至于面试具体问什么,具体是什么面试题,大概看几眼就行了,没必要把每个人的面试题,你都要弄会、弄懂,那样的话,真是没有太大的意义与价值!
各个互联网公司,甚至同一个公司的不同部门,面试官喜欢问什么,都是不一样的,没必要花那么大的精力去猜面试官喜欢问什么。我们要搞清楚,自己是给谁在学习,给面试官学习吗?为了应付面试拿 Offer 吗?
对于基础而言,不在于你掌握的多少, https 知道一点,TCP 也知道一点,多而不精,还不如自己真正地把 TCP 学好了,再学 https 相关知识,学一门会一门,不要追求数量,要的是质量,这样你才能深入思考,时间久了,习惯养成了,理解能力就上来了。
学习是需要系统性,完整性的,知识之间是有相互联系的。需要长时间的摸索与自学,才能找到编程的感觉,才能对知识的理解达到一个层次,坑是要踩的,只有坑踩的多了,经验丰富了,解决问题的能力提升了,才是真正的大牛,才能真正的沉淀下来一些东西。
在学习的过程中,有很多的经典技术书籍都是必看的,对于不太理解的地方,是需要 Google 以及找博客和一些技术文章去理解的(不要颠倒了,博客或者一些系列技术文章是补充作用),自己要多多的归纳、总结,能力会慢慢的提升,学习就是一个循序渐进,水到渠成的一个过程。
现在把面试需要的技术总结出来一套思维导图和录制了一些相关视频,分享给大家,供大家参考。
需要相关资料可以加群:810589193,点击链接加入群聊【Java架构学习交流群】:https://jq.qq.com/?_wv=1027&k=5deQUBl可免费领取
我把它分为六个点
1. 高性能架构
1.1. 分布式架构思维
1.2. Zookeeper分布式环境指挥官
1.3. Nginx高并发分流进阶实战
1.4. ActiveMq消息中间件
1.5. RabbitMq消息中间件
1.6. Kafka百万级吞实战
1.7. Memcached进阶实战
1.8. Redis高性能缓存数据库
1.9. MongoDB进阶实战
1.10. 高性能缓存开发实战
1.11. Mysql高性能存储实战
1.12. FastDFS分布式文件存储实战
1.13. 高并发场景分布式解决方案实战
2. 微服务架构
2.1. 服务的前世今生
2.2. 基于分布式思想下的RPC解决方案
2.3. Dubbo应用及源码解读
2.4. SpringBoot
2.5. SpringCloud应用及源码解读
2.6. Docker虚拟化技术
3. 开源框架
3.1. spring5概述
3.2. Spring5 Framework体系结构
3.3. Spring5环境搭建
3.4. IOC源码解析
3.5. AOP源码解析
3.6. Spring MVC
3.7. Mybatis
4. 架构师基础
4.1. JVM性能调优
4.2. Java程序性能优化
4.3. Tomcat
4.4. 并发编程进阶
4.5. Mysql
4.6. 高性能Netty框架
4.7. Linux基础与进阶
5. 团队协作开发
5.1. Git
5.2. Maven
5.3. Jenkins
5.4. Sonar
6. B2C商城项目
6.1. 系统设计
6.2. 用户管理子系统
6.3. 商品管理子系统
6.4. 搜索子系统
6.5. 订单子系统
6.6. 支付系统
6.7. 分布式调度系统
6.8. 后台系统
写在最后
我之前在春招备战时(第二遍巩固基础),看了计算机网络、操作系统、数据结构、Linux 这些基础,都是系统自学过的(看视频 + 看书)。我学习的时候,没有说看什么计算机网络哪块是重点,具体需要学那些知识点。因为我不希望在系统学习的时候,还给自己列一大堆条条框框,这块不用看,那块是重点,这样对于自己学习的视野会进行一定程度的压迫,第一遍系统学习的时候,全看。第二遍的时候,哪些重要、哪些不重要,自己心里没底吗?不要总听别人的,别人给你画个重点,你就不管其他地方了?
自己要对自己负责,系统学过一遍,很多看似无用的地方,实则还会对你有一点的启发作用,可能自己感受不到,一旦打通了自己的学习体系,很多知识就可以融会贯通;在面试的时候,很多场景有可能你之前没接触过,但是之前的学习经验与方法会帮到你,有了知识的沉淀,思考将会更具灵活性、随机应变的解决一些问题,如果想要编程的路走的更远,自学能力、靠自己解决问题的能力是必须具备的。
面试,把它当做一个学习的过程,一个可以跟各大互联网优秀人才接触的机会,一个真正的自我反思,自我成长的锲机!
珍惜每一场的面试,都拿出最好的状态,最大程度地表现自己,做到最好!
相信自己,将是你最大的源泉与动力!
为了解决小伙伴们的燃眉之急,小编特地为大家整理了这些Java相关的资料,可以加小编的QQ群:810589193,获取!后期也会不断更新添加新的面试题,希望可以帮助到大家。
网友评论