这段时间的“金三银四”,我发现许多工程师换工作常会出现这种情况:工作能力和潜力都不错,却在面试时无法充分地表现自己,铩羽而归。据拉勾数据调研显示,约有80%的工程师简历通不过初筛,进入终面的不到5% 。
技术面试到底应该如何准备?
搞清楚以下几点,可以帮助你提升成功率:
1、换工作失败的罪魁祸首
2、如何挑选面试成功率最高的岗位
3、影响面试成功率的三大因素4、BAT职级通道与面试考察点5、Java面试中必会的四大硬技能模块
1、换工作失败的罪魁祸首
归纳大多数人踩的坑,换工作难的原因有三:
第一点,不知道简历怎么写第二点,不知道面试官考什么第三点,不知道如何提升晋级
第一点,不知道简历要写什么
不知道你有没有吐槽过找工作太难,可以自查是否有以下问题:
1、工作/项目经验的描述不到位
2、不懂得如何包装自己的技术能力
3、学历不占优势,却放在了最显眼的位置
4、排版太乱,不精练的个人介绍太多等
另外,很多候选人在换工作的时候,只会海投,从来不看岗位要求,也不会多准备几份不同的简历。这种盲目的投递行为是导致失败的罪魁祸首。简历中的工作年限、对口经验、学历、甚至简历的美观度、逻辑是否清晰都有可能是致命一击。
第二个点,不知道面试官考什么
很多人接到面试电话,第二天糊里糊涂就去面试,这种失败率极高。
■首先,不清楚侧重点、岗位要求
不同行业领域与工作年限对候选人的要求是不一样的,考察点也有不同侧重。
举几个例子,社交门户类考察的是大规模、高并发场景的应用和架构能力,O2O行业侧重于综合能力的考察,而互金更喜欢逻辑缜密、对高可用、安全领域有丰富经验的候选人。
而针对于不同工作年限,校招面试更多的是对基础知识与逻辑思维方面的考察,以培养潜力的考察为主;初、中级工程师则需要多关注知识的广度与基础知识的应用;而高级/资深工程师需要深入理解基本原理,能对各种知识灵活运用,以综合能力的考察为主。
■其次,没有get到面试官的考察意图
当面试官提问:使用过XX框架吗?很多人会回答说用过,然后就冷场了。其实这个问题是想考察这个框架的使用场景、解决什么问题、有什么特点、有何同类型的其他框架等一系列的问题,如果仅回答“是”或者“否”的话,显然没有get到面试官的意图,同时也能发现这些候选人的沟通表达有待提高,恐怕会影响到将来的团队协作。
所以建议你在面试前,简单对公司业务和岗位职责做一些功课,做一些有针对性的准备,才能事半功倍。
第三点,不知道自己平时如何提升能力
新技术的升级换代非常快,没跟上就很有可能被淘汰,不断学习是必要的。但很多人都有一个不太好的习惯:东学一点,西学一点。当时觉得很有用,可时间长了才发现:我的技术并没有由此而提高。
究其原因,要么是不成体系很快被遗忘,要么是和现实工作相差太远,无法灵活运用,遇到实际案例问题还是无从下手。
学习首先要有个框架,就像书的目录一样,先梗概后细节,先建立一套知识体系,再一块一块的夯实。
2、如何挑选面试成功率最高的岗位
换工作的时候你也许遇到过这种困惑:
一个公司有好几个技术岗位,要全都投一遍吗? 手里有多个offer,应该怎么选? 是挑钱多的、还是大平台、福利待遇好的?
给你个建议:挑选岗位一般从公司规模、业务线或团队的重要程度以及个人条件的匹配度,这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。
这是我个人总结出了互联网公司java程序员面试涉及到的绝大部分面试题及答案做成了文档和架构视频资料免费分享给大家(包括Dubbo、Redis、Netty、zookeeper、Spring cloud、分布式、高并发等架构技术资料),希望能帮助到您面试前的复习且找到一个好的工作,也节省大家在网上搜索资料的时间来学习,也可以关注我一下以后会有更多干货分享。
资料领取方式:加QQ群架构华山论剑:836442475【点击进入】(大牛聚集地)即可获取!
PS:如果觉得我的分享不错,欢迎大家随手点爱心、关注、转发哦。
网友评论