谈谈 T 型人才

 

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

「全栈」工程师

前一段时间,「全栈」工程师的概念很火,不过大多数时候,「全栈」工程师指的是一个人同时写 Web 前端和后端,顶多加上一些运维工作。通常情况下,我很少见到一个人能够同时写 Web 前端 + 后端 +iOS 端 +Android 端。

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

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

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

而在别的职位上,是很不适合全栈的,因为这样工作产出会下降。

T 型人才

那我为什么又想聊 T 型人才呢?是因为我觉得 T 型人才和全栈不一样。在我看来,T 型人才有一门自己擅长和精通的语言,同时又有足够宽的视野,使得他在合作的时候,能够更多地站在对方的立场上考虑问题。

打个比方,做过服务器端开发的同学,再转而做客户端开发,就会更加注意 Restful 接口的设计合理性。相互之间协商接口时,知道什么样的方式服务器端好实现,什么样的方式不好实现,然后定出来的接口就会让对方非常舒适。

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

其实对于移动开发来说,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 开发上做得不好,就把他轮换到别的开发岗位。

谈谈 T 型人才的更多相关文章

  1. 人才-T型人才:百科

    ylbtech-人才-T型人才:百科 T型人才是指按知识结构区分出来的一种新型人才类型.用字母“T”来表示他们的知识结构特点.“—”表示有广博的知识面,“|”表示知识的深度.两者的结合,既有较深的专业 ...

  2. C加加学习之路 2——两招让你成为牛X的T型人才

    有个小伙伴在微信上问我: 我刚工作半年,有时候对于Java的发展方向有点迷茫,Java的范围是在是太广了,我有时候会不知道从哪开始入手,我想问一下,您有什么好的建议吗? 我理解这位朋友的问题是:工作中 ...

  3. 第一周——不同java 的发展史你,注定成为不了领袖型人才

     James Gosling  1991年,James 高斯林在Sun公司的工程师小组想要设计这样一种小型计算机语言,该语言主要用于电视盒的消费类电子产品上.另外,由于不同的厂商选择不同的CPU和操作 ...

  4. 谈谈Web前端工程师的定位

    原文地址:http://www.360doc.com/content/10/0708/17/1277406_37692580.shtml 2010-07-08  锋子chans   阅 1116  转 ...

  5. T型架构观点学习

    一.成为T型人才 眼界格局思维要尽可能的开阔,并不断横向开阔,专业能力要尽可能专注,并且纵向上不断加深: 互联网的快速迭代开发和扁平化管理,使单纯管理人才的作用越来越小,除了分配任务和项目管理,在其他 ...

  6. T型知识实践结构的力量(转载)

    最近在做的一些新的事情,这其中获得的一些新的思考. T型的知识积累,深度的挖掘可以通过"举一反三"的应用在广度上,广度可以通过"交叉验证"加强我们的认识,可以说 ...

  7. 推荐一本写给IT项目经理的好书

    原文地址:http://www.cnblogs.com/cbook/archive/2011/01/19/1939060.html (防止原文作者删除.只能拷贝一份了) 推荐一本写给IT项目经理的好书 ...

  8. 如何利用 LTE/4G 伪基站+GSM 中间人攻击攻破所有短信验证

    这次公开课请来的嘉宾对自己的简介是: 连续创业失败的创业导师:伪天使投资人:某非知名私立大学创办人兼校长:业余时间在本校通信安全实验室打杂. 自从他在黑客大会上演讲<伪基站高级利用技术——彻底攻 ...

  9. 干货|什么是特性团队/功能团队(FeatureTeam)

    最近一直在思考如何做团队组织能力建设和如何进行决策.执行产品研发策略.因为自己一直在研发效能领域,所以来谈谈什么是特性团队(FeatureTeam), 怎么创建特性团队以及在日常工作中如何结合 Scr ...

随机推荐

  1. BZOJ 4552 [Tjoi2016&Heoi2016]排序 ——线段树 二分答案

    听说是BC原题. 好题,二分答案变成01序列,就可以方便的用线段树维护了. 然后就是区间查询和覆盖了. #include <map> #include <cmath> #inc ...

  2. BZOJ3555 [Ctsc2014]企鹅QQ 【hash】

    题目 PenguinQQ是中国最大.最具影响力的SNS(Social Networking Services)网站,以实名制为基础,为用户提供日志.群.即时通讯.相册.集市等丰富强大的互联网功能体验, ...

  3. 刷题总结——ball(ssoj)

    题目: 题目背景 SOURCE:NOIP2015-SHY-9 题目描述 Alice 与 Bob 在玩游戏.他们一共玩了 t 轮游戏.游戏中,他们分别获得了 n 个和 m 个小球.每个球上有一个分数.每 ...

  4. 微信小程序答题系统实现随机出题 答题小程序如何实现随机出题 微信小程序 答题系统

    最近头脑王者非常火爆,公司也在开发类似头脑王者的答题系统,这个重任交到我这边来了,我们在开发的这个微信小程序答题系统,需要实现随机出题.尤其是一些比如闯关的环节,需要随机从题库里抽取若干道题目,给到用 ...

  5. LeetCode OJ--Path Sum II **

    https://oj.leetcode.com/problems/path-sum-ii/ 树的深搜,从根到叶子,并记录符合条件的路径. 注意参数的传递,是否需要使用引用. #include < ...

  6. 本地测试IIS,Post调用接口

    最近在学习三种调用接口方式,POST,Socket,Webserivce,今天刚写完POST方式所以就分享下,欢迎高手指点. public string strResult = "" ...

  7. ListView+EditText使用遇到的坑

    最近项目中某功能需要ListView嵌套EditText来实现,使用过程中遇到一些问题: 1.点击弹出编辑框,edittext会失去焦点. 解决焦点丢失的问题 解决思路:软键盘弹出的时候会重新绘制界面 ...

  8. CSS-滤镜 -webkit-filter

    css滤镜属性,可以在元素呈现之前,为元素的渲染提供一些效果,如模糊.颜色转移之类的.滤镜常用于调整图像.背景.边框的渲染. 语法: webkit-filter: none | blur(px) | ...

  9. Debian9安装MariaDB

    一:导入密钥并添加了存储库 sudo apt-get install software-properties-common dirmngr sudo apt-key adv --recv-keys - ...

  10. 洛谷——P1144 最短路计数

    P1144 最短路计数 题目描述 给出一个N个顶点M条边的无向无权图,顶点编号为1-N.问从顶点1开始,到其他每个点的最短路有几条. 输入输出格式 输入格式: 输入第一行包含2个正整数N,M,为图的顶 ...