金三银四跳槽季,教你怎么把心仪的offer轻松拿到手

今天主要涉及到的是 HR 在面试时有哪些套路,这样可以见招拆招,斩获 offer!

最近很多学员来问我,面试官经常会问到你在参与项目中的亮点或者技术上的亮点,很多学员不知道该怎么回答,然后就被刷下来了。我们要回答这个问题,首先得知道什么算是亮点?

在百度百科上解释的亮点是:比喻有光彩而引人注目的人或者事务。比如说一个旧书拍卖会上,带有作者亲笔签名的书籍是本次拍卖会上的亮点。所以简单来说,亮点和闪光点是一个概念。面试官为什么会关注这个点呢?

在手机或汽车的发布会上,开发者会着重去介绍这个产品最有亮点的功能,去吸引用户购买。也就是说一个产品要想获得用户触发的购买欲望,就必须要有与众不同的点。否则,无差异化的产品是无法得到市场的认可。一个物品尚且如此,何况是人呢?

在互联网时代,技术能力是影响商业成功的关键因素之一,而提供技术输出能力的开发工程师成为了公司最宝贵的财富,如果没有优秀的人组成的团队来完成商业目标,那将会严重拖慢公司的发展。

所以作为面试官,需要做的就是选择最优秀和最合适的人。知己知彼方能百战不殆,面试官和求职者在短时间内相互了解沟通,这个过程不仅仅考察的是求职者的能力,同时也要求面试官具备一定的技巧去了解求职者是否适合应聘的岗位。

如何去定义最优秀的人?一定是需要一些具体的衡量指标,我认为最关键的因素:专业技能、发展潜力、软实力。

专业技能

这块主要会考察你对相关技术的掌握程度,以及你的项目经验和解决问题的能力,这些都是保证你能否很好完成本职工作的基本前提。

发展潜力

这个听起来感觉很模糊,其实对于面试官来说,要评估这个点是很简单的,比如说对基础的掌握程度、平时是不是喜欢研究技术、是不是有自己的博客或者是否有开发自己的轮子。然后根据你的工作经验来考察你这几年内的能力沉淀以及沉淀速度,所以从过去的优秀经历和成长速度中去衡量你的潜力。

扫描二维码关注公众号,回复: 5900019 查看本文章

潜力和技能的重要性是可以相提并论的,作为一个企业,不会只看眼前的需求,因为公司是不断发展,团队也需要不断成长和前进,特别是技术领域这块日新月异的发展速度。

软实力

软实力这块考核的就是你的性格、沟通表达是不是顺畅、平时的业余爱好(通过业务爱好能够了解一个人的个性)、通过往期的经验和成果来考察你的执行力和领导力。这些是属于HR重点关注的,所以在这个环节上任何一个细节都能投入出你的个性。

前面做了这么多铺垫,还是希望让每个求职者能够意识到一些自己之前没有关注过的点,其实,在软件开发行业,80%的人做的都是千篇一律的事情,这个也无可厚非,毕竟一个企业的核心仍然是业务,所以很多程序员的成长就受限于从事的工作内容。

那么问题来了,如果你是这80%中的一份子,那你的区分度在哪里?我完全有理由相信一个工作3年或者5年的程序员,对spring、mybatis等应用框架的使用和完成公司产品需求的开发是没有任何问题的。如果你没有一点优势或者闪光点,如何从这80%中脱颖而出?

如果你作为面试官,你一定不是去考核他每天在用的东西,而是希望能够从他的项目中或者技术解决方案中去获得一些闪光点。而这个闪光点就是能够证明你和别人不一样的东西,也是能够证明你能力的一个依据。

说一句不好听的,现在很多人都是靠运气在找工作,要找工作的时候把简历丢出去不断的去面试,最终也能找到一个工资还不错的工作。

我想大家听过一句话:站在风口上,猪都能飞起来。在当今互联网时代,软件开发人员的市场需求很大,所有有些公司特别是发展非常快的公司,他们可能就会把面试标准降低然后招大量的人进来。但是市场总归是有冷静期,比如15年、16年的所谓资本寒冬,很多互联网公司融不到钱纷纷倒闭,而这些公司的人就势必要流入到市场。

同时绝大部分企业的人才需求也不那么大,因此有些人感觉在那段时间找工作特别难,面试的要求特别高,其实不是要求高,只是有得时候要求降低了。

回归到主题上,亮点一定是你在公司岗位上提供的一些好的解决方案。也许你在项目中通过一些很优雅的方式完成了某个复杂逻辑的设计,或者你为了解决一些重复劳动开发了一套自动化解决方案提升了工作效率,或者你开发了一个技术产品能够服务整个公司解决一些技术难题,或者再精细化一点,在流量特别大的时候你优化了一个接口提升了访问效率。

而这些都是需要你在技术道路上孜孜不倦地追求才能达到的!

面试的方法是了解的差不多了,但是工作是个看硬本事的地方,没有好的技术,你把面试官忽悠的天花乱坠也是没有任何作用的,就算侥幸拿到了offer,正式工作的时候还是被打回原形。

