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