从Java面试官的角度,如何快速判断程序员的能力

临近年关,今年面试跳槽的人特别多,关注我的朋友都知道我不轻易做分享,因为这没有标准答案,看法也因人而异。但我发现有些面试问题还挺普遍的,今天就说说我做面试官这几年的经验,从面试官的角度去看面试,希望对在准备面试以及想要提升的程序员们有点启发,以下仅是个人经验总结:
在这里插入图片描述
如何阅读候选人简历

阅读候选人的简历,这是招聘流程中的第一项工作。候选人的简历各式各样,工程师们一般都比较忙,如何快速的阅读简历又不失重点呢?我根据自己的经验总结了几点,供大家参考:

首先,对于候选人来讲,大公司的工作经历是很重要的能力,而且级别越高可以粗略等同认为越优秀,虽然也会有个例,但一般情况下,阿里 P8 要比 P7 技术能力优秀,百度的 T7 要比 T6 优秀。但是这种情况只针对大公司,对于一些小公司,Title 并不与能力划等号,小公司技术总监的技术能力不如大公司的一个普通的资深工程师的情况也是常有的事情。

其次,有比较有技术含量的项目经历,我发现有很多工作年限比较长的候选人,简历十几页,项目大大小小几十个,而很多项目都是 3,5 个月就做完,用到的技术也比较重复、浅显。对于候选人的技术积累来说,10 年的经验跟一年的经验差不多,所以项目不在多,而在于能提现候选人的技术能力。

还有,有高质量的开源项目;项目背景比较切合;有在技术网站发表过文章或高质量的技术博客;做过一些业余项目等,都可以作为加分项。

少问记忆性问题和太理论性问题

有些 JAVA 面试官逢人便问 JVM 几种垃圾回收算法优劣对比,这种文科题目在我看来是没有太大意义的,一方面没有区分度,另一方便容易突击准备,往往考察不出候选人的真实能力。所以我面试不直接问记忆性问题,也不直接问理论性问题,而是换个问法,将这些记忆性的、理论性的知识融入实践

比如,有些面试官为了考察候选人多线程方面的知识,经常会问到的题目比如 ConcurrentHashMap 的实现原理,volatile 关键词的作用等,我之前也多次拿这些题目当做过面试题,但总结下来发现,大部分候选人都能答得七七八八,区分度很低。我之后换了一种问法,要求候选人将一个线程不安全的类改写成线程安全的类,这期间涉及到 volatile,lock, 并发容器,Atomic 原子操作,CAS 无锁编程等,发现只有极少部分候选人给出锁粒度小,并发度高的代码,部分候选人在提示下可以解决,一些候选人则仅能写出一把 synchorinzed 大锁的并发度很低的代码。

事实很明显,那些能够给出优秀答案的候选人,必定是有着实践经验,并且深入思考过,真正理解的人,而相反,其他人可能只是临时看了几篇技术博客而已。

白板编程真的有必要吗

白板编程外企面试比较流行,国内有些候选人不怎么接受,特别是工作年限较长的,一说要写个代码,求职者就觉得是在“羞辱”他,觉得不应该从这么基础的问起。

不过根据我的面试经验发现,这种拒绝写代码的大龄码农,满嘴架构,高可用,高性能,分布式,往往一写代码就抓瞎,代码写的惨不忍睹。

白板编程一般会问哪种类型的题目呢?举一个我之前经常用的例子:

这个题目不需要任何的算法背景和技巧,纯粹考察候选人的基本编程素质:逻辑思维是否清晰,细节是否考虑全面,是否能写出 bug free 的代码,是否有计算机思维能关注时间空间复杂度等。而且在候选人完成代码之后,我还会要求候选人将代码讲给我听,当然不是因为我看不懂,而是这样还能顺带考察候选人的表达能力,沟通能力,毕竟讲给别人听让别人理解要比单纯自己理解难很多。

智力问题为什么会收到青睐

我们经常在网上看到说谷歌,微软等大外企经常会面试智力题目,我认为智力问题不在于候选人最终是否能提出标准答案,而在于提供一个话题跟面试者讨论。考察候选人是否是一个有想法的人,思路是否清晰,逻辑推理能力是否够强,总结能力是否够强等等基本素质。

智力问题最好是比较开放性的问题,一定不要太难的问题,也不要是抖机灵的问题。有很多面试官拿数学难题考候选人,希望 45 分钟答出来标准答案,这本身就是不可能,除非之前候选人已经看过,这样的问题也就没有意义了。

当然,智力问题也并不是适合所有的公司。一般成熟型的大公司,对候选人可以接受比较长的培养时间,而且默认聪明的人学习能力都很强,所以对过往技术经验并非特别的看中,所以一般喜欢面试算法,智力问题。对于一些创业型公司,更看重候选人的工作经验,青睐技术多面手,来了就能产出,所以就不适合在智力问题上浪费太多的面试时间。

把面试当做一场技术讨论