那么作为一名Java程序员,应该掌握那些基本技能呢?以下是我根据自己十余年工作经验总结出来的一下知识点,相信这些技术你都能掌握,并且熟练使用知道那些底层原理的时候绝对少不了你的offer

基本语法

这包括static、final、transient等关键字的作用,foreach循环的原理等等。今天面试我问你static关键字有哪些作用,如果你答出static修饰变量、修饰方法我会认为你合格,答出静态块,我会认为你不错,答出静态内部类我会认为你很好,答出静态导包我会对你很满意,因为能看出你非常热衷研究技术。

集合

非常重要,也是必问的内容。基本上就是List、Map、Set,问的是各种实现类的底层实现原理,实现类的优缺点。

集合要掌握的是ArrayList、LinkedList、Hashtable、HashMap、ConcurrentHashMap、HashSet的实现原理,能流利作答,当然能掌握CopyOnWrite容器和Queue是再好不过的了。另外多说一句,ConcurrentHashMap的问题在面试中问得特别多,大概是因为这个类可以衍生出非常多的问题,关于ConcurrentHashMap,我给网友朋友们提供三点回答或者是研究方向:

ConcurrentHashMap的锁分段技术

ConcurrentHashMap的读是否要加锁,为什么

ConcurrentHashMap的迭代器是强一致性的迭代器还是弱一致性的迭代器

设计模式

当然咱们不能这么功利,为了面试而学习,设计模式在工作中还是非常重要、非常有用的,23种设计模式中重点研究常用的十来种就可以了,面试中关于设计模式的问答主要是三个方向:

你的项目中用到了哪些设计模式,如何使用

知道常用设计模式的优缺点

能画出常用设计模式的UML图

多线程

这也是必问的一块了。因为三年工作经验,所以基本上不会再问你怎么实现多线程了,会问得深入一些比如说Thread和Runnable的区别和联系、多次start一个线程会怎么样、线程有哪些状态。当然这只是最基本的,出乎意料地,几次面试几乎都被同时问到了一个问题,问法不尽相同,总结起来是这么一个意思:

假如有Thread1、Thread2、ThreaD3、Thread4四条线程分别统计C、D、E、F四个盘的大小,所有线程都统计完毕交给Thread5线程去做汇总,应当如何实现?

JDK源码

要想拿高工资,JDK源码不可不读。上面的内容可能还和具体场景联系起来,JDK源码就是实打实地看你平时是不是爱钻研了。面试过程中被问了不少JDK源码的问题,其中最刁钻的一个问了String的hashCode()方法是怎么实现的,幸好平时String源代码看得多,答了个大概。JDK源码其实没什么好总结的,纯粹看个人,总结一下比较重要的源码:

List、Map、Set实现类的源代码

ReentrantLock、AQS的源代码

AtomicInteger的实现原理,主要能说清楚CAS机制并且AtomicInteger是如何利用CAS机制实现的

线程池的实现原理

Object类中的方法以及每个方法的作用

框架

老生常谈,面试必问的东西。一般来说会问你一下你们项目中使用的框架,然后给你一些场景问你用框架怎么做,比如我想要在Spring初始化bean的时候做一些事情该怎么做、想要在bean销毁的时候做一些事情该怎么做、MyBatis中$和#的区别等等,这些都比较实际了,平时积累得好、有多学习框架的使用细节自然都不成问题。

数据库

数据库十有八九也都会问到。一些基本的像union和union all的区别、left join、几种索引及其区别就不谈了,比较重要的就是数据库性能的优化,如果对于数据库的性能优化一窍不通,那么有时间,还是建议你在面试前花一两天专门把SQL基础和SQL优化的内容准备一下。

不过数据库倒是不用担心,一家公司往往有很多部门,如果你对数据库不熟悉而基本技术又非常好,九成都是会要你的,估计会先把你放到对数据库使用不是要求非常高的部门锻炼一下。

数据结构和算法分析

数据结构和算法分析,对于一名程序员来说,会比不会好而且在工作中绝对能派上用场。数组、链表是基础,栈和队列深入一些但也不难,树挺重要的,比较重要的树AVL树、红黑树,可以不了解它们的具体实现,但是要知道什么是二叉查找树、什么是平衡树,AVL树和红黑树的区别。记得某次面试,某个面试官和我聊到了数据库的索引,他问我:

你知道索引使用的是哪种数据结构实现吗?

Java虚拟机

谈谈Java虚拟机中比较重要的内容:

Java虚拟机的内存布局

GC算法及几种垃圾收集器

类加载机制,也就是双亲委派模型

Java内存模型

happens-before规则

volatile关键字使用规则

这还只是Java程序员的最基本要求,你不可能在基础的程序员上面干一辈子所以我们只会慢慢的往上走

说到最后给大家免费分享一波福利吧!我自己收集了一些Java资料,里面就包涵了一些BAT面试资料,以及一些 Java 高并发、分布式、微服务、高性能、源码分析、JVM等技术资料

感兴趣的请加Java群:171662117,可以免费来群里下载Java资料

对Java技术,架构技术感兴趣的同学,欢迎加群,一起学习,相互讨论。

猜你喜欢

转载自blog.csdn.net/JAVA_ICU/article/details/89021281