从华为跳槽到银行科技岗,好难!

朱晋君微信公众号约 2148 字大约 7 分钟

图解学习网站:xiaolincoding.comopen in new window

大家好,我是小林。

今天分享一位面试官朋友在面试候选人时候的感触,可以从面试官的角度学一下,面试官问问题的时候, 实际上是想考察哪些能力。

下面是这位面试官朋友的分享。


最近面试了很多候选人,感触很多,给大家分享一下。

今年我们团队在西安的招聘名额比较多,我作为团队的招聘组长,筛选了一波又一波的候选人。

西安是一个有实力的城市,名校云集,985/211 院校很多,包括西安交大、长安大学、西北工业大学、西安电子科技大学、西北大学、西北农林科技大学。多数候选人也是出自这些名校。

但是跟北京、上海、杭州这些互联网氛围浓厚的城市相比,西安的互联网氛围还是逊色一些。从我收到的简历看,候选人目前的岗位主要有下面四类:

  1. 银行科技公司的员工或者外包;
  2. 华为西安研究所、腾讯云等大厂,岗位集中在云计算、大数据、devops 等,很多人有管理经验;
  3. 互联网公司的外包岗位;
  4. 其他不太知名的公司。

最近华为某个部门要撤离西安,整个团队面临迁移到别的城市的处境,这对于已经成家的员工来说,几乎不太可能。他们只能选择离职,我收到了不少相关候选人的简历。

下面的我摘出的一部分简历内容:

使用技术:Spark、Hadoop、Clickhose、K8s 等。工作职责:

  1. 主导大数据架构设计和技术选型;
  2. 为数据流处理提供优化方案;
  3. 新方案设计的推动落地实施;
  4. 团队管理。

擅长技能:

  1. 熟悉 C++、Java、Linux 相关技术栈;
  2. 熟悉 Spring、SpringBoot、SpringCloud 等框架;
  3. 熟悉大数据相关技术,如 Kafka、flink、Spark 等;
  4. 熟悉代码管理工具,如 maven、git 等;
  5. 具体团队管理能力和经验。

自我评价:编程能力强,热爱钻研技术,待人真诚,具有很强的抗压能力,良好的团队管理能力。

就从简历来看,候选人是很优秀的,学历背景优秀、大厂工作经历、带过团队、项目经验丰富。

我满怀期望跟候选人进行了沟通,但整个过程并不顺畅。

:先简单介绍一下自己的情况。

候选人:我是在 xx 年毕业,毕业后经历了几家公司,...,从 xx 年开始我在 xx 研究所做云计算和大数据相关的工作。主要参与过 xx 项目。

:详细介绍一个自己主导或者参与比较多的项目,包括项目中有哪些服务,用到了哪些技术栈,这些服务在业务流程中的作用,服务间怎么调用的。

候选人:xx 服务主要包括了 4 个服务,服务间通过 HttpClient 来进行通信 ...

先是自我介绍,然后深入介绍一个项目,这一般是我面试的开场套路。因为没有接触过候选人介绍的类似项目,我听得马马虎虎,假装听懂了。

:你们微服务是怎么划分的,都有哪些服务?服务之间是怎么通信的?

候选人:我们服务是部署在云上,...

我又是似懂非懂的,当面试官好难。要不纯问一些技术吧。

:问你几个技术问题吧。给定一个长度为 n 包含 [0, n] 中 n 个数的数组 nums,数组是有序的无重复的,找出 [0, n] 这个范围内没有出现在数组中的那个数。(leetcode268 改编,改得更简单了)。

候选人:新建一个长度为 n+1 的数组保存 [0, n+1] ,对原来的数组做循环依次查找每个元素是否在新建的数组中。

我追问:这个时间复杂度太高了,o(n^2),而且还需要额外空间,有更好的方法吗?

候选人:我想想,(大概过了一分钟),不依赖外部数组,对原数组进行遍历,用数组下标加 1 和数组在当前下标的元素值进行比较,不相等就结束循环,最坏时间复杂度是o(n)。

我追问:还有更好的方法吗?

候选人:我再想想,(大概过了 30 秒)想不出了。

我又失望了一次,其实我想听到的答案是二分查找,用递归实现。

:Java 中的 TreeMap 和 LinkedHashMap 有什么区别?

候选人:TreeMap 是有序的,LinkedHashMap 记不清了。

这里我想考察候选人的写代码情况,长期不写代码的人很容易记不清。

:Java 中有哪些锁,可以讲一下吗?

候选人:我们常用的是 synchronized。

:Java AQS 中的锁使用过吗?候选人:好像有一个 reentrant 什么,记不清了。

到这里,我感觉候选人应该主要做管理,已经很少做开发了。

:使用 Spring 做依赖注入的时候,@Resource 和 @Autowired 有什么区别?候选人:@Autowired 是用类型来注入,@Resource 是用名字来注入。

我追问:这两个一般用在什么场景呢?

候选人:我们一般使用 @Autowired 比较多,@Resource 用的很少。

:(考虑到候选人是云计算岗)K8s 中的 deployment 和 statefulset 有什么区别呢?(这个问题其实是为了缓解尴尬

候选人:statefulset 用在有状态的应用,...

:(最后了)请问你离职的原因是什么?

候选人:跟银行相比,华为还是不太稳定。为了节约成本,我们部门要撤掉,整体迁移到 xx 和 yy 两个城市,我家在西安,不太想去。

这个候选人我没给通过,原因有几点:

  1. 我招聘的这个岗位对于资深的候选人,入职后肯定要带团队;
  2. 带团队不是只做管理,而是技术经理,需要能冲在一线,需要有不错的技术能力,有行业背景那就更好了;
  3. 团队对每个人都是有代码考核的,不允许不写代码的同事存在;
  4. 我要招一个人跟我做同事,当然希望基础好一些,这样可以对团队有一个很好的指导。

最后,分享几点自己的见解:

  1. 可以丢掉技术,但得有几个前提:
  • 要保证现在的工作足够稳定,不会被淘汰;
  • 即使被淘汰了,也不担心,因为有丰富的人脉资源,可以帮助自己很快找到下一家管理岗;
  • 不用担心经济问题,因为自己已经实现财富自由或者可以选择创业。
  1. 面试中如果只是泛泛而谈,那不如直接说我不会,或者记不清了;
  2. 社会对大龄程序员要求很高,技术、业务,高 P 的职位多数也要求懂管理;
  3. 如果不是迫不得已,不要轻易换赛道,除非是 AI,ChatGPT 等很火的赛道。换了赛道,意味着之前的积累基本都会丢掉;
  4. 今年的情况机会很难得,准备好了再去面试,不打没有准备的仗。

历史好文:

这个月,太多惊喜了!!!open in new window open in new window

外面在鞭炮,而我还在写代码open in new window

百度不问我项目,全程基础拷打,真扎心!open in new window

感觉被榨干了,被美团拷打一小时!open in new window

腾讯二面顶住了!评价反馈不错open in new window

参考链接:https://mp.weixin.qq.com/s?__biz=MzUxODAzNDg4NQ==&mid=2247526594&idx=1&sn=ac0d0453b137bf7f8e92c0beacded108&chksm=f98d2c68cefaa57e092455cb7da7aee4902bb43efe0fc16bc125dea3a7b7d79cc03b81ba94a5#rdopen in new window,出处:小林coding,整理:沉默王二