谈谈 T 型人才

谈谈 T 型人才

昨天的图片发模糊了,正好我把这个话题展开聊一聊吧。这个话题是关于复合型人才的,我把它称做 T 型人才。前端

「全栈」工程师

前一段时间,「全栈」工程师的概念很火,不过大多数时候,「全栈」工程师指的是一我的同时写 Web 前端和后端,顶多加上一些运维工做。一般状况下,我不多见到一我的可以同时写 Web 前端 + 后端 +iOS 端 +Android 端。node

在猿题库(咱们如今更名叫猿辅导了)创业初期,我曾经试图同时写 iOS 和服务器端,可是我很快就放弃了。由于当时服务器端的代码量仍是很大,同时有好几我的在编写。有些时候我须要加逻辑时,会涉及到他们的代码修改,这个时候我就会须要花费额外的精力来看懂他们原来的逻辑。后端

当时正值创业初期,咱们的 Code Review 并不严格,代码的相关设计文档也很少,我只能经过阅读源码来跟上另外几个服务器端开发同窗的逻辑。很快我就放弃了,由于在创业阶段,效率是第一位的,同时作 iOS 和 服务器端,使得我在服务器端不够专一,效率变得低下。服务器

从那以后,我就意识到,「全栈」工程师可能最适合的场景就是 Web 前端 + 后端的偏前端的逻辑。由于那个场景下,前端工程师能够省掉沟通接口的时间,也能够本身统一先后端的模版,甚至他能够尝试统一语言,同时用 JavaScript 写先后端(在后端使用 nodejs)。前端工程师

而在别的职位上,是很不适合全栈的,由于这样工做产出会降低。运维

T 型人才

那我为何又想聊 T 型人才呢?是由于我以为 T 型人才和全栈不同。在我看来,T 型人才有一门本身擅长和精通的语言,同时又有足够宽的视野,使得他在合做的时候,可以更多地站在对方的立场上考虑问题。性能

打个比方,作过服务器端开发的同窗,再转而作客户端开发,就会更加注意 Restful 接口的设计合理性。相互之间协商接口时,知道什么样的方式服务器端好实现,什么样的方式很差实现,而后定出来的接口就会让对方很是温馨。学习

与此同时,T 型人才对于本身理解和学习新东西,也是有很大帮助的。我以前作过 Java 语言的服务器端开发和 JavaScript 语言的前端开发,以后才转作 iOS 开发。各类语言和开发环境接触多了就发现:其实不少概念都是相通的。我想我之因此当时学 iOS 开发上手那么快,也是因为在别的语言上有积累。spa

其实对于移动开发来讲,iOS 和 Android 也有不少相同的概念,好比 iOS 的 UIViewController 和 Android 的 Activity。固然,它们也有不少不一样的技术细节,好比对界面排版设计,iOS 由于设备屏幕单一,因此刚开始选择了简单的绝对定位,后面选择了 size class 的方式。而 Android 由于屏幕分裂严重,因此选择了更加流式的排版设计。设计

iOS 由于追求界面的流畅和性能,选择了引用计数这种相对麻烦的内存管理方式,而 Android 由于须要借力 Java 语言自己的生态和苹果竞争,因此采用了垃圾回收这种会带来潜在卡顿风险的内存管理方式。
每一年的 Google IO 大会出现的新技术,并不比 WWDC 逊色。今年 iOS 10 的一些改进,也看到了很多 Android 的影子。

如何成为 T 型人才

那么如何成为 T 型人才呢?咱们老大郭常圳想了一个办法:轮岗。轮岗的意思是,当你成为某一方面的专家后,跳出本身的温馨区,转而到一个新的技术领域从头学起。

在咱们公司,不少早期员工都经历过轮岗。好比我曾经从服务器端转到前端和 iOS 端,也是轮岗这个激励带动的。yangyz 从服务器端转到 Android,xuhf 从 Android 转到服务器端,zhangyc 从 Web 前端转到后端。每个轮岗工做,都是对咱们极大的挑战,可是让咱们都成长为 T 型人才。

可是,轮岗的意思毫不是作一个技术方向「三心二意」,每一次转换技术方向,都应该是对前一个技术方向至少作到熟练掌握的程度才行,而我本身以为,不通过一到两年的实践,很难称做熟练掌握。因此,轮岗的行为应该是低频的,并且是面向那些最优秀的开发者的。

这一点有点像大学的换专业,在咱们学校,大一的学生能够在一学期后申请换专业,可是前提是这个同窗在愿专业成绩达到前 10%。

换专业和换技术方向同样,机会只会给作得最好的人,公司不会由于一我的在 iOS 开发上作得很差,就把他轮换到别的开发岗位。

相关文章
相关标签/搜索