筛选候选人就是筛选将来与你共事的人,所以为了更准确的反应候选人在以后的工作中的表现,不妨把面试当做一场与未来同事的技术讨论,在讨论的过程中感受候选人的技术能力。

技术面试就好比打乒乓球,一来一往中感受彼此的技术实力,面试的过程切忌类似与笔试一样的一问一答单向沟通。特别是一些开放性问题,架构设计的问题,本身就没有标准答案,背景又过于复杂开放,如果只是丢给候选人回答,中间没有任何沟通交流和引导,候选人是很难抓住重点展现出面试官心里期望的表现。

比如我们面试过程中经常会让候选人介绍某个项目的架构设计,如果面试官能一语中的的提出设计中的缺陷,或者追问架构中的技术难点,深入的跟候选人讨论,这样一方面能给候选人充分发挥的机会,另一方面,也会赢来候选人对公司技术的认可。

技术水平才是根本

相信很多工程师随着面试经验的积累,即便没有经过培训,面试工作也可以做的非常好,因为毕竟优秀的工程师都逻辑清晰思维敏锐,而对于正在进阶学习的程序员们,则需要通过系统地梳理来提高自己的技术水平和形成架构思维。

针对当前互联网公司的技术需求以及结合主流技术,我自己整理了一套系统的架构技术体系。不少公司都很重视高并发高可用的技术,特别是一线互联网公司,分布式、JVM、spring源码分析、微服务等知识点已是面试的必考题,这些东西可能你们平时在工作中接触过,但是缺少的全面系统的学习,后台私信回复“架构”,免费领取架构资料,希望本文能给大家在成长的过程提供一点帮助。

一、工程化专题
在这里插入图片描述
二、性能优化专题
在这里插入图片描述
三、源码分析
在这里插入图片描述
四、分布式专题
在这里插入图片描述
感兴趣的可以自己来我的Java架构群,可以获取免费的学习资料,群号:798891710对Java技术,架构技术感兴趣的同学,欢迎加群,一起学习,相互讨论。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
【优质项目推荐】 1、项目代码均经过严格本地测试,运行OK,确保功能稳定后才上传平台。可放心下载并立即投入使用,若遇到任何使用问题,随时欢迎私信反馈与沟通,博主会第一时间回复。 2、项目适用于计算机相关专业(如计科、信息安全、数据科学、人工智能、通信、物联网、自动化、电子信息等)的在校学生、专业教师,或企业员工,小白入门等都适用。 3、该项目不仅具有很高的学习借鉴价值,对于初学者来说,也是入门进阶的绝佳选择;当然也可以直接用于 毕设、课设、期末大作业或项目初期立项演示等。 3、开放创新:如果您有一定基础,且热爱探索钻研,可以在此代码基础上二次开发,进行修改、扩展,创造出属于自己的独特应用。 欢迎下载使用优质资源!欢迎借鉴使用,并欢迎学习交流,共同探索编程的无穷魅力! 基于业务逻辑生成特征变量python实现源码+数据集+超详细注释.zip基于业务逻辑生成特征变量python实现源码+数据集+超详细注释.zip基于业务逻辑生成特征变量python实现源码+数据集+超详细注释.zip基于业务逻辑生成特征变量python实现源码+数据集+超详细注释.zip基于业务逻辑生成特征变量python实现源码+数据集+超详细注释.zip基于业务逻辑生成特征变量python实现源码+数据集+超详细注释.zip基于业务逻辑生成特征变量python实现源码+数据集+超详细注释.zip 基于业务逻辑生成特征变量python实现源码+数据集+超详细注释.zip 基于业务逻辑生成特征变量python实现源码+数据集+超详细注释.zip
提供的源码资源涵盖了安卓应用、小程序、Python应用和Java应用等多个领域,每个领域都包含了丰富的实例和项目。这些源码都是基于各自平台的最新技术和标准编写,确保了在对应环境下能够无缝运行。同时,源码中配备了详细的注释和文档,帮助用户快速理解代码结构和实现逻辑。 适用人群: 这些源码资源特别适合大学生群体。无论你是计算机相关专业的学生,还是对其他领域编程感兴趣的学生,这些资源都能为你提供宝贵的学习和实践机会。通过学习和运行这些源码,你可以掌握各平台开发的基础知识,提升编程能力和项目实战经验。 使用场景及目标: 在学习阶段,你可以利用这些源码资源进行课程实践、课外项目或毕业设计。通过分析和运行源码,你将深入了解各平台开发的技术细节和最佳实践,逐步培养起自己的项目开发和问题解决能力。此外,在求职或创业过程中,具备跨平台开发能力的大学生将更具竞争力。 其他说明: 为了确保源码资源的可运行性和易用性,特别注意了以下几点:首先,每份源码都提供了详细的运行环境和依赖说明,确保用户能够轻松搭建起开发环境;其次,源码中的注释和文档都非常完善,方便用户快速上手和理解代码;最后,我会定期更新这些源码资源,以适应各平台技术的最新发展和市场需求。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值