暗无天日

=============>DarkSun的个人博客

读 What to learn

原文:What to learn

这篇文章回答一个问题:你应该学什么?Dan Luu 的答案是,不要跟风学别人推荐的东西,而是找到少数几个适合自己天赋的技能,学深学透,然后去找一群高手扎堆的环境。他用自己的踩坑经历证明了跟风学技术是低 ROI 的。

别学别人让你学的东西

Steve Yegge 有一系列博客文章建议学编译器。理由是:懂了编译器,你就会到处看到编译器问题,然后发现很多人在用半吊子方案解决本质上是编译器的问题,而你可以用编译器知识又快又好地解决。

这话不能说错,但问题在于——你可以把"编译器"换成排队论、计算机体系结构、数学优化、运筹学……哪个领域都能讲出同样的道理。所以"学编译器"不是编译器有多特殊,而是 Steve Yegge 恰好懂编译器。大部分职业建议的本质就是"学我学过的东西"。

Dan Luu 早年照着互联网建议学了 Haskell、Lisp、Forth。他甚至参与造了一颗 2GHz 的 Forth 处理器——可能至今仍是世界上性能最高的 Forth 处理器。他花了比绝大多数人都多的精力精通 Forth。结果呢?Forth 的倡导者 Chuck Moore 声称 Forth 比普通语言生产力高 100 倍,Dan Luu 的体验是:连 1 倍都不到。

回头看,Dan Luu 认为跟风学技术的 ROI 非常低。真正高 ROI 的学习,没有一个是网上有人推荐的。

高手只靠几招吃遍天

数学家 Gian Carlo Rota 讲过一个故事:一位老数学家瞧不起 Paul Erdős 的工作,说 Erdős 的所有证明都能归结为几个反复使用的技巧。Rota 后来读了 Hilbert(比 Erdős 地位更高的数学家)的不变量理论论文,发现 Hilbert 的证明也靠同样的几个技巧反复用。 即使 Hilbert 也只有几个技巧。

柔道也一样。对世界级柔道选手的分析发现,大多数人只靠少数几个投技赢比赛。柔道的本质是专精——你只用最适合你的那几招,练到变成自动反应。动画和电视剧里角色通过学更多招数来变强,但现实中,把已有的招数练到极致往往比囤积几百个"技能"更有效。

Joy Ebertz 给过一个建议: 放大你的优势,而不是修补你的弱点。 每个人都有强项和弱项,我们花很多时间谈论"改进空间",但如果某个领域你真的弱,花大力气可能只挪动一点点。更好的策略是把本来就很强的事情变成你的超级能力——前提是你没有真正糟糕的短板。

Dan Luu 在竞技游戏里验证过这一点。把他从"不错"提升到"很强"的关键,不是补练他不擅长的东西,而是放弃弱项,集中强化他本来就比别人强的那几个方面,把优势拉大到别人追不上的程度。他觉得这个策略在职场比在游戏和体育里更有效——因为在竞技场景里对手会专门攻击你的弱点,但在工作中没有对手会阻止你选择发挥优势的项目。

怎么找到自己的"几招"

Dan Luu 自己真正在用、在持续精进的技能有两个:"看数据"和"对抗性思维"。这两个都不是传统意义上的学科——"看数据"不是统计学(他很少用到逻辑回归那么复杂的东西),"对抗性思维"也不对应某个计算机科学分支。它们是跨领域的思维方式。

怎么发现这种东西?Dan Luu 给了两个方法:

  1. 问很了解你的人。 他的经理和 Ben Kuhn 独立指出了同一个他没意识到的技能——跨多个抽象层次提出解决方案。你自己未必能看清自己最擅长什么。
  2. 找那些你忍不住要做、但大多数人不做的事。 Dan Luu 测试一个新 bug 追踪系统时,主动往输入框里塞各种异常数据看它崩不崩。有人觉得莫名其妙,有人(包括 Dan Luu 本人)很高兴看到系统被推到极限。对系统做压力测试对他来说不是工作——他要克制自己才会不去这么做。这种"不做反而难受"的事情,就是你应该深化的方向。

找对环境比找对方向更重要

找到适合自己的技能只是第一步,还有一个关键因素: 你在什么样的环境里学。

Dan Luu 第一份工作在 Centaur(一家芯片公司),那里的验证团队用比同行少得多的人做到了同样甚至更好的效果。这是一个高密度的学习环境。他觉得在那里学到的对抗性测试思维,靠自己看书上网学不到——真正厉害的人脑子里有太多无法压缩进书本的隐性知识。

对于"看数据"这个技能,他在过去几年(在一个能和高水平同事反复讨论数据局限性的环境里)每年的进步幅度, 超过了之前十年的总和

值得注意的是,环境是局部的,不是公司级别的。Dan Luu 说他现在的雇主可能是他待过的三家大公司里最不数据驱动的,但他周围的同事恰好非常擅长理解数据的局限性,而他每天花大量时间和这些人一起工作——这就够了。

Dan Luu 发现一个规律:高手密度最高的团队,往往在非常优秀的管理者手下。他见过的两个高手最密集的团队都是如此。原因也说得通——好的管理者留人能力强,外面排着队想加入,自然容易吸引和留住顶尖人才。

随机游走也没什么不好

很多职业建议会告诉你:要有长期目标和规划,因为定向行走能走 n 步远,随机游走只能走 sqrt(n) 步远。

Dan Luu 认为这个建议低估了一件事: 找到适合自己的方向的难度。 他认识的人里,不少人花了很多年(有些人超过十年)才发现自己走的方向根本不适合自己——要么性格不匹配,要么能力不匹配。相比之下,瞎逛然后发现自己 sqrt(n) 步处在一个开心的位置上,并不比闷头走了 n 步却发现不开心更差。

Dan Luu 自己的技能就是通过试错找到的,而他的学习动机也不是为了职业发展——纯粹是因为学东西好玩。这么做二十年之后碰巧变得有用了,但在相当长一段时间里他并不知道会这样,也不知道硬件领域学到的技能能迁移到软件行业。

总结:你应该怎么做

  1. 别跟风。 别人推荐你学的东西,对他可能有用,对你大概率没用。Dan Luu 跟风学 Forth 的 ROI 接近于零。
  2. 找少数几个适合你的技能,学深。 你不需要什么都会。Erdős、Hilbert、世界级柔道选手都只靠几招。关键是这几招得适合你的天赋——不是别人擅长的,是你自己擅长的。
  3. 放大优势,而不是修补弱点。 把本来就很强的事变成超级能力,比费力补短板收效更大。工作中没有对手攻击你的弱点,你可以主动选择发挥优势的项目。
  4. 怎么发现自己的技能: 问很了解你的人;留意那些你忍不住要做但大多数人不会做的事。
  5. 找到高手扎堆的环境。 你的学习速度取决于身边的同事,不是公司名气。在高手身边一年能学到比自己摸索十年更多的东西。
  6. 别怕随机游走。 没想清楚方向就先试,试错了再换。瞎逛走到一个开心的位置,比闷头走一条不开心的路强。
无主之地 : 学习 : 职业发展 : 技能