校招面试干货|大厂面试官告诉你程序员如何准备校招!
原文链接:https://mp.weixin.qq.com/s/5UddolpT_AiER4A092NVlQ?token=1527877496&lang=zh_CN
最近项目组增加了几个校招HC,适逢春招开启,于是我们投身于一场紧锣密鼓的人才筛选。在这个过程中,发现很多被淘汰候选人存在共同的不足之处,由此产生了一些对校招的感悟和对候选人的建议。在此分享给大家,希望对即将参加校招的同学有所帮助。
就业方向选择
谈及互联网行业的择业方向,可选的还是比较多的,热门岗位包括算法工程师、后端开发、前端开发、测试开发、客户端开发、运维等。针对这些岗位,我分享几点个人见解,以供即将步入职场的同学们参考。
首先是算法领域,这一方向可谓相当之卷,高手云集,竞争激烈,没有几篇顶尖学术期刊的发表,似乎难以在算法圈立足。想考虑算法方向工作的同学建议审视下自身是否满足以下条件:1、高学历,211/985研究生起步。2、手握热门顶刊文章。
其次是开发方向,后端、前端、客户端这几个岗位的选择各有千秋,其抉择应基于个人的知识积淀和项目经验。从平均薪酬的角度看,目前看后端要高一些。但是后端开发者也往往需要承担更大的工作量。因为在常规的业务方向,普遍是后端更加深入的参与业务。尽管网络上流传着一种观点,认为后端开发具有更广阔的职业发展前景,但我个人认为这并不绝对。职业发展前景更多地取决于个人的综合素质和能力。每个人的兴趣、专长和职业规划都有所不同,因此适合自己的才是最好的选择。
最后是测试和运维方向,这两个岗位的门槛相对要低一些。测试岗位一般有两项职责,一是衡量前后端开发同学做出的软件的功能、性能和兼容性测试,并对其是否能满足设计要求进行评估,避免线上bug。二是开发测试工具,提高测试效率和准确性。运维岗位主要负责服务稳定性,保证系统不间断为用户提供服务。相比较而言,运维岗位的杂事要更多些。以往的面试过程中,遇到过一些候选人因为面试前后端岗位的过程不顺利,选择门槛更低的测开和运维岗。我并非不建议这类行为,但是需要声明的是,尽量不要抱着校招第一份工作降低难度,先找测开岗位干一段时间,再跳槽到前后端开发岗的想法,因为这种跳槽的难度还是有点高的。
其实各个岗位都存在优劣势的,在做出职业选择时,一定要慎重。毕竟“男怕入错行,女更怕入错行”。希望大家都能选择到适合自己的方向。
校招流程
- 提前批:每年6-8月
- 秋招:每年8-11月
- 春招:下一年的2-4月
这三个招聘阶段的重要性是提前批 > 秋招 > 春招。一般来说,秋招是提前批的补充,春招是秋招的补充。这三个阶段是漏斗形,前一阶段没招满的岗位才会下放到下一阶段。提前批的难度也是相对更高的,核心岗位和SP Offer普遍集中在提前批阶段发放。所以建议大家提前提前再提前,早做准备,能提交批不秋招,能秋招不春招,争取提前批就拿到心仪Offer!!!
面试流程
- 笔试:一般为机试,通常分为选择和编程。选择题考核计算机基础知识涉及计算机网络,操作系统,数据库,编程语言等;编程题一般是代码量比较大的题目、图、复杂数据结构或者一些模拟类的题目。
- 一面:通常为算法面,考查计算机基础知识、数据结构和算法水平。
- 二面:综合技术面,多为技术主管进行面试。除考察编程语言掌握程度以及计算机基础知识外,对于项目和实习经验同样也是考察重点。面试官会从技术原理、技术深度这两方面对项目的细节进行询问。并且会针对项目询问场景,以此考察同学们的应变能力。
- 三面:Boss面,通常会问到类似的下述问题
- HR面:到这一步,拿到Offer的可能性就很大了。一般聊一下职业发展规划、商定薪资待遇等问题。
简历准备
简历是大家求职路上的敲门砖,是名片,是能否进入面试环节的关键。很多同学不够重视简历,认为随便写一写,介绍下自己的基本情况就可以,这是很大的误区。一定要重视简历,让简历能够反映你的真实水平,先不说做到锦上添花,至少不要拖后腿。一份好的简历,有三项基本要素:清晰、简短、必要。
- 清晰:注重易于理解和排版简洁的原则,确保关键信息清晰明确。
- 简短:简历务必简短,一般简历在1-2页的篇幅完成足够描述个人情况。
- 必要:摘选必要信息,突出重点。去除重复内容,集中展示自己的优势。比如两个项目的架构、技术栈、功能没有太大差异性,那就只保留一个。如果本人有技术博客和开源经历,务必在简历上重点突出。
展示个人技能
- 个人技能按照掌握的熟练程度划分,分为几个等级(精通,熟练,掌握,了解)。建议避开精通和了解两个等级,普通人很难做到精通某个技能,如果只是了解的程度,又显得这项技能可有可无。
- 不熟悉的技能不要写在简历上,避免给自己挖坑。如果写了某项技能,面试的时候一问三不知,或者稍稍深挖就回答不上来,会给面试官留下不好的印象。
- 部分技能可以突出重点,写的具体一些。有同学就要问了『部分技能』具体是指哪些技能呢?是指你熟悉的,有亮点的,希望面试官展开提问的部分。对于写的具体的技能,面试官一般都会展开问,候选人如果能再触类旁边回答些相关的更深入的知识,会给面试官留下不错的印象。如果全部技能都是一笔带过,不具体展开,面试官就会挑自己熟悉的部分问,整个面试过程,候选人会被牵着鼻子走,这样是比较吃亏的。
- 用词要专业,专有名词不要用错,避免错别字。
突出项目亮点
- 需要非常精简的把一个项目写出来,推荐使用【STAR】法则来完善项目的介绍,STAR法则是情境(situation)、任务(task)、行动(action)、结果(result)。简单来说就是【S】项目的背景是什么,可以是项目介绍也可以是遇到的问题和难点;【T】需要做的工作是什么,在其中担任什么职责;【A】通过什么方式来解决这些问题的;【R】以及取得了什么指标可衡量的结果。
- 量化项目指标,给出数字化结果,可以提高简历的专业度和说服力,给面试官留下深刻的印象。
- 重点描述疑难点,新兴技术亮点及中间件,或者各种组件使用过程中遇到的问题及解决方案。例如MQ消息堆积、消息丢失,缓存一致性等问题。
面试重灾区
- 实习经历是应届生非常重要的加分项,大家要尽量争取在提前批开始前有一段实习经历。
- 没有实习经历或者实习经历比较少的同学,大多会在GitHub或通过其他途径找一些开源项目写到简历上。对于写到简历上的项目,大家一定要熟悉熟悉再熟悉,从整体架构到中间件使用的细节,一定要深挖。比如写了秒杀项目,那针对秒杀场景下的各类面试问题都需要提前准备好答案。很多开源项目并不完整,只涵盖面试过程中一部分侧重点,大家可以把几个开源项目整合到一个项目里。这样既能提到对项目的熟悉程度,提高项目的竞争力,也能避免和别人的项目有太多雷同。最后建议大家把项目进行线上化部署。熟悉线上部署的流程,也能增加项目的真实性。
- 打破信息茧房,每天抽取一定的时间获取招聘信息(包括牛客网及各大公司官方公众号等),关注意向公司招聘情况。很多同学都因为没有及时关注招聘信息,错过面试机会。
- 沟通表达能力,面试通常来说时间都不会太长,想要在有限的时间让面试官对你更加青睐,必须抓住一切机会展示自己的优势。有些面试官比较喜欢候选人主动展示自己的特长和优点,此时就需要有良好的沟通能力。利用自我介绍环节来充分展示你的技术热情,还有项目经历介绍等环节,都需要拥有很好的表达能力,才能让面试官更好地提取有效信息,这对于后续的面试过程是大有益处的。
- 提前简单了解下目标公司,尤其是银行、国企单位,面试过程中可能会问题此类问题。
- 面试要系统化准备,不是零散的看越多面试题越好,如果串联不起来,面试官一深挖就暴露问题了。
通用知识储备
以后端Java为例,列举下需要进行哪些方面的知识储备,其他语言也可参考。
- Java基础
- Java集合
- 多线程与高并发
- JVM
- 数据结构
- 算法
- 计算机网络
- 操作系统
- 数据库
- SpringBoot及相关框架
- Redis、Zookeeper、消息队列等
不知不觉洋洋洒洒写了很多东西,原本还想写学习路线、学习资料、必读书籍等内容。奈何受限于篇幅,就把剩下的内容整理到下次的文章里吧,敬请期待。
感兴趣的同学请关注weixin Gong棕hao(小鱼修炼笔记)
持续更新更多面试秘籍