模拟面试了一个 35岁程序员,到最后我有点慌……

本文来自前几天的一次亲身经历,并非标题党,只是一次为学员做的模拟面试

部分简历截图
在这里插入图片描述

在这里插入图片描述
在这里插入图片描述

随便看看吧,可以得知这个是一个85年的程序员,之前一直接触的都是银行的一些老业务了,先简单的了解一下。

电话模拟面试

先随便问问
面试者 10多年工作经验,简历却只有 3 页,可以说非常简练,从程序员到项目经理、研发经理、技术总监都干了个遍,Java/PHP/Python/C# 也都有涉及。

从交谈过程中,他说是可以做技术+管理的,然后我说问一些技术上的问题,他说好。

博主: 你有互联网分布式相关项目开发经历么?

面试者: 有啊,那个 XXX 项目就是

博主: 好,我看到了,我看这个项目是用 Dubbo 框架做的,为什么要用 Dubbo 呢?在你们整个项目里面 Dubbo 承担了什么角色?

面试者: 做服务治理,底层是 ZK…

然后他就一直在说和 ZK 的关系,我也没怎么听明白,我再怎么引导也没说清楚 Dubbo 在项目中承担什么角色。

博主: 能介绍下服务与服务之间相互调用的时候,如果调用超时了是怎么处理的?

面试者: 超时啊,(想了几秒后)那应该是报错吧

博主: 确定是报错吗?(他想了想,不说话,然后我接着说)没有重试机制吗?重试机制是怎样的?

做过分布式的项目的都知道重试机制,至少读操作要支持重试,写操作支持重试的话被调用方还要支持幂等性,不然会造成重复写入。

面试者: (又想了想)这个项目有点久了,这个不太记得了……

然后我看了下这个项目,2014 年做的,6 年前了,他说太久不记得了,那也情有可原了。

博主: OK,你最近做的这个项目,能介绍下它的整体架构么?

面试者: 我们用了 MQ,用了 Redis,用了……(他说了一堆,都没说到重点)

博主: 我想问的是,从上到下,这些技术是怎么承接起来的,整体的系统架构是怎样的?(因为是电话模拟面试,不然我都想让他画图了)

面试者: 呃……我知道你的意思,主要是我真的不知道怎么表达……(然后他不说话了,场面尴尬了)

博主:
没事,问你一个设计性的问题,假如有一个接口,五个实现类,现在的需求可能要往接口加一个方法,这样就要改动五个实现类,但需求只需要改动其中两个实现类,要怎么设计才好?

面试者: 那就只能把方法写在两个实现类中……(想了半天也没有说出好的方案)

其实这里至少有两个方案:

  1. 可以再定义一个抽象类去实现这个接口,在抽象类中新增这个方法,然后其他两个实现类实现这个抽象类就好了。
  2. 使用 Java 8 中的新特性,在接口中新增默认方法或者静态方法

所以,其实这里我一方面是考一下他的设计能力,另一方面我是想了解下他对 JDK 新特性各方面知识的应用和掌握。

还有更多设计方案,我这里只列了两种,如果你有更多更好的想法,可以点此处加入QQ裙一起交流

博主: 好的,没事(干了这么久,一些深入的技术都不会,问点基础的算了)

请问:Java 接口和抽象类的区别是什么?(其实就是上一题的答案)

面试者: 呃……(想了半天)好像是抽象类还是接口里面可以写实现方法的吧(不确定的回答)

博主: 到底是哪个可以写实现方法呢?

面试者: (说的含含糊糊的,到后面干脆不说话了,场面再度陷入尴尬……)

到这里就差不多要结束了,中间都想直接问你确定是做过 Java 么,这都是非常基础的呀

感觉这位学员是收到了严重的打击,对Java这一行都有阴影了
在这里插入图片描述

这个面试是不太理想的,甚至可以说要是真正的面试的话,一开始就挂了,对于程序员来说,年龄上了了,技术又跟不上,如果做不到中高层,我也要去和年轻抢饭碗,没办法,这是现实。

年纪来了,我感觉我自己写代码确实也写不太动了,人也变得越来越焦虑不安,能干嘛去了?生意又不会做!

唯一能做的就是朝着自已期望的岗位或者目标不断努力,不断的提升自己的硬实力和基本功,越努力越幸运,只要这样才能面对日益焦虑不安的自己,迎接未来更多的机会。

现在的很多年轻人很厉害啊,年轻有为的不少,但有句话是怎么说的,大器晚成,为时不晚,这样的例子也数不胜数,我想信,只要坚持学习,提升自己,总会有成功的那天。

最后,如果要是感兴趣的话,各位可以点此处加入QQ裙一起交流

本文只是代表个人观点,不一定符合所有人,但不喜勿喷。如觉有用,动动小手点个赞,转发一下,感谢各位老铁支持。

大家一起加油,共勉!