本篇是,他从 _秋招历程、校招结构化面试、 offer 选择_ 等三个方面进行了总结和经验分享。程序员
还总结面试过程当中的各类套路,让你从自我介绍就给面试官下套。其实不仅是在校招面试中,社招其实也同样,其中 “给面试官下套” 是个不错的方法,值得借鉴和学习。(详见文中第二部分),另外,文末赠送优质数据结构算法+大厂面试真题学习材料,有须要的同窗请自取。面试
下面开始正文吧:算法
11 月底,在经历了充分的思想斗争后,我终于下定决心寄出了三方,历时三个多月的秋招也终于尘埃落定。过去的三个多月里,面试时间可能只有一个月左右,剩下的两个多月的时间都在等待结果和纠结,所以经过本文总结这段时间个人秋招历程和感悟。数据库
本文大纲以下图所示:网络
本人本科毕业于 985 高校,硕士就读于国内 Top2,本硕专业都是软件工程。在本科期间有过华为和腾讯两段实习经历,在研究生期间,我发现本身对科研的兴趣确实有限,所以平时较多参与实验室科研项目的落地应用。数据结构
今年因为疫情影响,2020 年上半年大部分时间我都在远程办公,导师分配的任务也稍有减轻,所以悄悄在字节和阿里实习了半年。闭包
在秋招开始以前,我考虑的方向主要包括:架构
和一些大牛相比,个人秋招面试经历并不算多,一共只投递了十几家公司,最终拿到了国网南瑞研究院、交通银行总行、阿里、腾讯、字节、华为、猿辅导、完美世界的 offer,具体的状况能够看下表:数据结构和算法
阿里分布式
阿里的面试整体来说是比较标准的结构化面试,可是面试流程实在太长了,从投递简历到完成面试,大约历时 40-50 天。
而实习转正后的 offer 发放等了大约 20 天,薪资沟通等了 50-60 天,贯穿秋招的头尾,很是考验心态。
腾讯
相比于头部的几家互联网公司面试,我我的感受腾讯的面试反而是比较“水”的。两次专业面试都是电话面试,且以项目交流为主。
腾讯的内推和自主投递没有流程上的区别,只是内推能在一开始锁定心仪的部门。我一开始不了解状况自主投递简历,致使后续没法内推,简历只能由部门随机锁定。捞个人部门是腾讯某著名游戏工做室,最终顺利拿到 offer。
字节
字节的总体面试流程很是紧凑,实习简历投递后次日就开始沟通面试,一个下午直接完成 3 面,再隔一天就沟通 offer,还容许远程实习,所以计划 3~6 月在字节顺带实习 3 个月。
因为当时不是暑假,实验室压力、学生工做压力、实习工做压力都汇集在一块儿,让我度过了极其痛苦的三个月,几乎天天都没有休息。
6 月份我提出离职放弃转正答辩,在以后的校招过程当中只参加一次专业面试就直接得到校招 offer。
华为
华为的面试流程感觉仍是很是友好的,会有 HR 单独联系,及时沟通面试进度和状态。
另外令我惊讶的是屡次主动沟通感兴趣的工做方向,并针对我的作出很是详细的职业规划,有一段时间几乎是天天打一次电话。
最后的总体评级和薪资待遇也很是有诚意。华为的二面颇有多是压力面,只要保持心态就能顺利过关。
国网南瑞
由于来学校进行宣讲,因此现场投递了简历,面试 20 多分钟就直接经过了。南瑞是国家电网子公司,网络风评不太好,不过经过特批给了一个超出预期相对有诚意的待遇,不过相比互联网仍是有较大差距。
交行总行
学校有人才推荐计划,填了一些表格交上去,随后安排了一次不到 10 分钟的面试,通知免笔试免面试直接参与体检环节,随后直接发 offer,薪资待遇都是统一的标准。
猿辅导
猿辅导号称是 WLB 的典范,一直宣称“年薪至少 40 万,7 点下班”,面试号称“具备挑战性”,但实际面试流程一周一面,且面试题目难度也很通常,没法深挖项目,只会简单的基础题问答和作题,每次面试两道题目左右,基本都是 leetcode 原题。
完美世界
完美世界 K-lab 计划号称 48 小时极速发 offer,因为是校招早期,所以就参与面试练习练习。
因为仍是北京疫情期间没法回校,因此安排远程面试超出了“48 小时”,但总体流程仍是比较速度,面试结束后也很快收到意向书。
网易
我投递的是网易有道的 Java 开发岗位,面试安排在出发回京返校前 1 个小时,1 面全程深挖各大技术栈的底层原理,面试官很是和善可亲,面试体验极佳,惋惜我水平不高,一问三不知,过了两周流程就变灰了。
快手
按照大多数人的经历,快手的面试基本也应该是一次性面完,我面试的是基础平台,在作题的时候出现了比较大的失误,偏离了题目重点,把问题复杂化,因此一面结束后面试官直接就说结束面试,“之后等消息”。
商汤
商汤的面试流程中规中矩,有 HR 专人对接,可是每次面试都要相隔一到两周以后才有消息,流程也拖得很长。
有趣的是其中一次面试过程当中面试官问我是否定识本科的一位同窗,多是也投递了同一部门。最终三面时因为已有更好的 offer,因此就直接放弃面试了。
相比于身边的一些同窗,我没有选择海投,而是在不一样领域选择一些有特色的公司有针对性的投递简历,努力提升简历投递的“命中率”。
秋招是一个长期的过程,在得到同领域一些比较满意的 offer 后,我就没有继续面试同领域的没有特殊优点的其余公司。
这样作一方面减小了无效的面试次数,有更多时间进行有针对性的准备,也能兼顾实验室导师的工做;另外一方面在最后选择的过程当中也能突出每家公司的优点特点,选择时也更有区分度。
综合个人实习和校招面试经历,我认为准备面试应当包括五个方面,即自我介绍、基础知识、项目经历、原理解析和手写算法。
自我介绍是几乎全部面试的第一步骤,自我介绍配合简历会给面试官创建第一印象。咱们知道在平时生活中,若是你喜欢一我的,那么这我的作的一切都会是美好的,若是你讨厌一我的,那么无论他作什么你都会看不顺眼。
面试中也是同理,一个好的初始印象可能会淡化以后面试中本身的失误,而把重点聚焦于本身的长处上。
在我看来,一次自我介绍至少应该包括:
(1) 基本信息,毕业院校;
(2) 实习、项目、竞赛经历和成果;
(3) 本身擅长的技术栈;
通常在自我介绍时,面试官极可能在查看简历,这时候须要对面试官进行后续面试问题的引导。
例如若是本身对某些课程掌握很是深刻,能够在教育经历中简要谈谈本身的课程状况,若是对本身的一个项目准备很是充分,能够加大自我介绍时该项目的比重,但切忌一会儿说完让面试官无问题可问,而是有意识的留一些常见问题的缺口,例如分布式、效率优化等关键词,并针对这些关键词着重准备。
此外,注意避免一些常见的简历介绍误区,例如“精通”这类给本身挖坑的词汇。
对于一些企业的技术初面,面试官可能不会和你讨论项目的技术细节,而是已经准备好了一系列的面试题,此时面试就变成面试官读题,本身答题的环节。这类基础知识问答包括计算机网络、操做系统、计算机组成原理、语言特性、数据库原理等方面的内容。例如:
对于这些问题,最直接的办法就是直接看已有的面试题整理,在一些博客或是牛客论坛上有大量的总结材料,对于有必定基础的同窗直接看材料就能基本回忆起以前所学的课程。
近两年因为你们愈来愈善于背题,出题的难度也在逐渐增长,偶尔有一些确实不会的题目直接认可便可,也不用不懂装懂强行回答,反而可能引发面试官的反感。
投递技术开发类岗位的同窗基本都须要准备一些拿得出手的项目。项目经历是最没法临时准备的部分,在一些企业中项目深挖讨论反而会占面试的大部分时间。
在我看来,准备描述本身的项目经历能够包括如下几点:
在我实习和秋招面试的过程当中,尽管简历上列出了最具表明性的三个项目,可是每次详细介绍的项目实际只有一到两个。
对于如何描述本身的项目经历,彻底能够像自我介绍同样准备好时间稍长一些的介绍模版,并至少准备好回答以下问题:
在这个项目中,你遇到的难点是什么?你是如何解决的?
项目介绍自己并不须要回答这个问题,而是面试官基本都会问这个问题。
此外,经过屡次面试,我发现每一个项目介绍后面试官所问的问题都是有限的几个,所以能够经过屡次面试提早准备好更多的项目问题回答,在交流过程当中展示出本身从容、清晰的一面。
在我看来,这是整个面试过程当中很是容易加分的部分。咱们能够根据本身已有的项目、自我介绍中频繁出现的关键词,用心准备两到三个能够深挖的点。
这里的原理解析不是仅仅是本身“看过别人写的解析文档”,而是本身深刻理解,并能“有条理地讲述给别人听”。
能够选择的方向例如:Tomcat、Spring、Redis、Kafka 的架构和源码实现、数据库引擎的实现、操做系统内核的实现、分布式一致性算法的源码实现、以及其余在本身项目中出现的问题等。
选择深刻准备的方向并非随机的,而是确实在本身的项目中发挥了重要用途,并解决实际问题的关键难点。若是说基础知识重在广度和准确性,那么原理解析就要重在深度和思考性,描述本身的理解和思考,并能经得起面试官“步步紧逼”的询问。
准备好能够深刻探讨的点后,就能够在自我介绍、项目介绍过程当中有意识的挖坑,频繁提起关键词,并留下含糊的描述性语句吸引面试官提问。(石头注:哈哈,都是套路啊)
而在交流的过程当中,也无需完整背诵千字大论文,而是由上而下,从总体到局部逐步解释。若是面试官强行讨论本身不熟悉的领域,直接简短说明不太了解便可,长时间支支吾吾没法清晰表达反而会致使减分。
在秋招开始前,我最担忧的就是手写代码这一环节,对比身边一些将 leetcode 题库刷完的同窗,我刷过的题目数量可能只有零头,不过在手写代码上也没有出过严重的问题。
在我看来,平时没有刷题习惯的同窗也无需对这个环节太过担忧,只要有针对性进行准备,基本都能顺利完成。
在临时突击刷题方案中,“数量”并非重要因素,“重复”才是重点,我比较推荐的一个刷题方案是:
在秋招准备阶段,我我的一共刷了 150 题左右,在面试的手写算法环节基本都顺利完成。
此外,在手写算法的过程当中必定要注意代码规范,注意异常输入的处理和代码整洁性,另外:
关于如何选择 offer,可能见仁见智,基本都会从薪资待遇、平台发展、城市选择、亲友关系、工做压力等不少方面打分权衡,但落实到实际中,我本身也根本没法确认每一个部分的比重,有时候可能真的只有“follow your heart”。
对于我本身来说,最终纠结的主要是阿里、腾讯、华为三家公司。具体而言:
此外,我也综合考虑了工做地所在城市的生活成本、亲友的指望等问题,把最终的候选公司肯定为阿里、腾讯两家,尽管每家公司都有其优点和劣势,但至少我都能接受其中的任意一种选择。
在漫长的纠结、沟通以后,我最后选取了最简单的方式:抛硬币。无论是开心接收抛硬币的结果,仍是但愿赶忙捡起来再抛一次,我都会知道本身心里真实的选择。
数据结构和算法是重中之重,这里我跟你们推荐一本 Leetcode 算法笔记,质量还挺不错的,推荐给你们参考。获取方式,点赞此文后添加助手vx:bjmsb10 便可获取。
最后,求关注,求关注,求关注,但愿能和你们积极交流讨论,一块儿学习、共同进步。
若是你以为这篇内容对你还蛮有帮助,我想邀请你帮我三个小忙:
点赞,转发,有大家的 『点赞和评论』,才是我创造的动力。
关注公众号 『 Java斗帝 』,不按期分享原创知识。
同时能够期待后续文章ing🚀