教练:我该如何向高手学习?

你好,我是郑晔!

上一讲我们讲到了刻意练习,最后,我们强调了教练在刻意练习中的作用。虽然在成年人的世界里,自学是最主要的学习方式,但如果有一个教练能够给予我们帮助,这将大幅度提升我们的学习效率。

不过,道理是没错,但别人凭什么给我们提供帮助呢?小李也有同样的疑问,于是,他又找到了老赵。

小李:老赵,多谢你这段时间给予了我很大的帮助。
老赵:没什么,举手之劳。
小李:我其实还有一个疑问。
老赵:说来听听。
小李:你这么资深,而且工作这么忙,可是你为什么愿意帮助我呢?
老赵:因为和你交流很有意思啊!
小李:有意思?
老赵:年轻人有很多,想提升的也有很多,但大部分人都缺乏深入思考。你很热爱编程,也很愿意思考。你问的很多问题都是经过深思熟虑的。
小李:我不好意思总麻烦你,所以,我会先探索,实在解决不了再来问你。
老赵:我愿意回答问题,但不愿意回答那种不过脑子,搜一下就有答案的傻问题。而你从来不问傻问题,所以我愿意与你交流,这能激发我进一步思考。

小李是幸运的,有一个愿意帮助他的老赵,但正如老赵所说,他愿意帮助小李,因为帮助小李对他也有促进。从某种程度上,二者是相互促进的,形成了一个正向反馈。

每个人都想有这样的教练,不过,有两个问题是我们需要解决的:如何找到一个教练,以及如何让教练愿意帮助我们。

身边的教练

如果想要找到一个教练,我们可以在身边找,也可以远处找。我们先来看看怎样在身边找教练。

很多有点规模的公司都有导师制度,他们会为新员工配置一个导师,其目的是帮助新员工更好地融入公司。对我们而言,这个导师就是我们这个阶段的教练。即便公司没有这样的制度安排,加入一个团队,我们也会很快发现团队里哪些人适合成为自己的教练,比如,项目的技术负责人或是经验丰富的同事。

当然,这里同样有一个问题,如果公司没有这样的人事安排,人家凭什么要来帮助你。这就需要我们自己积极主动,先和这个人建立起良好的私人关系,一旦建立起私人关系,剩下的事情就水到渠成了。

对很多程序员来说,解决技术问题是很简单的,与人打交道往往是更有挑战的一件事。

一方面,有很多经验丰富的人并一定适合做教练,他更擅长的是单打独斗,而且,很多程序员并不善于表达,自己可能身怀绝技,但并不一定能够给予他人很大的帮助。另一方面,“不好意思”往往是阻碍经验浅的程序员前进的一个重要因素。没有人有义务主动帮助你,你能从别人身上获得怎样的收获,完全取决于你有多积极主动。

其实,大多数程序员还是很愿意聊技术、开发相关的各种东西,多找机会聊聊,你就会有所收获。

我初入职场的时候,刚好有机会和当时的项目负责人聊天,一开始我也没什么功利的目的,只是觉得和他聊天挺有收获的,也就经常问他一些问题。一来二去,他也觉得和我聊天挺有意思,我们俩就越聊越多。

我从他身上学到了很多东西,他也找到了一个能与他深入聊编程的人。与他的沟通,让我少走了很多弯路,那段时间成了我职业生涯中成长最快的一段时间,也为后面的职业发展奠定了一个非常好的基础。

身边的人给予我们的帮助,通常是眼前的事情。如果我们想进一步扩展视野,有时候,身边的人可能就不够了。随着成长,我们也必须把视野打开,远方的人一样可以成为我们的教练。

远方的教练

在我起步的那个年代,接触远方的人主要是通过一些论坛或是邮件列表,不过,这种沟通方式效率并不算高,因为论坛或邮件列表并不能让一个人有完整的表达,所以,我们只能从这些高手的只言片语中学习。

现在则有了更方便的途径。最常见的就是很多在线的课程,而这些课程的作者本身就已经在扮演老师的角色,一方面,他们已经把自己的思想做了一个完整的总结,另一方面,很多人也乐见有更多的反馈回来。所以,通过在线的课程,我们就有机会结识到更多水平不错的老师。

还有一个找到远方高手的途径是参与开源项目。相比于课程,开源项目的实践性更强。

一个稍微流行的开源项目都会有不少的参与者,而且一般来说,开源项目参与者的平均水平是高于通常的公司团队的平均水平。所以,如果有机会参与到这些项目中,我们的代码将得到这个高水平团队成员的评审,这对于提升个人的编程水平大有助益。

现在参与到一个开源项目的门槛已经大幅度降低了,找一个自己喜欢的项目,从给这个项目提 Issue 开始,慢慢地熟悉代码、提 PR,逐渐参与其中。

