被BAT疯抢的工程师,都是怎么拿到50万年薪Offer的?
许多工程师换工作常会出现这种情况:工作能力和潜力都不错,却在面试时无法充分地表现自己,铩羽而归。据拉勾数据调研显示,约有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面试必考点》,点此查看更多
被BAT疯抢的工程师,都是怎么拿到50万年薪Offer的?的更多相关文章
- 每个JavaScript工程师都应懂的33个概念
摘要: 基础很重要啊! 原文:33 concepts every JavaScript developer should know 译文:每个 JavaScript 工程师都应懂的33个概念 作者:s ...
- JavaScript工程师都应懂的33个概念
最近福利发的有点多啊,各种硬干货,小伙伴们是不是觉得很爽啊.Github真的蕴含着各种各样的宝藏,难怪各个大厂也都纷纷贡献自己的代码到Github上. 所以各种干货还是会源源不断的po给大家,觉得有帮 ...
- Java实现 LeetCode 502 IPO(LeetCode:我疯起来连自己都卖)
502. IPO 假设 力扣(LeetCode)即将开始其 IPO.为了以更高的价格将股票卖给风险投资公司,力扣 希望在 IPO 之前开展一些项目以增加其资本. 由于资源有限,它只能在 IPO 之前完 ...
- 如何准备算法工程师面试,斩获一线互联网公司机器学习岗offer?
原文:https://zhuanlan.zhihu.com/p/76827460?utm_source=wechat_session&utm_medium=social&utm_oi= ...
- 简单的股票信息查询系统 1 程序启动后,给用户提供查询接口,允许用户重复查股票行情信息(用到循环) 2 允许用户通过模糊查询股票名,比如输入“啤酒”, 就把所有股票名称中包含“啤酒”的信息打印出来 3 允许按股票价格、涨跌幅、换手率这几列来筛选信息, 比如输入“价格>50”则把价格大于50的股票都打印,输入“市盈率<50“,则把市盈率小于50的股票都打印,不用判断等于。
'''需求:1 程序启动后,给用户提供查询接口,允许用户重复查股票行情信息(用到循环)2 允许用户通过模糊查询股票名,比如输入“啤酒”, 就把所有股票名称中包含“啤酒”的信息打印出来3 允许按股票价格 ...
- 真香!Python开发工程师都选择这个数据库:因为它免费
数据库类别 既然我们要使用关系数据库,就必须选择一个关系数据库. 目前广泛使用的关系数据库也就这么几种: 付费的商用数据库: Oracle,典型的高富帅: SQL Server,微软自家产品,Wind ...
- 为什么每一个爬虫工程师都应该学习 Kafka
这篇文章不会涉及到Kafka 的具体操作,而是告诉你 Kafka 是什么,以及它能在爬虫开发中扮演什么重要角色. 一个简单的需求 假设我们需要写一个微博爬虫,老板给的需求如下: 开发爬虫对你来说非常简 ...
- 每个 JavaScript 工程师都应当知道的 10 个面试题
1. 能说出来两种对于 JavaScript 工程师很重要的编程范式么? JavaScript 是一门多范式(multi-paradigm)的编程语言,它既支持命令式(imperative)/面向过程 ...
- 每个 JavaScript 工程师都应懂的33个概念
简介 这个项目是为了帮助开发者掌握 JavaScript 概念而创立的.它不是必备,但在未来学习(JavaScript)中,可以作为一篇指南. 本篇文章是参照 @leonardomso 创立,英文版项 ...
随机推荐
- .net基础学java系列(三)徘徊反思
.net基础学java系列(三)徘徊反思 上一篇文章:.net基础学java系列(二)IDE 之 插件 这两天晚上看完了IDEA的教学视频:https://edu.51cto.com/course/1 ...
- C# 获取版本号
Text = Text + " [V." + Assembly.GetExecutingAssembly().GetName().Version + "]";
- windows10下面部署nginx(解决文件名中文乱码问题)
由于开发需要,我们总是需要先在windows环境下面部署项目进行测试,通过之后才会移植到linux系统进行测试部署. 本篇文章会介绍一下windows终端下面部署nginx WEB服务的一些步骤流程, ...
- ScriptEngine执行复杂js报数组越界
import javax.script.Invocable; import javax.script.ScriptEngine; import javax.script.ScriptEngineMan ...
- select2使用小结
做项目考虑到使用的便捷,要用到select2,就研究了一下,做个小结,防止忘记.本文内容是建立在NFine框架上的,使用的MVC三层架构.本人很少写文章,学习的知识也过少,不知道能不能表达准确,如有错 ...
- Spring源码Gradle
Microsoft Windows [版本 10.0.17134.590](c) 2018 Microsoft Corporation.保留所有权利. D:\Workspaces\idea\sprin ...
- webpack学习--安装
webpack需要在node环境运行,可以去node官网进行下载安装包:http://nodejs.cn/download/ 1.打开cmd命令窗口,运行node -v 2.全局安装webpack:n ...
- hashlib模块,shutil,模块 ,,xml 文件解析,configparser,模块,类,什么是类
1 什么是hash hash是一种算法,该算法接受传入的内容,经过运算得到一串hash值 如果把hash算法比喻为一座工厂 那传给hash算法的内容就是原材料 生成的hash值就是生产出的产品 2.为 ...
- node简介
1. Node.js是什么? 简单的说 Node.js 就是运行在服务端的 JavaScript. Node.js 是一个基于Chrome JavaScript 运行时建立的一个平台. Node.js ...
- mysql import error
mysql导入文件一直出错,显示ERROR 1290 (HY000): The MySQL server is running with the --secure-file-priv option s ...