二:是心态方面。搜集面试公司岗位所属团队平均福利等资料信息,知己知彼,有助于增加信心。提示一下:有些公司喜欢压力面试。特别在面试官层级较高时发生。在不利的场景下,多给自己心理暗示,控制情绪,也许会有意想不到的收获。例如:这个面试官以后我可能永远也不会遇到,失败了又怕什么呢?
三:沟通,给以下几点建议:
(1)提前准备一个简短有特色的自我介绍,主要描述自己的技术特长和职业优势,一定不要聊兴趣爱好,老家星座,无关紧要的内容。
(2)避免对于回答不上来的问题,可以主动坦白,并提出解题思路,或者在询问面试官可不可以换一个问题。
(3)当没有听清,或者不理解问题时,不要强行做答,可以跟面试官再次沟通确认问题。
(4)注意细节,例如你面试的微表情,不要皱眉,控制坐姿和手势,说话语速不要过快或过慢,表达逻辑清晰,观点明确,不要随意打断面试官,谦虚有礼的态度等等。还有一个小技巧,是要注意观察面试官的反应。如果面试官突然在简历上奋笔疾书,说明你提供的信息是有用的。如果他停下来很长时间不写了,你要想想是不是跑题了,如果面试官的表情显示出不耐烦或者深呼吸,有可能你没有领会到面试官的考查意图,可以再次询问面试的考察点。
必要的硬技能与软实力能力非常重要,一般分为硬技能和软实力。
硬技能 包括基础知识的掌握,以往的项目经验,对系统架构的设计能力,以及对不同框架工具的综合应用。
软实力 包括逻辑思维是否灵活,沟通表达写作能力是否优秀,是否有较强的项目管理推进能力,新技术的学习总结与思考能力,以及培养潜力这几方面。前面BAT的职位图提到了,不同等级的岗位能力要求。这里我用雷达图来展示,首先,
中级工程师,基本的要求是能完成分配的研发任务,所以面试官更看重基础知识的掌握,逻辑思维是否灵活,有没有培养潜力,其次是项目经验,学习思考,而对于架构能力,管理推进,以及沟通协作的能力,受限于工作年限,并不会对这方面有较高的要求。
高级工程师,一般需要独立完成功能模块,或者是项目的设计和开发,所以除了初级工程师应该具备的能力外,对项目经验沟通协作,架构能力,学习思考,管理推进,都有了更高的要求,特别是项目经验和学习思考能力
技术专家,具备项目架构,项目经验与协作沟通。与协作沟通能力,能够独立负责一个项目,做好项目架构,完成功能模块的拆解和任务分配,推进团队内外部的事务,协调资源管理进度。带领技术团队完成任务目标。
提示:: 软实力,功夫做得好,对于技术工程师的职业生涯来说,绝对是加分项。
硬技能图谱对硬技能考查点,我也做了一份系统化梳理,也是非常重要的内容。
基础知识部分
分为计算机基础与Java体系两大部分,包括了进程线程的管理,TCP/HTTP等网络协议,数据结构,经典算法,常用的设计模式等,另外还会分享一些面试的加分的内容,比如新技术方面,例如,新特性,垃圾回收算法,GC,最新的网络协议HTTP2,最新的网络协议,HTTP2和QS的知识深度方面,包括内存屏障,指令重排序,编译器逃逸分析等等。
项目经验部分
如何展现自身的项目经验。包括项目的描述,项目难点,项目问题分析与改进的部分。需要兼顾知识的广度与重点框架的知识深度。包括常用的工具,常用框架数据库等几个方面。其中工具集,以知识广度与实用性为主。例如工具的的应用,框架以经典架构的常考点为主。包括spring框架的重点,缓存数据库将以应用场景为主。最后架构能力以架构介绍为主,介绍架构理念与应用场景,也包括一些重点机制的实现方式。容器方面的知识,例如docker。
文末