如果我们把眼光再放开阔一些,我们甚至可以向行业中的顶级大牛学习。当然,让他们近距离指导我们并不容易,但我们依然可以从他们的故事中学到很多东西。

在编程领域,有很多传奇故事。通过阅读一些书,我们有机会看到这些行业大牛是怎样一步一步成长起来的。对我来说,正是这些大牛的事迹,让我看到了什么叫热爱。

推荐两本当年让我看得热血沸腾的书,一本是 Linus Torvalds 的《只是为了好玩》,它讲了 Linus 打造 Linux 操作系统的故事,其中最打动我的是 Linus 讲述了自己打造初始版本 Linux 的过程,那是一个纯粹程序员的热爱。

还有一本是《DOOM 启世录》,它讲述了 ID Software 的发展历程,这个公司打造了 DOOM 和 Quake 两款影响力极大的游戏,深刻地影响了今天的软件开发。其中的关键人物是约翰·卡马克,一个天才程序员,书中有一段他打造引擎时的工作日志,其中他回顾了自己的成长过程,把一个遥不可及的大牛还原成了一个追求进步的普通人。

向高手学习

我们希望向高手学习,不过,没有人平白无故地就会帮助你,人家帮助你是因为他觉得帮助你有价值。此外,我们还要知道,大部分程序员都有着一些内心的骄傲,如果一个人不能在他们欣赏的领域内证明自己的价值,他们在内心里会低看这个人,这也是很多程序员与产品经理产生矛盾的重要原因。

向高手学习,一个前提条件是我们先要竭尽全力。没有高手愿意回答浅白问题,如果一个问题上网搜索一下就能得到答案,就不要浪费别人的时间了。所以,我们最好先在一个问题上竭尽全力去探寻一个答案:可能是在网络上搜索,可能是阅读相关的技术手册,可能是问问身边的朋友,也可能是阅读一下相关的源码。

或许你会说,如果我竭尽全力,结果把问题解决了呢?那不就是最好的答案了,我们本质上需要的自我提升,向其他人学习只是一种手段,如果我们已经把问题解决了,已经完成了自我提升,是不是向别人请教就不那么重要了。

想向别人提出高质量的问题也是需要一定技巧的。关于如何向别人提问,让我受益量多的是 Eric Raymond 写的《提问的智慧》,我强烈推荐每个程序员读读这篇文章。

Eric Raymond 是 Open Source 这个概念的提出者,也是著名的开源运动文集《大教堂与市集》一书的作者。他在职业生涯中,看到过各种人在各种渠道的讨论问题,所以,他才写了这篇《提问的智慧》,教新手如何提问。

《提问的智慧》属于跨越时间的文章,作者会根据一些情况进行更新,所以,在这篇文章里,我们会看到 IRC 这种久远的沟通方式,也能够看到 Stack Overflow 这种常见的问答网站,重点是其中的沟通技巧是跨越时间的存在,至于是邮件,还是问答网站,只是沟通的途径而已。

无论是身边的教练,还是远方的高手,我们都很难一上来就向他们提出有深度的问题。大家的关系都是随着合作次数的增多而深入起来,而建立深入的关系需要我们长期去维护。

如果有一个可以帮到自己的教练,那么我们需要多付出一些去维系这种关系,相比于得到的回报,这是一件非常划算的事情。

总结时刻

这一讲我们讲了教练在一个人成长过程中的重要性。在成年人的世界里,别人不会无缘无故地帮助你。想要拥有一个可以帮助自身成长的教练,我们需要证明自身的价值,形成与教练之间互相促进。

我们可以在身边找到教练,无论是公司安排的导师,抑或是项目中资深的同事,都可能成为我们的教练。但想要从他们身上学习到更多,需要我们积极主动,与教练建立起良好的私人关系。

我们也可以在远方寻找高手成为我们的教练,可以是课程的老师,也可以是开源项目的成员,同样,也需要我们积极参与,从他们身上学习更多。当然,我们还可以向行业中的顶级大牛学习,现在有很多讲述他们成长经历的书,可以让我们从中汲取营养。

想从高手身上学到东西,重点还是要自己积极主动,证明自身价值。向高手提问之前,我们需要竭尽全力自己去找寻答案。关于如何提问,我推荐你去读读《提问的智慧》。

如果今天的内容你只能记住一件事,那请记住,积极主动地向教练学习。

思考题

这一讲我们讲了如何向教练学习。回想一下你一路走来的职业经历,有哪个“教练”对你提供了很大的帮助,欢迎在评论区分享你的经历。

精选留言

  • Geek_wip5z8

    2025-05-04 22:36:03

    没有教练,就要积极寻找教练,主动寻找优秀的人,向他们学习。有时候认真阅读他的文章,并加上自己的思考,与他互动,就能产生连接;亦或是follow 他的动态,就能学到很多知识。