许多工程师换工作常会出现这种情况:工作能力和潜力都不错,却在面试时无法充分地表现自己,铩羽而归。据拉勾数据调研显示,约有80%的工程师简历通不过初筛,进入终面的不到5% 。
技术面试到底应该如何准备?
搞清楚以下几点,可以帮助你提升成功率:
1、换工作失败的罪魁祸首
2、如何挑选面试成功率最高的岗位
3、影响面试成功率的三大因素
4、BAT职级通道与面试考察点
5、Java面试中必会的四大硬技能模块
1
换工作失败的罪魁祸首
归纳大多数人踩的坑,换工作难的原因有三:
1、不知道简历怎么写
2、不知道面试官考什么
3、不知道如何提升晋级
第一点,不知道简历要写什么
不知道你有没有吐槽过找工作太难,可以自查是否有以下问题:
另外,很多候选人在换工作的时候,只会海投,从来不看岗位要求,也不会多准备几份不同的简历。这种盲目的投递行为是导致失败的罪魁祸首。简历中的工作年限、对口经验、学历、甚至简历的美观度、逻辑是否清晰都有可能是致命一击。
第二个点,不知道面试官考什么
很多人接到面试电话,第二天糊里糊涂就去面试,这种失败率极高。
■首先,不清楚侧重点、岗位要求
不同行业领域与工作年限对候选人的要求是不一样的,考察点也有不同侧重。
举几个例子,社交门户类考察的是大规模、高并发场景的应用和架构能力,O2O行业侧重于综合能力的考察,而互金更喜欢逻辑缜密、对高可用、安全领域有丰富经验的候选人。
而针对于不同工作年限,校招面试更多的是对基础知识与逻辑思维方面的考察,以培养潜力的考察为主;初、中级工程师则需要多关注知识的广度与基础知识的应用;而高级/资深工程师需要深入理解基本原理,能对各种知识灵活运用,以综合能力的考察为主。
■其次,没有get到面试官的考察意图
当面试官提问:使用过XX框架吗?很多人会回答说用过,然后就冷场了。其实这个问题是想考察这个框架的使用场景、解决什么问题、有什么特点、有何同类型的其他框架等一系列的问题,如果仅回答“是”或者“否”的话,显然没有get到面试官的意图,同时也能发现这些候选人的沟通表达有待提高,恐怕会影响到将来的团队协作。
所以建议你在面试前,简单对公司业务和岗位职责做一些功课,做一些有针对性的准备,才能事半功倍。
第三点,不知道自己平时如何提升能力
新技术的升级换代非常快,没跟上就很有可能被淘汰,不断学习是必要的。但很多人都有一个不太好的习惯:东学一点,西学一点。当时觉得很有用,可时间长了才发现:我的技术并没有由此而提高。
究其原因,要么是不成体系很快被遗忘,要么是和现实工作相差太远,无法灵活运用,遇到实际案例问题还是无从下手。
学习首先要有个框架,就像书的目录一样,先梗概后细节,先建立一套知识体系,再一块一块的夯实。
2
如何挑选面试成功率最高的岗位
换工作的时候你也许遇到过这种困惑:
给你个建议:挑选岗位一般从公司规模、业务线或团队的重要程度以及个人条件的匹配度,这3个方面来入手。
先来看公司和团队。大厂比较适合镀金提高身价、核心业务更适合长期稳定发展,进入核心团队在能力、经验上都能获得较大的成长。
大公司的核心业务无疑是最好的选择,但也是竞争最激烈的,尽量找和自己能力匹配的,不要和众多高手竞争,耽误宝贵的求职时间和机会。这里注意,不到万不得已,不要去选择小公司的边缘业务。
还有2种比较纠结的情况:一是大公司的边缘业务,一个是小公司的核心业务。
对于工作1-3年的小伙伴,更推荐优先选择核心业务。职业生涯前期以积累知识、经验为主要任务,核心业务可以给你提供更多的历练场景,无论是应用经验还是架构经验都能获得很好的收获。
另外一个因素就是个人匹配度。不是每个人天生就能考上清华北大,考大学大家都懂要估分再报志愿,职场也是同一个道理,首先对自己的条件有客观的评估,再对号入座。
评估范围包括岗位要求、业务方向,还有自身能力、兴趣、经验等的匹配程度。匹配程度越高,面试的成功率就会更高,也更有利于入职后个人的发展。
一句话总结就是:优先选择核心业务,以及与自己条件高匹配度的岗位。
3
影响面试成功率的三大因素
假设你明天就有个面试,那么前期的准备工作对面试成败起到决定性的作用。
影响面试成功的三大要素有:能力、心态和沟通。
优秀的技术基本功是必要条件,毕竟公司是招你来解决问题的,没有技术能力其他的都无从谈起;
第二是注意平衡心态,过于紧张会导致平时会的内容没有回答上来;
第三是沟通,与面试官顺畅、开心的交流,会给你的面试加分;反过来如果沟通不顺畅,就可能直接被pass。
那么,如何在面试时稳定发挥?
■首先,通晓面试考察点
这部分短期内可以突击,也是面试前需要重点准备的内容。你需要做以下几点工作:
1.系统的复习基础知识,对常考的考点进行专项突击;2.对一些典型框架的原理、使用场景及实现方式进行学习;3.对工作经历进行提炼,比如曾经负责过的项目从架构方面重新审视、梳理、总结;4.根据面试岗位业务有针对性的准备,比如:面试中间件方向的岗位时,可以突出自己有过存储中间件的开发经历、有过链路协议层设计经历等。
■第二,调整心态
面试前要多方面搜集面试公司、岗位所属团队、平均福利等资料,知己知彼有助于增加自信。
提示一下,有些公司喜欢压力面试,特别在面试官层级较高时发生。在不利场景下多给自己心理暗示,控制情绪,也许有意想不到的收获。你可以这么想:这个面试官以后可能再也不会遇到,就算失败了也没什么大不了。
■第三,注意沟通,给你几点建议
1、提前准备一个简短有特色的自我介绍,主要描述自己的技术特长和职业优势,一定不要聊兴趣爱好、老家、星座等无关紧要的内容;2、避免冷场,对于回答不上来的问题,可以主动坦白,并提出解题思路,再或者询问面试官可不可以换个问题;3、如果没有听清,或是不理解问题时不要强行回答,可以跟面试官再次确认问题;4、注意一些细节,例如:你的面试微表情,不要皱眉、控制坐姿和手势、说话语速不要过快或过慢、表达逻辑清晰,观点明确;不要随意打断面试官,谦虚有礼的态度等。
还有一个小技巧是要观察面试官的反应,如果面试官突然在简历上奋笔疾书,说明你提供的信息是有用的,如果他停下来很长时间不写了,你要想想是不是跑题了;如果面试官的表情显示出不耐烦,或者深呼吸,有可能你没有领会面试官的考察意图,可以再次询问。
4
BAT职级通道与面试考察点
“能谈谈你对未来的职业规划吗?”相信很多人面试都被问过这个问题。
技术岗和其他岗位一样,在求职的时候,最先就是要有自己的职业规划,确定自己的方向,才能有针对性的找到合适的岗位。
技术人员对职业发展有两个发展方向,一个是技术方向,另外一个是管理方向。
技术向
上升通道有:资深工程师、技术专家、高级技术专家、研究员、科学家等。需要你重点培养技术攻坚能力,包括疑难问题的排查、大型项目的功能拆分、技术品牌的塑造等。
具体的工作包括:原理、实现、注重架构能力的培养,更深一层还有:大规模、高并发场景,高可用、可扩展措施和方案、业务的抽象、架构能力、分布式服务设计原则的理解等。
管理向
另外一个方向就是管理。管理序列偏重于团队把控,需要让团队形成技术战斗力,利用一切资源推进项目,让团队完成作战目标。另外,做好团队内和跨团队的沟通、协作也是管理工作很重要的一环。
在实际工作中,这两个序列没有特别明显的边界。例如做管理不表示远离架构设计;而技术专家也不是单兵作战,也需要带领团队。这两个方向区分点在于工作内容的侧重点不同:到底是更偏技术架构,还是更偏管理与项目推进。
回到最开始的面试问题,“你的职业规划是什么?”,答案并不是在面试前打个腹稿就完成任务了,而是在你进入职场,准备成为一位工程师时,心里就该有个谱了。
给你个加分回答:“从过往的经验来看,我对项目的整体规划、管理推进比较感兴趣,在任务推进、协调沟通方面也有比较突出的表现,所以我的职业规划是成为一名优秀的技术经理,并以管理方向为发展目标。”
那应聘不同公司、不同级别的技术岗位时,要重点提升哪方面的技能呢?
先简单介绍一下BAT的技术岗位职级和对应的工作年限:
1-3年的初级工程师,这个级别的岗位在阿里、百度、腾讯等大厂很少进行社招,一般是从校招生内部晋升,所以大学生想加入BAT,最好从校招开始准备;
高级工程师一般需要有2-5年的工作经验,这个岗位对应百度中的t4、阿里的p5以及腾讯的t2-2;
资深工程师一般要求3-6年工作经验,这个岗位一般对应百度中的t5、阿里的p6以及腾讯的t2-3,这两个岗位是各个公司中的绝对技术主力,公司非常看重这部分人才的成长和培养。
结合前面BAT职级来说,不同等级的岗位,能力要求肯定也不同:
对于初、中级工程师,基本的要求是能完成分配的研发任务,所以面试官更看重基础知识的掌握、逻辑思维是否灵活,有没有培养潜力。其次是项目经验与学习思考能力,而对于架构能力、管理推进、以及沟通协作等能力,受限于工作年限,并不会对这些方面有较高的要求。
对于高级工程师,一般需要独立完成功能模块或者子项目的设计与开发,所以除了初级工程师应该具备的能力外,对项目经验、沟通协作、架构能力、学习思考、管理推进都有了更高的要求,特别是项目经验和学习思考的能力。
而对于技术专家来说,要具备项目架构、项目经验、管理推进与沟通协作能力,能够独立负责一个项目,做好项目架构,完成功能模块的拆解与任务分配,推进团队内、外部的事务、协调资源,管理进度,带领技术团队完成任务目标。
5
Java面试中必会的三大硬技能模块
面试的考察点非常综合,分为硬技能和软实力。
硬技能包括:基础知识的掌握、以往的项目经验、对系统架构的设计能力、以及对不同框架、工具的综合应用能力等
软实力一般包括:逻辑思维是否灵活、沟通、表述、协作能力是否优秀、是否有较强的项目管理与推进能力、新技术的学习、总结与思考能力,以及培养潜力这几方面
Java的硬技能可以大致分为以下几个模块:
1.基础知识,分为计算机基础和java体系两大部分,包括:
进程、线程管理;TCP、Http网络协议;数据结构、经典算法;常用设计模式等;
新技术方面:java8-11新特性,G1、ZGC垃圾回收算法、最新网络协议http2、quic;
知识深度方面:内存屏障、指令重排,JIT编译器、逃逸分析等。
2.应用知识,需要兼顾知识的广度与重点框架的知识深度。包括常用工具、常用框架、缓存、队列及数据库等几个方面。
其中工具集以知识广度与实用性为主, 例如jvm工具JFR、Tcpdump,git,vmstat、iostat等,应用框架以经典架构的常考点为主,包括spring、netty等主流框架的重点知识。缓存、队列、数据库将以应用场景为主。
架构能力以微服务架构为主要考察点,你需要搞懂架构理念与应用场景,还包括一些重点机制的实现方式。例如docker、k8s和spring cloud等。
3.项目经验,你需要准备:如何展现自身的项目经验,包括项目的描述、流程图、项目难点、项目问题分析与改进等。
当然,除了过硬的代码功力,软实力方面做的好,对于技术工程师的职业生涯来说绝对是加分项,这需要平时多与人沟通,持续学习,深度思考,持续的学习。
希望读完此篇文章的你,都能在金三银四的招聘季做好准备,拿到心仪的Offer。
以上内容选自《32个Java面试必考点》,点此查看更多