面试了一个39岁程序员,我有点慌……

新闻
目前在国内一说到程序员,谈论最多的就是加班多,秃头,不修边幅,以及 35 岁被裁。

 目前在国内一说到程序员,谈论最多的就是加班多,秃头,不修边幅,以及 35 岁被裁。

[[345118]]

图片来自 Pexels

显然 35 岁被裁的说法带有一定调侃意味,但是无风不起浪,大龄程序员被裁这种现象还是有一定代表性的。

 

本文是我面试一个 39 岁程序员的亲身经历,希望能够对大家有启发。

1.招人背景

首先说下公司招人的背景吧,公司要招的是一个研发经理的岗位,负责管理技术团队的各个项目组。

领导只给了我两个要求:

  • 技术可以
  • 管理有一套

说白了,这是一个技术+管理的岗位,不是纯粹的管理岗,能写代码,技术上过得去是前提,所以底层还得是个程序员。

干我们这行的都懂,大厂都在清理 35 岁以上的基础岗,如果到了这个年纪还混不到中高层管理岗位,基础岗确实不太好找了。

现在的年轻人很厉害,很年轻就走上了管理层,所以我很庆幸公司在年龄上没有卡人,给了很多 35+ 的程序员简历供我筛选,因为我也是程序员,所以我也不会在年龄上有所顾虑。

所以,确实就和标题写的那样,这两天我就面试了一个 39 岁程序员,全程让我都感觉有点慌……

为什么慌?主要是因为年龄比我大不少,技术是不是很牛逼,会不会吊打我,狠狠地虐我?我真心怕 hold 不住。

但实际面试下来,场面一度尴尬,结局让我感觉有点唏嘘。

[[345119]]

 

2.面试过程

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

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

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

面试者:有啊,那个 XXX 项目就是...(说了一堆)

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

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

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

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

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

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

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

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

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

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

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

我:我想问的是,从上到下,这些技术是怎么承接起来的,整体的系统架构是怎样的?(现场没纸笔,不然我都想让他画图了)

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

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

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

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

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

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

我:好的,没事,那你觉得你擅长的技术或者框架有哪一些呢?

面试者:擅长的啊……(半天没说出来一个)也没什么,就 Java 基础方面还可以吧!

我:Java 基础可以是吧,好吧,我问一些 Java 基础方面的问题吧。请问:Java 接口和抽象类的区别是什么?(其实就是上一题的答案)

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

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

面试者:(左右摇头,眼神飘浮不定,不说话了,场面再度陷入尴尬……)

我:(没办法,我要打破这个尴尬场面)你确定是做过 Java 么,这都是非常基础的呀,感觉你基础也不是很好啊!

面试者:哎,来这家公司面试没做准备!(一脸无奈)

我:这样啊,那建议你还是回去好好准备一下吧,因为我们这个岗位是需要有一定技术能力的,所以,非常不好意思……

面试者:好的,我明白。

为了不浪费他的时间,我非常间接的告诉了他直接的结果了,说完然后他顺溜的拿着他的包从洽谈室出去了,头也没回。

哎,面试其他人,出去的时候都会为我挡下门的。

[[345120]]

 

3.结语

最后我把面试结论和领导说了,领导就说了一句:技术是提前。

第一次面试一个 39 岁的程序员,干了 15 年,如果还要面试做技术+管理岗位,这个面试情况确实不理想。也不知道他的真实经历是啥?或许真该清楚认识下自己的定位。

从刚开始面试的时候有点慌,直到现在写文章,我感觉更慌了,日月如梭,我也快有这么一天了,如果做不到中高层,我也要去和年轻抢饭碗,没办法,这是现实。

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

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

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

本文只是代表个人观点,不一定符合所有人,但不喜勿喷。

大家一起加油,共勉!

作者:栈长

编辑:陶家龙

出处:转载自公众号 Java 技术栈(ID:javastack)

责任编辑:武晓燕 来源: Java技术栈
相关推荐

2020-02-17 11:20:55

程序员技能开发者

2019-05-30 10:46:19

程序员应聘项目

2020-07-30 07:33:30

程序员

2012-11-28 13:25:27

程序员

2023-12-26 18:47:32

2020-12-22 09:31:27

程序员员工科技

2016-04-19 10:20:42

程序员遗憾

2020-02-22 21:51:43

程序员Microsoft SServerSQL

2020-10-05 21:13:37

程序员技能开发者

2019-07-08 14:34:11

程序员面试入职

2021-03-08 08:42:05

程序员技术体力劳动

2021-03-29 07:51:22

公司程序员微信群

2020-03-04 14:15:35

Java程序员Redis

2014-01-06 09:33:32

程序员管理

2020-10-14 10:22:14

Java 8 接口特性

2021-07-01 07:43:41

项目程序员代码

2019-06-17 10:33:52

程序员培训班框架

2015-04-27 10:39:26

程序员

2020-03-04 09:02:57

Java程序员Redis

2021-07-26 08:21:36

程序员高并发中间件
点赞
收藏

51CTO技术栈公众号