面试攻略:何为技术和年龄不匹配

最近因为帮人组建研发中心,面试了很多开发工程师,对“技术能与和工作年限是否匹配”的理解更深了,记录下来分享给大家。

为便于讨论,简单的依据工作年限划分出 3 个阶段:

  • 1 ~ 3 年
  • 4 ~ 5 年
  • 6 ~ 8 年

接下来讨论面试官对每个阶段的开发者的要求,看看到底什么是“技术和年龄不匹配”。

面试官怎么要求 1 ~ 3 年经验的开发者

下图是我从一位做了 2 年 Android 应用开发的小伙伴的简历中截取的片段:

面试攻略:何为技术和年龄不匹配_第1张图片

这位小伙伴说“熟练掌握自定义控件”,我问他通过继承 View 来实现一个自动以控件需要重写哪些方法,他回答说,“onDraw”,我问他还有别的吗,他想了 10 秒钟没答上来。

实际上,要继承 View 来实现一个自定义控件,起码要重写“onMeasure、onDraw、onLayout”三个方法。

这就是我们对工作 1 ~ 3 年的开发者的能力要求:

了解用过的知识点、技能点本身,知道它们可以实现什么、怎么用,不要有错误的概念。

再举个例子,比如你用过 Qt 的 QTimer 类,面试官问你 QTimer 类能否用在非 GUI 线程中,你应该可以答得上来(答案是可以)。面试官再让你举例说明 QTimer 在非 GUI 线程中怎么用,你答不上来,那没关系,因为你没用过。

这就是这个阶段的要求:用过一个东西,知道它怎么用,能用在什么环境下,具体使用时的操作步骤。

面试官怎么要求 4 ~ 5 年经验的开发者

下图是我从一位工作 4 年的 iOS 开发工程师的简历中截取的片段:

面试攻略:何为技术和年龄不匹配_第2张图片

我们看到这位小伙伴提到熟悉多线程,在面试时就问他用的哪种方式,他说使用的 GCD ,然后我们问他是否了解其他的多线程方式,他说还有 pthread,但没用过,其他的不知道了。

实际上,有 4 年 iOS 开发经验并且在简历中说自己熟悉“多线程”的程序员,起码应该了解还有其它三种多线程的方式:

  • pthread
  • NSThread
  • NSOperation

并且还要知道 4 种常见的多线程编程方式有什么异同、什么场景下该用哪个。

这样,你的能力和工作年限才是匹配的。

假如你用过 GCD ,其它的都没听说过,那面试官就会认为你的能力配不上你的工作年限。

这就是面试时对这个工作年限的小伙伴的能力要求:

对用过的知识点、技能点,了解原理,知其然且知其所以然,能灵活应用

。同时,要能对实现相同功能的不同组件均有所了解并知其优劣,此时应该是能举一反三,触类旁通的。

这也是我对简历中“熟悉”一词的理解。

面试官怎么要求 6 ~ 8 年经验的开发者

公司对经验超过 5 年的开发者,要求会更高:

常用的技术框架,要理解原理、设计思想、实现细节,研究过内核、源码,可以定制、扩展、优化。

或者可以根据项目需要,参考已有框架,建造自己的框架。

这也是我对简历中“精通”一词的理解。

比如 iOS 的图片加载框架 SDWebImage ,支持从网络中下载且缓存图片,并设置图片到对应的
UIImageView 控件或者 UIButton 控件上,是我们开发 iOS App 必不可少的框架。

对于有 5+ 年 iOS 开发经验的小伙伴来讲,如果用过几次 SDWebImage ,公司可能就会要求你看过它的源码,了解它内在的实现,比如它内部是怎样下载的、怎样使用多线程的、怎样缓存的,然后可能会认为你应该能自己写出具备类似功能的组件。

你能做到这样,能力和年龄就是匹配的啦。如果你做了 5 年以上的开发工作,用过的框架,没有一个掌握到这种程度的,那不好意思,别人大概率会认为你的技术能力匹配不上你的工作年限。

你在哪里?

好啦,现在,观照一下自身,看看你的技术能力是否配得上你的工作年限?

配不上的话……本文还有续篇——“技术和年龄不匹配时怎么办”,敬请期待。


阅读《程序员的成长课》,Get技术精进的方法,京东购买:https://item.jd.com/12243573.html。

你可能感兴趣的:(面试攻略:何为技术和年龄不匹配)