校招面试干货|大厂面试官告诉你程序员如何准备校招!

原文链接: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(小鱼修炼笔记)

持续更新更多面试秘籍

全部评论

相关推荐

在JavaScript中,堆和栈是两种不同的内存管理方式,用于存储不同类型的数据。堆(Heap): 堆是用于动态分配内存的区域,用于存储引用类型的数据,如对象和数组。在堆中分配的内存不会自动释放,需要通过垃圾回收机制来回收不再使用的内存。堆的大小通常比栈大,并且可以动态增长和收缩。栈(Stack): 栈是用于管理函数执行上下文和存储基本类型值的一种数据结构。每当执行一个函数时,都会在栈中创建一个新的执行上下文,包括函数的参数、局部变量和函数的返回地址。当函数执行完成后,对应的执行上下文会被销毁,栈会自动释放相关的内存。栈的大小通常比较小且固定,内存分配由系统自动管理。下面是堆和栈的一些区别:https://www.nowcoder.com/issue/tutorial?zhuanlanId=Mg58Em&uuid=d59bf6cbe74a47848bb179590bdf5f59#牛客AI配图神器#存储内容:堆用于存储引用类型的数据,如对象和数组;栈用于存储基本类型的数据,如布尔值、数值和字符串,以及函数执行的上下文。分配方式:堆通过动态分配内存来存储数据;栈通过在执行上下文中的栈帧上分配固定大小的内存来存储数据。大小和生长性:堆的大小通常比栈大,可以动态增长和收缩;栈的大小通常比较小且固定,由系统自动管理。管理方式:堆的内存管理需要使用垃圾回收机制来回收不再使用的内存;栈的内存管理由系统自动处理,通过栈指针的移动来分配和释放内存。生命周期:堆中分配的内存不会自动释放,需要通过垃圾回收来回收内存;栈中的内存由系统自动管理,在函数执行完成后自动释放。
点赞 评论 收藏
分享
评论
1
4
分享

创作者周榜

更多
牛客网
牛客企业服务