前言
二本出生、软件工程专业的楼主经历了为期三四个月的持久战,有幸于2019秋季招聘中拿到多个公司的研发岗offer。虽然不能和BAT那些一线大厂比较、但感觉也不是很差。最终通过的公司也不在少数。
一路走来也遇到很多困难,也踩了很多坑,同时我自己也探索了很多的学习方法,总结了很多心得体会,并且,我对校园招聘也做了一些研究和相应的准备。在今年的秋季招聘结束以后,我也决定把这些东西全部都写成文字,做成专题,以便分享给更多未来将要参加校招的同学。
毕业季,每一批毕业的应届生们或多或少都会感受到了就业的压力。越来越多的学弟们向我们咨询找实习,参加校招的经验…反而我们慌的一笔,自己工作还没整明白呢,反而要去指导别人。不过反过来一想,自己很多时候走了这么多弯路还不是因为没有前辈指点。既然自己已经摔成了这样,何不在自己遇到的坑旁边树立一个指示牌呢,这样对后来人也有一些帮助。
个人基本情况
学校:某二本学校
学历:本科
专业:软件工程
方向:Java
个人网站(此文出处):www.luotf.com
注:开源地址 该网站已在gitee上开源,如觉得不错,对你的学习有帮助,欢迎 Star,Fork,提出问题,提出需求。谢谢!
春招踩坑
由于楼主没有春招秋招相关概念,所以春招实习的机会没有好好把握,留在了学校;7月份进入了一家小公司实习,当时想着明年毕业前再去好好准备校招、却不知道…校招马上就开始了、楼主一直以为校招应届招聘是毕业后才开始招聘呢…所以加紧准备的同时不忘海投简历。
由于简历没有亮点外加学校不看好,大厂提前批基本就没我啥事了。幸运的是,在之后面试中,面试公司一个比一个好。
对待面试的态度
无论大厂小厂只要给面试机会一般都会去面试,因为手里的offer都不是很满意,不管面得怎么样、只要去面试就会有收获,面试是一个提升自我很好的一种方式、查漏补缺的效果特别好、内心一直抱着大厂在后面等着你的想法、通过小厂不断去提升自己,然后去面自己喜欢的公司;可没想到 剧本就是这样来写的。(-_-`)~~~
秋招历程
整个秋招前前后后、大大小小总共投了 七八十 个公司、利用实习空余时间 进行各种奔波,笔试,面试。
bat tmd 先小列一下。
阿里:提前批简历挂、正式批没管。
百度:提前批简历挂、正式批没管。
腾讯:提前批简历挂、正式批一面凉。
滴滴:提前批简历挂、正式批笔试挂。
头条:第6次笔试后通过…对、这就是宇宙条。
美团:提前批简历挂、正式批约面试、时间冲突、改约面试时间后 没下文…(我先哭会儿)
简历挂:华为、唯品会、猿辅导、拼多多、快手、陌陌、OPPO、VIVO、携程、酷狗、作业帮、小红书、百词斩、虎牙、格力、浙江大华、平安科技、中兴、几个银行和信用社。
笔试后无下文:滴滴、网易、知乎、贝壳、斗鱼、第四范式、招商、微策略、ZOOM、KEEP、CVTE、三七互娱、4399、商汤、绿盟、完美世界、飞鱼、猪八戒、iHandy。
其中还有一些公司直接发的简历、有些没有记录下来。
面经分享
限于篇幅,这里先不放面经,公众号后台回复 双非也有自己的春天
小感悟
要明白自己的优劣势。学校不好,经历不够出彩,那就在基础和项目上多下功夫,很多研究生是没有实习经历的,因为有些导师不放他们去实习;所以如果你有实习经历那么就是你的优势。
面试尽可能的展示自己。面试也就三四十分钟的事,仅仅靠面试官问你问题,除非你答的十分完美,否则即使你有再大的能力,面试官也不知道对吧。所以抓住短短的面试时间,主动地向面试官展示你的优秀。
面试运气占很大部分。遇到一个对眼的面试官很大程度上决定了你们聊天的内容,也很大程度上决定了面试的成功率。所以几次面试不过,不要气馁,反思反思,接着干。
简历一张纸就够。一份好的简历真的很重要,很重要,对你的秋招影响深远。
多加一些招聘交流群(微信群/qq群)。牛客网会有很多帖子有加群信息等,这些群可能会隐藏了很多资源,有需要的时候可以看一看,说不定最后能救你一命呢。
最重要的秋招资源
牛客网
一个牛客网抵过所有招聘网站、什么智联、拉钩、58加起来都没半个牛客网有用;所以秋招最最最最重要的一个平台牛客网,牛客网,牛客网;整个秋招基本都是每天刷牛客网、和打开QQ、微信一样频繁。
QQ群/微信群
牛客网会有很多同学或者HR发布招聘的QQ群或者微信群;能加就一定加,能进就尽量进;不要嫌弃消息多,群多;这就是隐含的资源,里面就有很多干货、内推招聘信息等;更何况有一大部分人都比你优秀,学历普遍比你高几个等级,多认识一些优秀的人对自己今后的发展也有益处。
脉脉
脉脉是职场社交平台、里面有很多互联网公司的内部信息;你可以在上面了解到各个公司的内部情况,对你以后的选择也有很多帮助。
专项技能准备(Java方向)
Java基础知识
基础非常重要,当然也要深入理解原理。
IO、NIO、AIO:能说出各自的区别及相关原理;
集合框架(List、Set、Map):内部实现80%的面试都会问到(LinkedList、HashSet、HashMap、CurrentHashMap等);各个接口实现类的时间及空间复杂度是多少、什么场景适合用什么集合。各个集合的相关线程安全问题等。
多线程并发相关:线程的状态及其转换过程,线程创建的几种方式以及优缺点,线程常用的那几个方法;Synchronized、ReentrantLock、AQS、Volatile,ThreadLocal类,原子类(AtomicInteger、AtomicBoolean..)、CountDownLatch、CyclicBarrier和、Semaphore这些至少要能简单的解释出他们的大概、最好能够说出其内部实现、使用场景、以及各自的一些区别等;线程池的实现原理、相关参数,几种队列的区别、拒绝策略,相关调优等。
设计模式:23种设计模式都需要了解一点,熟悉常用的如:单例,工厂,模板,适配器,代理,装饰器,迭代器,观察者等。理解他们的设计思想,可以找找在其他框架哪些用了这些设计模式。
框架:框架在面试中问的不算多、基本都是问的spring,80%都会问到ioc,aop的实现原理,静态/动态代理、bean的生命周期,加载过程,事务管理机制等;其他框架你也要做一些准备;spring mvc的工作流程,几种orm框架的区别,优缺点等。
Linux:常见的一些简单操作要知道。
JVM:垃圾回收的过程,GC算法,GC收集器,Classloader,Java内存模型的几个分区,相关的作用,OOM情况分析等。
Java高级知识(会加分)
如果再去了解一些高级知识的话,当然是加分项啦;比如,消息队列、搜索引擎、缓存、分库分表、读写分离、高并发系统、分布式系统、分布式服务框架、分布式锁、分布式事务、分布式会话、高可用系统(限流、熔断降级等)。
数据库
Mysql:简单的sql语句至少能手写(分组,连接,子查询等)、sql语句的执行过程、数据库引擎(Inndb/Mysiam)、B/B+树相关问题,索引原理、聚集索引/非聚集索引区别、联合索引、explain、sql优化、数据库事务、乐观锁和悲观锁、脏读、虚读和不可重复读、隔离级别、MVCC、表锁/行锁/间隙锁、慢查询日志等。
Redis:redis的数据类型、几种数据类型底层的实现(跳表,字典等)、缓存雪崩、缓存穿透、热点Key等、持久化RDB/AOF、数据淘汰策略等。
备注:以上列出的只是面试经常会涉及的知识点,每个知识点可能会引出很多的面试问题,很多知识点。所以准备的可以借鉴上述的知识点大纲,去全面准备。
通用技能准备
(数据结构、算法、计算机网络、操作系统)
数据结构:数组、链表、堆、栈、队列这些肯定必须全部熟悉,二叉树这里可以引申很多东西,二叉查找树、平衡二叉树、红黑树这些也要知道,经常会问。
算法:算法这个东西得日积月累、大公司很看重这个;互联网的大公司基本只看重ACM竞赛、线上笔试有很大一部分算法题、建议多刷题,大家都在推荐 leetcode,最好每天都能练几道。剑指offer 那60多道的题,怎么也要能在白纸上写出来衫。
计算机网络:TCP/UDP、OSI的七层,每层做什么,有哪些协议等;三次握手/四次挥手、两次握手会怎么样?为什么需要等待2MSL?TCP如何保证数据的可靠传输的、拥塞控制算法及相关过程、连续ARQ和滑动窗口协议、HTTP和HTTPS、对称/非对称加密、输入url地址到显示主页的过程、长连接和短连接、HTTP常见状态码、HTTP无状态/无连接、HTTP的请求和响应格式,有哪些东西等、HTTP请求方法有哪些等。
操作系统:进程/线程、进程间通信、进程同步、线程间通信、死锁产生原因、怎么避免等、死锁/活锁、进程调度算法、页面置换算法、虚拟内存、什么是临界区?如何解决冲突?分段/分页、计算机的存储结构、虚拟内存/物理内存、虚拟地址/物理地址、进程地址空间、孤儿进程/僵尸进程、mmap和普通文件操作的区别、操作系统创建一个新进程的主要步骤、多线程上下文切换等等。
一个快速提升自己的方式
(多面试)
只要你没有特别满意的offer、只要给面试机会,最好都去面一下,无论大厂小厂。不管面得怎么样、只要去面试就会有收获,面试是一个提升自我很好的一种方式、查漏补缺的效果特别好。一旦面多了后你就会发现很多情况你都能随机应变了,提升自信心。
大三春招,实习(这是一条捷径)
时间点:大三下学期(3月份开始)
为什么说这是一条捷径呢?对于非985/211研的这些同学如果毕业想直接进入大厂的话,还是很有难度的,不是说技术方面差距很大,而是在秋招的时候人数太多了,而企业也不会每个人都安排面试,所以相对来说;筛选简历就很严格了,所以很多非名校的学生,很多都没面试机会。而春招实习不同,对实习生的要求不是特别高,简历筛选也相对不那么严格。一旦春招去了一家大公司实习,即使你最后不能转正,没有留在该公司,那么大公司实习的经历在你之后的秋招道路上也会为你的简历加分很多。名企的经历=名校学历;所以春招对于学校不好的同学来说是一个很好的捷径。
秋招(转折点开始)
时间点:大三下学期完后的暑假(7月份开始)
首先,参加秋招是应届生找到好工作最重要的方式。错过了秋招和春招,很多公司会告诉你,我们不招应届生。
其次,秋招的企业数量多,岗位多,质量好,选择余地大。
再次,秋招处于大四的第一个学期,可以给后面创造主动。为什么会创造主动呢?因为有秋招的经历、就有一些相应的资源、人脉、经验等。到时候再去准备春招就会简单很多;其次,秋招相对来说有选择权,因为一旦不满意,春招还有机会毁约,去争取更好的offer;而没有参加秋招,那么春招你将背水一战。
秋招提前批(神仙打架)
提前批在7月份就陆续开始了,很多企业会各种内推你,各种内推码,告诉你简历免帅选,直通面试等等的话语;但事实告诉你,很多内推只是让你的简历不会被挂掉,到校招正式批的时候给你一个网上笔试的机会。
如果简历很不错的当前能在提前批中获得面试机会,提前批面试没有笔试,直接约你电话或视频面试等。所以提前批的简历筛选特别特别严格,面试难度也普遍很大,所以都是名校的一些超级大佬之间的对抗,因为提前批就是大企业抢人才的一种方式。如果你在提前批中没有面试机会,不要急。后续还有校招正式批。
秋招正式批(百舸争流)
8月份就有很多企业开始正式校招,官网投简历,后续安排网上笔试,笔试通过后安排线下专场面试或网上面试。网上笔试难度普遍较大、因为正式批校招人数超级多,很多都是通过笔试的形式来筛选你有没有面试机会。
正式批相对来说,获得面试的机会相对较多一点,面试通过后可以获得专场面试机会,公司在各个地区陆续会有线下面试,一般有2-3轮技术面,有些公司有HR面,有些公司没有;面试地点基本是酒店,环境好点的可能一间房间就只有你和面试官,差一点的就是大家都在礼堂里,面试环境没有分隔,这样可能略微有点吵,快的一天就能出面试结果,慢的一般几天内就会通知。
重要:面试通过不一定代表你能录取,也不要完全相信 HR直接告诉你面试通过了…这些话语。在收到正式offer文件之前,随时都要做好拥抱变化的可能;因为大公司都是择优录取,即使你面试通过,没有给你发正式offer文件前,随时都可以不录取你。 所以不要以为稳了就放弃其他公司的面试机会。
秋招补招批(平民翻身)
十月份一些大的互联网公司基本就结束秋招了,都招的差不多了;这时候很多国企,银行陆续开始招聘,不过可想而知,国企银行这些公司技术可能要求不高、但学历门框都是非常高的。十月份底的时候,可能有一些互联网公司会发一些补招信息;因为在提前批和正式批中,有20%的大佬拿了80%的offer,大佬们都是人手好几个offer,但最后也只能签约一个公司,所以有些公司在这时有一些补招名额;这时你要抓住机会,因为很多公司补招没有笔试,简历筛选通过后直接发起面试,所以机会更大;相对来说,补招竞争小的多,因为很多大佬们都已经签了满意的公司。
大四春招(最后一根稻草)
如果你从7月份开始一直就开始准备秋招,完整经历秋招后,那么你肯定会有很多收获,包括对专业的认知,整个互联网公司的一些情况都会有所了解,秋招的干货、人脉和经验等,经历过这些后再来准备来年的春招就简单了很多。
这时你可能有以下三种情况:
秋招没有收获offer(怀疑人生吧)
这种情况属于比较悲哀的,整个秋招都没有到offer,这时该好好反思,总结自己和别人的差距,利用接下来的几个月好好准备,明年还有一次春招的机会。
秋招收获了offer,但不满意(明年再战吧)
这种情况是最常见的,offer因人而异,每个人报复不同,所以对自己的定位不同;那么这种情况该怎么办呢?
首先,秋招保底的offer至少应该签一个,不然春招背水一战,压力太大。
其次,找几家你喜欢的公司,去看看有没有实习招聘,因为大公司的用人需求很大,实习生的需求也大;而你此时经历过秋招,再去面试一些实习岗位就会简单许多;如果有幸能进入你满意的公司实习,那么你就要在这几个月好好表现,一般3个月后就有转正机会;也就是在明年春招的那段时间你可以向公司提出转正;如果能转正,那当然完美;立马准备毁约秋招的公司,签你满意的公司;如果不幸你不能转正,那么你也不要急,此时你有大厂实习经历,秋招offer经历,此时去参加春招也有很多的优势;春招也有很多机会,如果能拿满意offer,当然也毁约秋招公司;如果春招失败了,你还有秋招offer保底呢。这样的话,机会还是有很多的。
秋招收获了offer,非常满意。
这种情况的话…. 两种方案。
方案一:好好去旅游一下,毕业前几个月去你签约的公司实习一下,提前熟悉环境吧;你注定无缘春招。
方案二:尽早去公司实习,了解公司内部情况;如果和你预期不一样,不满意的话,好提前准备春招。
秋招常见问题:我有多个公司的offer、该怎么选择?
这个问题太常见了、随便举一个例子:
大厂20万,XX岗位,XX地点,部门一般等,补贴什么的,工作时间 10 9 5(早上十点上班、晚上九点下班、一周五天班);
中厂25万,XX岗位,XX地点,部门很好等,补贴什么的,工作时间10 8 5;
小厂30万,XX岗位,XX地点,部门不好等,补贴什么的,工作时间996;
这种情况该怎么办呢?
不能一味 大厂优先、待遇优先等说法;应届生的第一份工作对今后的职业发展是非常重要的。
公司的品牌和知名度:大厂平台可以镀金,决定着你以后的发展以及未来跳槽到其他大公司的敲门砖。
公司的部门:部门决定着在公司的地位,假如处于公司里面的核心部门,那么你日后升职加薪的速度比人快,做事的成果容易被公司看到,公司投入的资源也会更多。
待遇或相关薪资:薪资只要不是差距特别大、最好都不要太过于面向薪资编程。
公司的文化以及工作环境:事先了解该公司的内部技术怎么样?工作环境怎么样?对新成员的培养制度等。
加班情况:这一点非常重要,现在互联网公司普遍都有加班的现象,更何况大公司的加班氛围非常浓厚;有些公司加到凌晨都是正常现象,这些需要自己去提前了解。这一点可以去脉脉询问入职的同事等。
End
关于本号作者乔戈里亲历2019秋招,哈工大计算机本硕,百度java工程师,欢迎大家关注我的微信公众号:程序员乔戈里,公众号有3T编程资源,以及我和我朋友(百度C++工程师)在秋招期间整理的近200M的面试必考的java与C++面经,并有每天一道leetcode打卡群与技术交流群,欢迎关注。